유출 파일 하나로 라이트닝 노드가 털렸다

BTCPay Server의 LND 마카룬 유출로 2026년 8월 패치(v2.4.2) 전 공격자가 라이트닝 채널 자금을 빼냈다.

By Nestree 38 min read
One leaked file was enough to sweep a Lightning node

BTCPay Server의 라이트닝 노드에 무슨 일이 있었나?

수천 곳의 가맹점이 직접 운영하는 결제 처리기가 금요일에 긴급 패치를 배포했다. 하지만 그때는 이미 공격자들이 라이트닝 채널을 비울 만큼 충분히 오래 내부에 들어와 있던 뒤였다.

2026년 8월 7일, BTCPay Server는 보안 권고를 발표하고 이미 실제 공격에 악용되던 치명적 취약점을 막기 위해 버전 2.4.2를 공개했다 . 이 결함은 인증되지 않은 원격 공격자가 연결된 LND(Lightning Network Daemon) 노드에서 .macaroon 자격 증명 파일을 가져갈 수 있게 했다. 마카룬은 LND의 bearer-token API 자격 증명이다. 관리자 마카룬을 가진 사람은 결제 채널을 열고 닫거나 자금을 이동하는 권한까지 포함해 노드를 사실상 완전히 제어할 수 있다 . 공격자들은 훔친 마카룬으로 채널을 강제 종료하고, 많은 운영자가 패치를 적용하기 전에 가맹점의 라이트닝 잔액을 쓸어갔다 .

빠른 답변: 2026년 8월 7일 공개된 BTCPay Server v2.4.2는 인증되지 않은 공격자가 LND .macaroon 파일을 훔칠 수 있게 하던, 실제 악용 중인 결함을 패치한다. 이 파일은 노드 전체 제어 권한을 주는 bearer token이다. 2.4.2 이전의 모든 릴리스는 릴리스 후보 버전까지 포함해 영향을 받는다. 패치만으로 이미 탈취된 자격 증명이 취소되지는 않는다.

노출 범위는 버전 기준으로는 넓고, 구성 기준으로는 좁다. 2.4.2 이전의 모든 BTCPay Server 릴리스가 영향을 받으며, 2.4.2 릴리스 후보 버전도 포함된다 . 자격 증명 탈취 경로 자체는 라이트닝 백엔드로 LND를 쓰는 배포 환경에만 해당한다. 다른 라이트닝 구현이나 온체인 전용 BTCPay 설치는 이 특정 경로로는 노출되지 않았지만, 프로젝트는 모든 운영자에게 어쨌든 업데이트하라고 안내했다 .

자신의 노출 여부를 판단하는 사람에게 중요한 구분이 하나 있다. 핫월렛을 포함한 BTCPay 자체 온체인 지갑은 마카룬 유출로 직접 침해된 것은 아니었다. 하지만 LND 내부 온체인 지갑에 있던 비트코인은 침해된 노드가 제어하므로, 명백히 위험에 놓여 있었다 . 실제 피해자들이 설명한 양상도 정확히 그랬다. 채널은 강제 종료되고 자금은 빠져나갔지만, 별도의 핫월렛은 그대로 남아 있었다.

즉시 업데이트할 수 없는 운영자에게는 서버를 계속 접근 가능하게 두지 말고 아예 오프라인으로 내리라는 지시가 내려졌다 . 단순히 나중에 패치하라는 것이 아니라 종료하라는 이 지시는, 프로젝트가 첫 24시간 동안 위험을 어떻게 평가했는지 가장 분명하게 보여준다. 반면 시장 반응은 미미했다. 현물 비트코인 시장은 대체로 이 사건을 대수롭지 않게 넘겼는데, 이는 자금을 잃은 가맹점에게 이 침해가 얼마나 심각했는지보다 인프라 위험이 시장에서 어떻게 가격에 반영되는지를 더 잘 보여준다(video: FatheryFinds).

마카룬 익스플로잇은 실제로 이렇게 작동했습니다

마카룬은 LND의 bearer-token API 자격 증명입니다. 비밀번호, 세션, 2차 인증 없이, 그것을 제시하는 모든 요청을 인증하는 작은 바이너리 파일입니다. admin 마카룬을 가진 사람은 곧 노드를 가진 것입니다. 결제 채널을 열고 닫을 수 있고, 자금을 이동할 수 있으며, 데몬에 대해 다른 모든 권한 명령을 실행할 수 있습니다 . v2.4.2에서 패치된 BTCPay Server 결함은 인증되지 않은 원격 공격자가 연결된 LND 노드에서 이 .macaroon 파일들을 가져갈 수 있게 했습니다 . 그다음에는 별도의 익스플로잇 체인이 필요하지 않았습니다. 공격자는 그 자격 증명을 원래 의도된 방식 그대로 사용했고, 노드는 명령을 따랐습니다.

바로 이 설계가 bearer token을 효율적으로 만들지만, 동시에 유출되면 치명적으로 만듭니다. 실패할 수 있는 요청별 신원 확인도 없고, 경보를 울릴 인증 로그의 이상 징후도 없으며, 시간을 벌어줄 내장 만료도 없습니다. 공격자들은 훔친 마카룬을 이용해 많은 운영자가 패치를 적용하기 전에 상인의 Lightning 채널을 쓸어갔습니다 . 노드 입장에서는 그것들이 정상적인 관리자 지시였습니다.

피해 범위는 오해하기 쉬우므로 정확히 짚을 필요가 있습니다. BTCPay Server 자체 지갑, BTCPay 안에서 생성된 온체인 핫월렛까지 포함해, 이들은 마카룬 유출로 직접 침해된 것은 아니었습니다 . 하지만 LND는 BTCPay 지갑과 별개로 자체 내부 온체인 지갑을 유지하며, 그 지갑은 이제 공격자가 장악한 노드의 지시에 따릅니다. 그 안에 있던 비트코인은 노출되었고, 강제 종료 후 회수될 수 있는 채널 잔액도 마찬가지였습니다 . 이 구분은 운영상 중요합니다. 운영자가 BTCPay 지갑 잔액만 확인해 멀쩡하다고 보았더라도, LND 쪽에서는 이미 털렸을 수 있기 때문입니다.

이 특정 경로에 노출되었는지는 백엔드 선택과 버전에 달려 있었습니다:

  • 노출됨: Lightning 백엔드로 LND를 실행하는, 2.4.2 이전의 모든 BTCPay Server 릴리스. 2.4.2 릴리스 후보도 포함됩니다 .
  • 이 경로 밖: 다른 Lightning 구현을 사용하는 배포, 그리고 Lightning 백엔드가 연결되지 않은 온체인 전용 BTCPay 인스턴스 .
  • 그래도 업데이트 권고 대상: 백엔드와 관계없이 모든 운영자. v2.4.2에는 Greenfield API에서 Basic authentication을 통해 TOTP 2차 인증을 우회할 수 있는 별도 취약점 수정도 포함됐으며, 이 문제는 Bitcoin Red Team의 @brunoerg와 @benthecarman이 이슈 #7491로 보고했습니다 .

표준 Docker 배포는 v2.4.2의 일부로 LND 0.21.1로 업그레이드되었고, 통합 담당자들에게는 별도로 NBXplorer 2.6.10을 사용하라는 안내가 나갔습니다 . LND 경로 밖에 있었는지는 성실함의 문제가 아니라 아키텍처의 문제였습니다. 영향을 받은 스택을 선택했던 사람에게는 바로 그 점이 불편한 대목입니다.

누가 피해를 입었나: 확인된 피해자와 손실

BTCPay Server 마카룬 익스플로잇으로 라이트닝 자금을 잃었다고 공개적으로 확인한 조직은 두 곳이다. Passport 하드웨어 지갑을 만든 Foundation과 비트코인 진 Citadel21이다. Foundation의 라이트닝 노드는 밤사이 비워졌고, 채널은 강제 종료된 뒤 잔액이 쓸려 나갔다. 반면 핫월렛은 건드려지지 않았다 . Citadel21도 자사 노드가 쓸려 나갔다고 확인했지만, 당시 그곳에 보관된 자금은 매우 적었다고 밝혔다 . 이 두 곳 외의 피해자 수는 알려지지 않았다.

지금까지 공개된 설명 중 가장 자세한 것은 Foundation의 공개 내용이다. CEO 잭 허버트는 팀이 잠든 사이 노드가 비워졌다고 설명했다. 이는 탈취한 관리자 마카룬을 자동화해 사용한 공격 패턴과 맞아떨어진다. 채널을 강제 종료한 뒤, 그 결과 생긴 온체인 출력을 쓸어가는 방식이다 .

"Our Lightning node was drained overnight — channels force-closed and funds swept. Our hot wallet was not touched," — Foundation CEO Zach Herbert (source: Cointelegraph, reported 2026-08).

무엇이 탈취됐고 무엇이 남았는지는 각 운영자가 자신의 노출 범위를 점검할 때 중요하다. BTCPay 내부에서 만든 핫월렛을 포함해 BTCPay의 자체 온체인 지갑은 이번 자격 증명 유출로 직접 침해되지 않았다. 다만 LND의 내부 온체인 지갑 안에 있던 자금은 손상된 노드가 통제하는 범위였기 때문에 영향권 안에 있었다 . Foundation의 결과, 즉 라이트닝 자금은 사라졌지만 핫월렛은 온전했다는 점은 보안 권고문이 설명한 경계와 정확히 일치한다.

주체탈취된 것남은 것공개 상태
Foundation(Passport 하드웨어 지갑)라이트닝 노드 잔액. 채널이 밤사이 강제 종료되고 자금이 쓸려 나감핫월렛은 건드려지지 않음. 하드웨어 지갑이나 고객 키 영향은 보고되지 않음CEO 잭 허버트가 공개 확인(2026-08)
Citadel21(비트코인 진)라이트닝 노드가 쓸려 나감자금이 쓸려 나간 당시 노드에 보관된 금액은 매우 적었음해당 매체가 공개 확인(2026-08)
이름이 공개되지 않은 BTCPay 운영자들공개되지 않음공개되지 않음BTCPay의 향후 사후 분석에서 집계 수치 공개 예정

BTCPay Server는 침해된 운영자 수나 탈취된 비트코인의 총액을 아직 공개하지 않았다. 두 수치 모두 프로젝트가 공개하겠다고 밝힌 사후 분석에 포함될 것으로 예상된다 . 이런 침묵이 반드시 회피를 뜻하는 것은 아니다. 자체 호스팅되고 독립적으로 운영되는 노드들의 손실을 재구성하는 일은 실제로 어렵다. 잔액을 한눈에 보는 중앙 주체가 없기 때문이다. 다만 그만큼 현재 공개된 피해 집계는 전체가 아니라 최소치에 가깝다.

규모는 보도 내용보다 대응 방식에서 어느 정도 짐작할 수 있다. 2026년 8월 10일, 지지자들은 회수된 자금의 10%, 최대 3 BTC를 지급하는 복구 보상금을 발표했다. 이는 탈취액이 7자리 사토시 단위의 인센티브를 걸 만큼 컸다는 뜻으로 읽힌다 . 같은 보도 기간 안에서 비교하면, 별도의 Coldcard 관련 익스플로잇은 확인된 손실이 약 1억 1,600만 달러에 달했다. 지금까지 공개된 증거만 놓고 보면 이번 사건은 그 규모에는 미치지 않는 것으로 보인다 . 현물 시장은 대체로 이 소식에 큰 반응을 보이지 않았다(video: FatheryFinds).

운영자가 실무적으로 읽어야 할 대목은 이렇다. 확인된 두 피해자는 모두 기술 역량을 갖춘 비트코인 네이티브 조직이었고, 두 곳의 결과 차이는 운영을 얼마나 조심스럽게 했느냐가 아니라 채널에 얼마나 많은 자금을 넣어두었느냐에서 갈렸다. 자체 호스팅 노드의 잔액 규모가 결정 변수였다 .

v2.4.2로 업데이트만 해서는 안전해지지 않는 이유

BTCPay Server 2.4.2를 설치하면 유출 경로는 막히지만, 공격자가 이미 복사해 간 마카룬이 무효화되지는 않는다. 마카룬은 보유자 인증 정보다. 파일을 가진 사람이 사용할 수 있고, 해당 인증 정보가 폐기되고 재발급될 때까지 계속 유효하다 . 8월 7일에 패치만 하고 멈춘 운영자는, 며칠 전 복사된 인증 정보로 공격자가 명령을 내릴 수 있는 노드를 여전히 운영 중일 수 있다 . 패치는 네 단계 중 첫 단계일 뿐, 작업 전체가 아니다.

BTCPay가 공개한 복구 절차는 순서대로 진행해야 하며, 한 단계를 건너뛰면 앞 단계도 미완성으로 남는다:

  • 업데이트. Server Settings → Maintenance → Update에서 2.4.2로 올린다. 2.4.2 릴리스 후보 버전을 포함해 그 이전의 모든 릴리스가 영향을 받는다 .
  • 마카룬과 macaroons.db 재생성. 도난당한 인증 정보를 실제로 폐기하는 절차는 이것이다. 업데이트만으로는 폐기되지 않는다 .
  • 인스턴스에 연결된 다른 Lightning 백엔드의 인증 문자열도 교체해야 한다. LND만 해당되는 것이 아니다 .
  • BTCPay 안에서 생성한 온체인 핫월렛은 자금을 옮기고 새로 만든다. 이 지갑들이 유출로 직접 침해된 것은 아니지만, 지침은 그래도 자금을 이동하고 지갑을 재생성하라는 것이다 .

표준 Docker 배포판에서는 이 중 일부가 자동으로 처리된다. 2.4.2는 해당 설치 환경을 LND 0.21.1로 업그레이드하고 업데이트 과정에서 마카룬 인증 정보를 재생성한다. 통합 개발자들에게는 별도로 NBXplorer 2.6.10으로 이동하라는 안내도 나갔다 . 자동화는 BTCPay가 관리하는 범위에서 멈춘다. 자체 리버스 프록시 뒤에 두었든, 직접 관리하는 Tor hidden service를 통해 열었든, 포트 포워딩으로 노출했든 LND를 독립적으로 공개한 운영자는 인증 정보를 직접 교체해야 한다. 업데이트가 애초에 통제하지 않았던 접근 경로까지 닫을 수는 없기 때문이다 . 바로 이 집단이 업데이트가 모든 것을 처리했다고 가장 쉽게 착각할 수 있다. 맞춤 네트워킹을 쓰는 고급 설정일수록 자동 경로에서 빠진다.

즉시 업데이트할 수 없는 운영자에게 내려진 지시는 단호했다. 접속 가능한 상태로 두지 말고 서버를 오프라인으로 내리라는 것이었다 . BTCPay는 Docker 배포판에서 LND API에 대한 공개 원격 접근도 임시로 제거했다. 그래서 Zeus 같은 외부 지갑은 프로젝트가 복구해도 안전하다고 판단할 때까지 BTCPay 도메인이나 onion 주소를 통해 LND에 더 이상 연결할 수 없다 . Lightning 결제 자체는 계속 작동한다. 중단된 것은 원격 관리의 편의 기능이다.

마지막 단계는 기계적인 조치가 아니라 포렌식 점검이다. BTCPay는 운영자에게 네 가지 신호를 기준으로 노드를 감사하라고 요청했다. 승인되지 않은 결제, 예상 밖의 채널 폐쇄, 낯선 피어, 내부 기록과 온체인 또는 Lightning 잔액 사이의 불일치다 . 이는 확인된 자금 유출이 실제로 어떤 모습이었는지와 바로 맞물린다. 채널이 강제 폐쇄되고 자금이 밤사이에 쓸려 나간 사례들이다 . 인증 정보를 전부 교체한 뒤 깨끗한 감사 결과가 나와야만 해당 운영자에게 사건이 끝났다는 증거가 된다. 패치된 버전 번호만으로는 부족하다.

BTCPay의 긴급 대응, 날짜별 정리

BTCPay Server의 대응은 사흘 단위로 빠르게 진행됐다. 보안 권고문과 v2.4.2 긴급 패치는 모두 2026년 8월 7일에 나왔고, 그 시점에는 이미 이 취약점이 악용되고 있었다 . 같은 날 프로젝트는 Docker 배포 환경에서 LND API에 대한 공개 원격 접근을 제거했다. 이는 버그 수정이라기보다 방어적 롤백이었다. 8월 10일에는 지원자들이 수습 작업에 금전적 보상을 붙이며, 회수 자금의 10%, 최대 3 BTC까지 지급하는 복구 바운티를 발표했다 .

날짜조치운영자에게 미친 실제 영향
2026년 8월 7일보안 권고문 공개, v2.4.2 긴급 릴리스 배포 유출 경로 차단, Docker 배포 환경은 LND 0.21.1로 업그레이드되고 마카룬은 자동 재생성
2026년 8월 7일Docker 배포 환경에서 LND API에 대한 공개 원격 접근 제거 라이트닝 결제는 계속 작동하지만, Zeus 같은 외부 지갑은 더 이상 BTCPay 도메인이나 onion 주소를 통해 연결할 수 없음
2026년 8월 7일Basic auth를 통한 Greenfield API의 TOTP 2FA 우회 취약점 패치(#7491) 계정 생성 5분 뒤 Basic auth가 기본적으로 비활성화됨
2026년 8월 7일패치할 수 없는 운영자에게 서버를 오프라인으로 전환하라고 안내 노드를 노출한 채 두는 것보다 다운타임이 더 낮은 비용으로 간주됨
2026년 8월 10일복구 바운티 발표: 회수 자금의 10%, 최대 3 BTC 빼돌려진 잔액을 추적하고 반환하는 데 금전적 인센티브 부여

운영자들이 일상적으로 가장 크게 체감할 변화는 원격 접근 롤백이다. 결제는 계속 노드를 통해 정산되지만, 공개 엔드포인트를 통해 휴대폰 지갑에서 LND 백엔드를 관리하던 편의 계층은 프로젝트가 복구해도 안전하다고 판단할 때까지 사라진다 . 이 절충이 핵심이다. 노출된 API 표면이 있었기 때문에 유출된 bearer 자격 증명이 애초에 원격에서 사용 가능해졌다.

같은 릴리스에 포함된 Greenfield API 수정은 별도 결함이지, 마카룬 취약점의 또 다른 증상이 아니다. Bitcoin Red Team의 @brunoerg와 @benthecarman이 보고한 이 문제는 Basic authentication을 통해 TOTP 2단계 인증 검사를 우회할 수 있게 했으며, 릴리스 노트도 두 문제를 별개로 다룬다 . 계정 생성 5분 뒤 Basic auth를 기본 비활성화하면, 오래 유지되는 비밀번호형 자격 증명이 두 번째 인증 요소를 대체할 수 있는 시간이 좁아진다.

공개 절차 측면에서 BTCPay Server Foundation은 Sparrow Wallet 개발자 Craig Raw와 Bitcoin Red Team 펀드에 각각 0.21 BTC를 기부했다. 이는 권고문이 나온 뒤가 아니라 권고문과 동시에 패치가 배포될 수 있게 한 비공개 사전 제보에 대한 보상이었다 . 이 보고에 참여한 팀에는 Rob Hamilton, Calle, ZEUS 개발자 Evan Kaloudis도 포함됐다 . BTCPay는 잇따른 발견을 더 저렴해진 기계 보조 감사와 연결하며, "AI is changing the balance between attackers and defenders. As models improve, it becomes faster and cheaper to inspect large codebases"라고 언급했다 . 다만 이 타임라인에 아직 빠져 있는 것은 회계다. BTCPay는 몇 명의 운영자가 침해됐는지, 도난 총액이 얼마인지 공개하지 않았고, 두 수치 모두 향후 사후 분석으로 미뤄져 있다 .

BTCPay에서 라이트닝 자금 손실 사고가 처음은 아니었습니다

BTCPay Server 운영자들은 이전에도 라이트닝 자금을 잃은 적이 있고, 당시 사고는 완전히 다른 지점에서 터졌습니다. 2023년 12월 침해는 BTCPay 코어가 아니라 LNbank를 통해 발생했습니다. LNbank는 관리자가 자신의 인스턴스에서 라이트닝 하위 계정의 수탁자 역할을 할 수 있게 해주는 서드파티 BTCPay 플러그인이었습니다 . 유지관리자인 Dennis Reimann(d11n)은 BTCPay 플러그인이 코어 팀의 검토 절차 밖에서 만들어지고 배포될 수 있다고 지적했습니다 . 2년 간격으로 벌어진 두 사건이 모두 라이트닝 채널 자금 탈취로 끝났다는 점은 우연이 아니라 구조적인 패턴입니다.

2023년 버그는 자격 증명 유출이 아니라 레이스 컨디션이었습니다. 공격자들은 앞선 출금이 데이터베이스에 커밋되기 전에 여러 건의 라이트닝 출금을 동시에 요청했고, 그 결과 각 잔액 확인은 오래된 상태를 읽었습니다. 실제 지갑 잔액을 넘는 반복 출금이 가능해졌고, 결국 관리자의 노드가 비워질 때까지 이어졌습니다 . 보고는 2023년 12월 7일 목요일 저녁부터 12월 8일 금요일 아침 사이 BTCPay의 Mattermost와 Telegram 채널에 도착했고, 사용자 로그에는 진행 중인 실제 악용이 나타났습니다 . 공개 가입이 활성화된 서버가 가장 크게 노출되어 있었습니다 .

가장 많이 인용된 단일 손실 사례는 Hugo Ramos의 사례입니다. 그는 BTCPay Server 1.11.1과 LNbank 1.6.2를 운영하고 있었고, 2023년 12월 6일 라이트닝 결제 998건이 같은 LN 지갑 경로로 라우팅되어 407,361,805 sats, 약 4.07 BTC가 빠져나갔다고 보고했습니다 . 이후 독립 보안 분석 글도 같은 동시 출금 레이스를 요약하며 동일한 피해 규모를 제시했습니다 . 공격자의 신원, 회수 가능성, 그리고 다른 피해자들이 침묵했는지는 끝내 확인되지 않았습니다. 2026년 사후 분석에서도 아직 메우지 못한 것과 같은 회계상의 공백입니다.

패치에서 폐기까지: LNbank 타임라인

날짜사건버전 / 결과
2023-12-06Hugo Ramos가 자신의 노드에서 998건의 결제로 자금이 빠져나갔다고 보고BTCPay 1.11.1 + LNbank 1.6.2
2023-12-07 to 12-08Mattermost와 Telegram을 통해 보고 도착, 로그에서 실시간 악용 확인영향: LNbank <1.8.9
2023-12-08공개 약 24시간 뒤 패치 배포LNbank 1.8.9
2023-12-26플러그인 v1.9.0의 두 번째 치명적 버그 공개수정: LNbank 1.9.2
2023-12-26손실 방지를 위해 송금 기능 전면 비활성화, 최종 플러그인 릴리스LNbank 1.9.2 (end of line)
2026-06-25BTCPay가 LNbank와 Lightning Charge 백엔드 제거BTCPay Server 2.4.0

2023년 12월 26일 공개된 두 번째 치명적 문제는 플러그인 v1.9.0에 영향을 미쳤습니다. v1.9.2의 수정은 버그를 패치하는 동시에 손실 방지 조치로 송금 기능을 완전히 비활성화했고, 개발자는 1.9.2가 LNbank의 최종 릴리스가 될 것이라고 확인했습니다 . BTCPay는 결국 의존성을 완전히 제거했습니다. 2026년 6월 25일 릴리스된 2.4.0 버전은 LNbank와 Lightning Charge 백엔드 지원을 중단했고, LND는 v0.19.3-beta에서 v0.21.0-beta로, Core Lightning은 v25.05에서 v26.06.1로, phoenixd는 0.6.3에서 0.8.0으로 올렸습니다 .

모든 BTCPay 결함이 코인 탈취로 이어진 것은 아닙니다. CVE-2022-32984는 1.3.0부터 1.5.3까지의 공개 POS 앱에 영향을 줬고, 2022년 5월 28일 v1.5.4에서 패치됐으며, 실제 악용 보고 없이 공개됐습니다 . 위험을 읽을 때 이 차이는 중요합니다. 실제로 상인들에게 금전 손실을 일으킨 두 사건, 즉 2023년과 2026년 사고는 모두 살아 있는 라이트닝 자격 증명이나 수탁 기능을 보유한 구성요소와 관련이 있었습니다. 이는 BTCPay 자체 문서가 구조적으로 자금이 위험하다고 경고하는 바로 그 지점입니다. 내부 라이트닝 노드는 핫월렛으로 운영되므로 잔액을 낮게 유지해야 한다는 설명입니다 .

그 시기에 LNbank를 운영했던 사람이라면 아직 정리해야 할 일이 남아 있습니다. 오래된 배포는 안전하지 않은 것으로 간주하고, 플러그인을 제거하며, BTCPay와 라이트닝 구성요소를 업그레이드하고, 인스턴스가 취약 버전을 실행한 적이 있다면 2023년 12월 전후의 가입, API 활동, 출금 내역을 감사해야 합니다 .

셀프 호스팅 라이트닝의 더 큰 위험 구도

셀프 호스팅 라이트닝 인프라가 안고 있는 문제는 일회성 버그가 아니라, 시스템 전반에 쌓인 코드 감사 부채다. 공개 전 BTCPay에 마카룬 결함을 비공개로 제보한 그룹인 Bitcoin Red Team은 수백 개 저장소에 걸친 수천 건의 발견 사항 중 비트코인 프로젝트에서 85건의 치명적 버그를 지적해 왔다 . 이 비율을 보면 2026년 8월의 대규모 스윕은 다르게 보인다. 이미 가맹점, 결제 처리업체, 노드 운영자가 의존하고 있지만 아직 충분히 검토되지 않은 훨씬 큰 코드 적체 속에서 하나의 공개 사례가 드러난 것이다.

그 적체의 금전적 규모는 같은 시기 다른 사례에서도 보인다. 별도의 Coldcard 관련 익스플로잇은 비트코인 하드웨어와 인프라 전반에서 확인된 손실만 약 1억 1,600만 달러에 달했다 . BTCPay는 아직 자체 운영자 중 몇 명이 침해됐는지, 총 얼마가 스윕됐는지 공개하지 않았다. 두 수치는 향후 사후 분석에서 나올 것으로 예상된다 . 그 내용이 나오기 전까지 정직한 해석은 이렇다. 셀프 호스팅 비트코인 도구에서 지금 보이는 손실은 전체가 아니라 하한선이다.

BTCPay는 이번 발견의 물결을 대규모 코드 읽기의 주체가 바뀌는 흐름 속에서 설명했다.

"AI는 공격자와 방어자 사이의 균형을 바꾸고 있다. 모델이 개선될수록 대규모 코드베이스를 더 빠르고 저렴하게 검사할 수 있다." — BTCPay Server Foundation (source: The Block, 2026-08)

이는 양쪽 모두에 적용된다. 그리고 이번 공개를 둘러싼 인센티브 구조는 방어 쪽도 속도를 맞추려면 자금이 필요하다는 점을 보여준다. BTCPay Server Foundation은 책임 있는 공개를 위해 Sparrow Wallet 개발자 Craig Raw와 Bitcoin Red Team 펀드에 각각 0.21 BTC를 기부했고, 2026년 8월 10일 지지자들은 회수된 자금의 10%, 최대 3 BTC를 지급하는 복구 바운티를 발표했다 . 저렴한 자동화 검토는 오래 운영된 저장소 속 잠복 버그가 더 빨리 발견된다는 뜻이다. 누가 가장 집요하게 들여다보느냐의 문제일 뿐이다. 운영자 입장에서 실무적 함의는 분명하다. 3년 동안 조용했던 셀프 호스팅 스택이 그래서 안전한 것은 아니다. 감사되지 않았을 뿐이다.

지금까지 이 사건이 아닌 것은 가격 이벤트다. 현물 비트코인 시장은 대체로 이 공개를 무심히 넘겼고, 익스플로잇은 청산 연쇄가 아니라 전반적으로 안정적인 흐름 속에서 전개됐다 (video: FatheryFinds). 여기서의 노출은 집중적이고 운영적인 성격을 띤다. 현물 BTC 보유자가 아니라 핫월렛에 채널 유동성을 보유한 가맹점, 진, 하드웨어 업체, 노드 운영자에게 영향을 준다. 이를 거래해야 할 시장 신호가 아니라 배포 계층에서 관리해야 할 인프라 신뢰 위험으로 봐야 한다. 패치 주기, 자격 증명 교체, 잔액 한도가 핵심이다.

앞으로 12개월의 합리적인 계획 가정은 이런 형태의 공개가 줄어드는 것이 아니라 더 늘어난다는 것이다. 성숙한 코드베이스, 자격 증명 처리 경로, 선택형 플러그인이 처음으로 기계 속도로 검토되고 있기 때문이다. 다음 치명적 버그는 이미 작성되어 있고 아직 발견되지 않았을 뿐이라는 전제로 라이트닝 잔액을 산정하는 운영자는 다음 사건을 맞더라도 자기 자신의 사후 분석을 쓰지 않고 넘어갈 수 있을 것이다.

라이트닝 노드 운영자가 지금 해야 할 일

LND 백엔드로 BTCPay Server를 운영하는 모든 운영자는 반대로 입증되기 전까지 자신의 노드 자격 증명이 유출됐다고 보고, 정해진 순서대로 처리해야 합니다. 2.4.2 이상으로 업데이트하고 , 마카룬과 macaroons.db를 재생성하며, 독립적으로 노출된 LND 인스턴스의 자격 증명을 교체하고, 채널 이력을 감사해야 합니다. 패치만으로는 탈취된 bearer 토큰이 계속 유효하게 남습니다 . 속도보다 순서가 더 중요합니다.

BTCPay가 공개한 즉시 점검 목록의 순서는 다음과 같습니다.

  • 먼저 업데이트하세요. Server Settings → Maintenance → Update. 표준 Docker 배포는 LND 0.21.1로 이동하고 마카룬 자격 증명을 자동으로 재생성합니다. 통합 운영자는 NBXplorer도 2.6.10으로 올려야 합니다 .
  • 직접 노출 구성을 관리한다면 자격 증명을 수동으로 재생성하세요. 자체 리버스 프록시, 직접 관리하는 Tor 히든 서비스, 포트 포워딩을 통해 LND에 접근할 수 있다면, BTCPay 업데이트는 자신이 관리하지 않는 경로까지 닫지 않습니다. 마카룬과 macaroons.db를 직접 폐기하고 재발급해야 하며, 다른 라이트닝 백엔드의 인증 문자열도 교체해야 합니다 .
  • BTCPay가 생성한 온체인 핫월렛은 새로 만드세요. 기존 키를 재사용하지 말고 자금을 옮긴 뒤 새 지갑을 생성하세요 .
  • 감사하고, 이후에도 계속 감사하세요. 무단 결제, 예상 밖의 채널 또는 강제 종료된 채널, 낯선 피어, 내부 기록과 온체인 또는 라이트닝 잔액 사이의 차이를 확인하세요 .
  • 지금 업데이트할 수 없다면 서버를 오프라인으로 내리세요. 이는 신중한 제안이 아니라 프로젝트가 명시한 대체 지침이었습니다 .

사고 대응을 넘어, BTCPay의 상시 문서는 잔액 관리 원칙을 분명히 합니다. 내부 라이트닝 노드는 설계상 채널 자금에 핫월렛을 사용하고, 오프체인 자금에는 별도의 운영 관리가 필요하며, 커스터디형 라이트닝 서비스는 제3자 신뢰를 요구하고, 채널 잔액은 낮게 유지해야 합니다 . 가맹점 입장에서는 이렇게 정리됩니다. 며칠치 결제 흐름을 처리하는 데 필요한 금액만 채널에 두고, 나머지는 실제로 지킬 수 있는 일정에 따라 콜드 스토리지로 옮기세요. Foundation의 노드는 밤사이 비워졌지만 핫월렛은 건드려지지 않았습니다 . 손실 규모를 결정한 것은 대응 속도가 아니라 자금 분리였습니다.

두 가지 제약은 계속 유지됩니다. Docker 배포에서 BTCPay 도메인과 onion 주소를 통한 원격 LND API 접근은 꺼진 상태로 유지되므로, 외부 지갑 연결은 프로젝트가 복구해도 안전하다고 판단할 때까지 다시 연결되지 않습니다. 가장 자주 언급되는 사례는 Zeus입니다. 라이트닝 결제 자체는 계속 작동합니다 . 그리고 이 사건에 아직 남아 있는 두 숫자, 즉 몇 명의 운영자가 침해됐는지와 총 얼마의 비트코인이 탈취됐는지는 BTCPay의 예정된 사후 분석에서 제시될 예정입니다 . 그 수치가 나오기 전까지는 이번 사고의 영향 범위를 작다고 보지 말고 알 수 없다고 봐야 합니다. 현물시장이 이를 대수롭지 않게 넘겼다는 논평은 가격에 대한 이야기일 뿐, 얼마나 많은 노드가 비워졌는지에 대한 이야기가 아닙니다 (video: FatheryFinds).

구체적인 결론은 이렇습니다. 오늘 패치하고, 오늘 모든 마카룬을 재발급하며, 전부 잃어도 감당할 수 있는 채널 잔액 상한을 정하세요. 회수된 자금의 10%, 최대 3 BTC까지 지급하는 복구 보상금이 걸려 있지만 , 복구 보상금은 마지막 방어선일 뿐 계획이 아닙니다. 계획은 교체된 자격 증명 위에 더 작은 잔액을 두는 것입니다.

자주 묻는 질문

v2.4.2로 업데이트한 뒤에도 내 BTCPay Server 노드는 여전히 위험한가요?

네, 자격 증명을 다시 생성하지 않았다면 그렇습니다. v2.4.2를 설치하면 인증되지 않은 원격 공격자가 .macaroon 파일을 가져갈 수 있었던 경로는 막히지만, 공격자가 이미 복사한 마카룬이 무효화되지는 않습니다. 해당 마카룬은 폐기하고 재발급하기 전까지 계속 유효한 bearer 자격 증명으로 남습니다 . 필요한 순서는 다음과 같습니다. Server Settings → Maintenance → Update에서 업데이트하고, 마카룬과 macaroons.db를 다시 생성하고, 다른 Lightning 백엔드가 있다면 인증 문자열을 교체한 뒤, BTCPay 안에서 생성된 온체인 핫월렛의 자금을 먼저 옮기고 지갑을 다시 만들어야 합니다 . 표준 Docker 배포는 LND 0.21.1로 업그레이드되며 마카룬이 자동으로 다시 생성되고, 통합 개발자들에게는 NBXplorer 2.6.10으로 이동하라는 안내가 나갔습니다 . 직접 LND를 노출했다면, 예를 들어 자체 리버스 프록시, 직접 관리하는 Tor hidden service, 포트 포워딩을 쓰는 경우라면 BTCPay 업데이트가 관리하지 않는 경로까지 닫아주지는 않으므로 수동으로 교체해야 합니다 .

LND를 쓰지 않는 BTCPay 배포도 이 취약점의 영향을 받나요?

자격 증명 탈취 경로는 Lightning 백엔드로 LND를 쓰는 배포에 한정됩니다. 다른 Lightning 구현이나 온체인 전용 BTCPay 설치는 이 특정 경로로 노출되지는 않지만, 프로젝트는 모든 운영자에게 그래도 업데이트하라고 권고했습니다 . 이 조언이 폭넓게 적용되는 이유는 두 가지입니다. 2.4.2 이전의 모든 릴리스, 2.4.2 릴리스 후보까지 영향을 받고, 같은 릴리스에서 Greenfield API의 Basic authentication을 통한 별도 TOTP 2단계 인증 우회 문제(#7491)도 수정됐기 때문입니다. 이 문제는 백엔드와 무관하며, 이제 Basic auth는 계정 생성 5분 뒤 기본적으로 비활성화됩니다 . 또한 BTCPay 자체 온체인 지갑, 핫월렛을 포함한 지갑은 마카룬 유출로 직접 침해된 것은 아니지만, LND 내부 온체인 지갑에 있는 비트코인은 침해된 노드 뒤에 있었기 때문에 위험에 노출됐다는 점도 유의해야 합니다 .

2026년 8월 BTCPay 취약점으로 얼마나 도난당했나요?

집계된 금액은 아직 공개되지 않았습니다. BTCPay는 몇 명의 운영자가 침해됐는지, 총 얼마가 탈취됐는지 밝히지 않았으며, 두 수치는 예정된 사후 분석에서 공개될 것으로 예상됩니다 . 공개적으로 이름이 확인된 피해자는 두 곳입니다. Passport 하드웨어 지갑 제조사 Foundation은 CEO Zach Herbert가 회사의 Lightning 노드가 밤사이 털렸고 채널이 강제 종료된 뒤 자금이 쓸려 나갔지만 핫월렛은 건드려지지 않았다고 밝혔습니다. 또 다른 피해자인 Bitcoin 진 Citadel21은 노드 자금이 쓸려 나갔다고 확인하면서도 그곳에 보관한 자금은 많지 않았다고 말했습니다 . 비교하자면, 2023년 LNbank 사건에는 공개된 단일 피해자 수치가 있습니다. Hugo Ramos는 2023년 12월 6일 같은 지갑 경로로 998건의 Lightning 결제가 발생해 407,361,805 sats, 약 4.07 BTC가 빠져나갔다고 보고했습니다 . 2026년 8월 사건의 총액으로 떠도는 숫자는 사후 분석이 나오기 전까지 검증되지 않은 것으로 보아야 합니다.

이번 취약점과 2023년 LNbank 사건은 무엇이 다른가요?

계층도 다르고 버그 유형도 다릅니다. 2023년 12월 사건은 관리자가 Lightning 하위 계정의 수탁자 역할을 할 수 있게 해주던 서드파티 BTCPay Server 플러그인 LNbank를 통해 발생했습니다. 유지관리자 Dennis Reimann은 BTCPay 플러그인은 코어 팀의 검토 절차 밖에서 만들어지고 배포될 수 있다고 설명했습니다 . 작동 원리는 동시성 경쟁 조건이었습니다. 공격자들이 이전 출금이 데이터베이스에 커밋되기 전에 여러 출금을 동시에 요청했고, 각 잔액 확인이 오래된 상태를 읽으면서 지갑에서 반복적으로 초과 출금이 가능해졌습니다 . 당시 공개 경고에서는 BTCPay Server 코어는 영향을 받지 않았다고 강조했습니다 . 2026년 8월 결함은 그 반대입니다. LND 마카룬 파일을 인증 없이 가져올 수 있었던 방식에서 생긴 코어 측 자격 증명 노출 문제입니다 . 플러그인 경로도 이제 닫혔습니다. 2026년 6월 25일 릴리스된 버전 2.4.0은 LNbank와 Lightning Charge 백엔드를 완전히 제거했고, LND를 v0.19.3-beta에서 v0.21.0-beta로 올렸습니다 .

노드 자금이 털렸다면 되찾을 수 있나요?

현재 작동 중인 장치는 하나 있지만, 반환을 보장하지는 않습니다. 2026년 8월 10일, BTCPay Server 지지자들은 도난 비트코인의 추적과 반환을 장려하기 위해 회수된 자금의 10%, 최대 3 BTC를 지급하는 회수 포상금을 발표했습니다 . 쓸려 나간 Lightning 채널 자금은 강제 종료되어 온체인으로 이동한 뒤에는 되돌릴 수 없기 때문에, 현실적인 조치는 환수가 아니라 문서화와 피해 확산 차단입니다. 승인되지 않은 결제, 예상치 못한 채널 종료, 낯선 피어, 내부 기록과 온체인 또는 Lightning 잔액 사이의 차이를 점검해야 합니다 . 별도로, 같은 공개 절차와 관련해 상위 보상도 있었습니다. Foundation은 Sparrow Wallet 개발자 Craig Raw와 Bitcoin Red Team 펀드에 각각 0.21 BTC를 기부했습니다 . 자격 증명 침해로 잃은 채널 잔액은 돌아오지 않는다는 전제로 계획하는 편이 현실적입니다.

영상 / 자료

최종 업데이트: 2026-08-12. BTCPay Server의 v2.4.2 보안 공지와 릴리스 노트, 그리고 2026년 8월 10일까지의 동시기 보도를 대조해 검토했습니다. 총 손실 규모는 아직 프로젝트의 사후 분석 발표를 기다리는 중입니다.