코어 라이트닝, 패치 뒤에도 저장 공지로 노드 재중단
코어 라이트닝 v25.02~v26.04에서는 조작된 채널 공지가 저장된 뒤 노드가 재시작 때마다 멈출 수 있다. v26.04.1은 새 공지를 막지만 기존 저장 기록은 별도로 제거해야 한다.
토포AI로 이 기사 더 깊이 읽기
코어 라이트닝(Core Lightning) 구버전 노드에 조작된 채널 공지가 저장되면 보안 패치를 적용한 뒤에도 재시작 때마다 노드가 중단될 수 있다. 새 공지를 차단하는 수정과 이미 디스크에 남은 기록을 제거하는 조치는 별개다.
니샨트 반살(Nishant Bansal)은 10월 24일 공개한 기술 분석에서 영향 범위를 v25.02부터 v26.04까지로 제시했다. 그는 “Core Lightning v26.04.1 이상으로 업그레이드하라”고 권고했다.
코어 라이트닝은 비트코인(BTC)의 2층 결제망인 라이트닝 네트워크를 운영하는 소프트웨어다. 노드는 공개 결제 채널의 정보를 채널 공지 메시지로 주고받고, 이를 바탕으로 결제 경로를 파악한다.
정상적인 채널 공지에는 채널 양 끝에 서로 다른 노드 식별자가 들어가야 한다. 반살은 같은 미등록 노드 식별자를 양쪽에 적은 공지가 서명 검사를 통과할 수 있었다고 설명했다.
코어 라이트닝은 해당 공지를 디스크의 ‘gossip_store’에 먼저 기록한 뒤 메모리의 경로 정보에 반영한다. 이 과정에서 같은 노드를 두 번 추가하려다 오류가 나면 정보 처리 프로그램인 gossipd가 멈추고 노드 전체가 종료될 수 있다.
문제의 공지는 노드를 재시작해도 디스크에 남는다. 노드가 기록을 다시 읽을 때 같은 오류가 반복될 수 있어, 저장된 공지를 제거하기 전까지 정상 가동이 어려울 수 있다.
공격자는 자신이 두 서명키를 모두 통제하는 자금 출력을 만들고, 그 출력에 블록 6개가 쌓인 뒤 조작된 공지를 보낼 수 있었다. 취약한 버전은 유효한 서명이 붙은 공지를 받아들인다.
반살은 공격 비용이 온체인 거래 수수료에 그칠 수 있다고 설명했다. 공지를 받은 노드는 저장한 기록을 재시작 때마다 다시 읽어 장애가 이어질 수 있다.
코어 라이트닝 개발진은 4월 24일 잘못된 채널 공지를 거부하는 수정안 PR #9082를 병합했다. 다음 날 공개한 v26.04.1에 수정 사항을 반영했다.
수정판은 노드 식별자의 순서가 올바르지 않은 공지를 저장 전에 거부한다. 같은 식별자를 두 번 쓴 공지도 이 검사에 걸린다.
다만 수정판이 기존 저장 공지를 자동으로 지우지는 않는다. 이미 장애를 겪은 노드는 업그레이드와 함께 저장 기록도 별도로 점검해야 하며, 반살은 공개 분석에 구체적인 삭제 명령을 제시하지 않았다.
저장 기록만 지우고 취약한 버전을 계속 사용하면 같은 문제가 다시 발생할 수 있다. 공격자가 해당 자금 출력을 사용하지 않은 상태로 유지하는 동안 조작 공지를 다시 보낼 수 있기 때문이다.
직접적인 영향은 비트코인 블록체인 전체의 중단이 아니라 해당 라이트닝 노드의 오프라인 상태다. 반살은 노드가 멈춘 사이 상대방이 폐기된 채널 상태를 블록체인에 올리거나, 만료 시한이 있는 HTLC(해시 타임록 계약)의 청구를 놓치면 채널 자금이 위험해질 수 있다고 경고했다.
라이트닝 네트워크의 채널 공지 규격인 BOLT 7도 5월 4일 수신 노드가 식별자 순서를 확인하도록 수정됐다. 보내는 쪽에만 적용하던 규칙을 받는 쪽에도 명시한 조치다.
11월 3일 확인 기준 코어 라이트닝의 최신 배포판은 v26.06.9다. 개발진은 이 버전을 10월 7일 공개했으며, 본지는 메시지 지연과 채널 종료 중 HTLC 처리 오류가 수정됐다고 전했다. 이번 반복 중단 문제는 v26.04.1에서 수정됐고, 기존 저장 공지의 제거 여부는 노드별로 확인해야 한다.
김미래 기자 




Comment 0
불러오는 중…