LDK v0.2.7, 재접속 취약점·LSPS2 검증 수정
토포AI로 이 기사 더 깊이 읽기
라이트닝 개발 키트(LDK)의 구버전에는 채널 상대 노드가 재접속 뒤 메시지를 받지 않았다고 주장할 때 자금 손실로 이어질 수 있는 취약점이 있었다. LDK 개발팀은 10월 1일 v0.2.7과 v0.1.13에서 이 문제를 수정했다.
라이트닝 네트워크는 결제 채널을 통해 거래를 처리하는 비트코인(BTC) 확장 기술이다. LDK는 이 네트워크를 사용하는 지갑과 앱을 개발하는 데 쓰이는 라이브러리다. 라이브러리를 앱에 포함해 배포하는 구조인 만큼, 개발자는 업데이트한 버전과 수정 코드가 실제 배포 앱에 반영됐는지 함께 확인해야 한다.
LDK 변경 기록은 채널 상대가 상태 업데이트를 확인한 뒤 재접속해 해당 메시지를 받지 못했다고 주장하는 상황에서 취약점이 발생할 수 있다고 설명했다. 패치 전에는 LDK가 같은 상태 순번에서 서로 충돌하는 커밋먼트 거래에 서명할 가능성이 있었다. 커밋먼트 거래는 채널의 합의 상태를 비트코인 블록체인에서 정산할 때 쓰인다.
이 문제가 악용되면 결제를 중계하는 노드가 다음 수신자에게 대금을 지급한 뒤 앞선 발신자에게서 자금을 회수하지 못할 수 있다. LDK 변경 기록은 수정 버전이 확인 응답을 기다리는 동안에만 메시지를 재전송하고, 이미 확인된 업데이트를 놓쳤다고 주장하는 노드와 채널을 강제 종료하도록 했다고 설명했다. 공개된 내용에는 이번 취약점의 실제 악용 여부나 피해 규모가 제시되지 않았다.
두 버전의 수정 범위는 같지 않다. v0.2.7에는 재접속 취약점과 LSPS2 결제 금액 검증 문제가 포함됐고, v0.1.13에는 재접속 취약점 수정이 기록됐다. LSPS2는 유동성 서비스 제공자가 결제 처리 중 채널을 여는 방식이다.
LDK 변경 기록은 악의적인 클라이언트가 중계 대상 결제 금액을 실제 수신액보다 크게 속이면, 서비스 제공자가 받은 금액보다 많은 비트코인을 채널 개설과 전달에 쓸 수 있었다고 밝혔다. 이에 따라 LSPS2 운영자는 라이브러리 업데이트와 함께 이전 버전에서 대기열에 들어간 결제 계약도 확인해야 한다. 변경 기록은 기존 버전에서 생성돼 대기 중인 계약에 검증되지 않은 금액이 남아 있을 수 있다고 설명하며, v0.2.7에 관련 수정도 포함됐다고 밝혔다.
이번 업데이트는 LDK v0.2.6의 스플라이스 관련 자금 손실 문제와 결제 처리 오류를 다룬 본지 보도에 이은 보안 수정이다. 앱 개발자는 사용 중인 LDK 버전과 실제 배포 코드, LSPS2 대기 계약을 각각 점검해야 한다.

김민준 기자 




댓글 0
불러오는 중…