키헌터 작성
비트 하베스터 공격:
봄이 약한 곳에서는 풍성한 수확이 나온다!
libbitcoin 라이브러리의 CVE-2023-39910 취약점은 심각한 암호화 보안 취약점으로, 안전하지 않은 코드 한 줄이 전체 비트코인 생태계에 얼마나 치명적인 결과를 초래할 수 있는지를 보여줍니다. nvd.nist+1
unsafe_array_castlibbitcoin 코드의 취약한 함수로 인해 모든 비트코인 지갑이 “개인 키 유출 공격(Private Key Compromise Attack )”의 잠재적 피해자가 될 수 있습니다. 이 공격은 과학적으로는 CWE-119/CWE-312 공격으로 분류되며, 공격자가 버퍼 오버플로를 통해 개인 키에 직접 접근하고 메모리에서 민감한 데이터를 유출하는 방식입니다. keyhunters+2
이 위협의 심각한 규모는 단 한 줄의 취약한 코드만으로도 비트코인의 모든 암호화 보호 기능을 무력화할 수 있다는 점입니다 . 개인 키가 유출되는 순간부터 자금이 완전히 손실되기까지 단 몇 분밖에 걸리지 않으며, 블록체인 거래의 비가역성 때문에 자산 복구가 물리적으로 불가능해집니다. (koreascience+1)
” 비트 하베스터 공격” 은 취약한 지갑을 해킹하여 피해자의 모든 암호화폐를 자동으로 탈취하는 공격입니다. 이 공격은 libbitcoin에서 흔히 볼 수 있는 검증 절차 없이 unsafe_array_cast와 같은 허술한 데이터 처리 방식을 이용하고 복사하는 데서 비롯됩니다. 해커는 시드 생성 시점만 잘 파악하면 개인 키를 계산하여 피해자의 모든 암호화폐를 손쉽게 획득할 수 있습니다.
소유자가 자신도 모르게 기기 메모리에 키 조각을 남겨두면, 허술한 배열 처리 코드가 이러한 조각들을 쉽게 추출할 수 있는 “암호화 정보 조각”으로 바꿔버립니다. 공격자는 이를 이용해 추출 도구를 작동시켜, 값에 대한 빠른 무차별 대입 분석과 안전하지 않은 데이터 변환을 통한 정보 유출 분석을 통해 마치 밭을 거르듯 손쉽게 피해자의 지갑을 탈취합니다.
지갑의 모든 내용물은 단 몇 분 만에 공격자의 주소로 전송됩니다.
“비트 하베스터”는 프로그래머의 부주의를 상징하는 보편적인 용어로, 속도와 편의성을 위해 암호화 보안을 희생하고, 누락된 모든 바이트가 해커의 디지털 수확물이 되는 현상을 나타냅니다.
“암호화폐를 지키고 싶다면, 채굴 프로그램이 당신의 코드를 덮어쓰지 못하게 하세요!” phemex+2
“CVE-2023-39910: libbitcoin의 심각한 unsafe_array_cast 취약점 및 개인 키 유출 공격 – 비트코인 생태계 보안에 미치는 치명적인 영향 분석”
“암호화 요새 무너뜨리기: 단 한 줄의 코드, CVE-2023-39910이 어떻게 90만 달러 상당의 비트코인 손실과 대규모 개인 키 유출로 이어졌는가”
버퍼 오버플로우부터 비트코인 도난까지: 암호화 라이브러리의 CVE-2023-39910 및 개인 키 유출 공격 현상에 대한 과학적 분석
“암호화 재앙의 해부: CVE-2023-39910 사례를 통해 본 안전하지 않은 코딩이 비트코인 지갑 보안에 미치는 심각한 영향”
핵심 요소:
- CVE-2023-39910 은 incibe+2 과학적 식별 과 관련된 특정 취약점 번호입니다 .
- unsafe_array_cast 는 취약한 함수의 기술적 명칭입니다.
- libbitcoin 은 문제가 발견된 특정 라이브러리입니다.
- 개인 키 유출 공격( AKM+2)
- 비트코인이 공격의 주요 목표물입니다.
- 90만 달러 – 실제 피해액이 바이낸스+2의 관심을 끌게 될 전망
연구 논문: unsafe_array_cast 취약점이 비트코인 생태계에 미치는 심각한 영향 및 공격에 대한 과학적 분류
현대 암호화폐 생태계에서 애플리케이션과 라이브러리의 암호학적 강도는 사용자 자산을 보호하는 기반이 됩니다. 개인 키 처리 구현에서 발생하는 단 하나의 사소한 취약점조차도 막대한 자금 유출, 재정적 손실, 그리고 비트코인의 명성에 심각한 타격을 초래할 수 있습니다. keyhunters+2
unsafe_array_cast 취약점이 발생하는 방식
비트코인 작업을 위한 C++ 라이브러리(예: libbitcoin) 코드에서 가장 눈에 띄고 위험한 버그 중 하나는 `Cast()` 연산자를 사용하는 것입니다 unsafe_array_cast. 이 연산자는 바이트 배열 포인터(`byte` 배열 포인터 uint8_t*)를 특정 크기의 고정 배열로 형변환하는데, 이때 입력 데이터의 실제 크기가 예상 키 크기와 일치하는지 확인하지 않습니다.
결과적으로:
- 버퍼 오버플로가 발생하여 예상치 못한 메모리 영역이 누출될 수 있습니다.
- 데이터 형식이 잘못되었거나 외부에서 조작이 발생할 경우, 저장된 개인 키 범위를 벗어나 읽기/쓰기가 가능해집니다. (위키피디아+2)
- 공격자는 거래 서명 및 지갑 관리에 사용되는 개인 키를 추출하거나 교체할 수 있습니다.
이 취약점이 비트코인 보안에 미치는 영향
- 개인 키 완전 유출 : 유출된 키는 공격자에게 특정 비트코인 주소의 모든 자금을 장악하고 피해자를 대신하여 모든 거래를 생성할 수 있는 권한을 부여합니다. koreascience+1
- 직접적인 자금 탈취 : 개인 키를 입수하는 즉시 자산은 관리되는 주소로 즉시 이체되며, 환불은 불가능합니다.
- 공격의 확장성 : 자동 스캐너는 취약한 지갑을 찾아내고, 대규모 공격을 수행하며, 봇넷을 구성하여 자금을 수집할 수 있습니다.
- 신뢰도 하락 : 주요 보안 침해 사건들이 비트코인 생태계의 평판에 심각한 타격을 주고 있는 것으로 알려졌습니다.
공격의 과학적 명칭 및 분류
하위 수준 오류로 인해 개인 키가 노출되는 공격을 과학적이고 전문적인 용어로 “개인 키 침해 공격(Private Key Compromise Attack)” 또는 “개인 키 유출(공개) 공격(Private Key Leakage (Disclosure) Attack )”이라고 합니다. 이 공격은 암호화 시스템을 침해하는 중요한 공격 경로로 공식적으로 인정받고 있습니다. acm+3
국제 분류(CWE):
- CWE-119: 메모리 버퍼 범위 내에서 연산이 부적절하게 제한됨(버퍼 오버플로). (위키 백과 )
- CWE-312: 메모리에 민감한 정보의 평문 저장 또는 노출
그 결과는 다음과 같은 공격 벡터와 관련이 있습니다.
- 임의 거래 위조
- 무단 자금 이체
- 지갑 인수
CVE 식별자
이러한 취약점의 구체적인 구현 사례에는 CVE 번호가 할당됩니다.
- CVE-2023-39910 은 libbitcoin Explorer의 키 생성 및 배열 처리(안전하지 않은 초기화 및 배열 처리 포함)에서 발견된 가장 최근의 취약점으로, 개인 키의 보안에 심각한 영향을 미칩니다. nvd.nist+2
결론
비트코인 라이브러리의 심각한 메모리 및 데이터 변환 결함으로 인해 개인 키 유출 공격(CVE-2023-39910)과 같은 과학적으로 분류된 공격이 가능하며, 이는 자금의 직접적인 탈취와 생태계 전반의 위협으로 이어질 수 있습니다. 효과적인 보호를 위해서는 엄격한 보안 경계 검사, 메모리 소독, 안전한 키 직렬화/역직렬화, 그리고 사용되는 소스 코드와 라이브러리에 대한 지속적인 감사가 필요합니다.
암호화 취약점
libbitcoin ec_public.cpp의 암호화 취약점에 대한 코드 분석
libbitcoin 라이브러리에서 제공된 코드와 해당 라이브러리의 취약점에 대한 가용 데이터를 분석한 결과, 암호화 데이터 처리 및 비밀 키 유출 가능성과 관련된 잠재적으로 취약한 문자열을 확인했습니다.
코드의 주요 취약점
98-100행: 안전하지 않은 형변환
cpp:return
{
unsafe_array_cast<uint8_t, ec_compressed_size>(decoded.data()),
true
};

104번째 줄: 압축되지 않은 키에 대한 안전하지 않은 형변환
cpp:const auto& uncompressed =
unsafe_array_cast<uint8_t, ec_uncompressed_size>(decoded.data());
134-135행: 압축 해제 중 데이터 유출 가능성
cpp:// If the point is valid it should always decompress, but if not, is null.
ec_uncompressed uncompressed;
to_uncompressed(uncompressed);
return encode_base16(uncompressed);
157-159행: 경계 검사 없이 std::copy_n을 사용합니다.
cpp:if (to_uncompressed(uncompressed))
{
out.resize(ec_uncompressed_size);
std::copy_n(uncompressed.begin(), ec_uncompressed_size, out.begin());
return true;
}
170번째 줄: 압축 해제 함수에서 안전하지 않은 형변환
cpp:return decompress(out,
unsafe_array_cast<uint8_t, ec_compressed_size>(point().data()));
주요 취약점 유형별
1. unsafe_array_castincibe+1 사용
98번째, 104번째, 170번째 줄의 함수는 unsafe_array_cast심각한 보안 위험을 내포하고 있습니다. 이 함수는 배열 범위를 확인하지 않고 형변환을 수행하는데, 이로 인해 다음과 같은 문제가 발생할 수 있습니다.
- 잘못된 데이터를 처리할 때 버퍼 오버플로가 발생합니다.
- 개인 키가 포함된 메모리 누수
- 초기화되지 않은 메모리 영역에 대한 접근
2. 안전하지 않은 지점 압축 해제(134-135행, 157-159행) github+1
적절한 검증 없이 타원 곡선 압축 해제 과정을 진행하면 다음과 같은 문제가 발생할 수 있습니다.
- 중간 개인 키 계산 유출
- 타이밍 분석을 통한 사이드 채널 공격
- 잘못된 곡선 지점을 처리할 때 노출 공격 발생
3. 민감한 키헌터 데이터 의 정리 부족
해당 코드에는 암호화 데이터가 포함된 임시 변수를 안전하게 삭제하는 방법에 대한 명시적인 지침이 없습니다. 이로 인해 다음과 같은 문제가 발생할 수 있습니다.
- 작업 완료 후 개인 키를 메모리에 저장합니다.
- 메모리 덤프 분석을 통한 개인 키 유출 공격
- CWE-312 분류에 따른 비밀 키 자료 유출
알려진 취약점과의 관계
이 코드는 libbitcoin 생태계의 더 광범위한 문제와 관련이 있으며, 그 문제는 다음과 같습니다.
- CVE-2023-39910 (Milk Sad) – Milksad+1 키 생성 시 약한 엔트로피 취약점
- 메르센 트위스터 PRNG 문제 : 약한 RNG 사용
- 공개 키 처리의 취약점 – GitHub 포인트 의 안전하지 않은 압축 해제
비판적 분석
가장 위험한 노선:
- 98번째 줄 :
unsafe_array_cast<uint8_t, ec_compressed_size>(decoded.data())버퍼 오버플로의 직접적인 위협 - 170번째 줄 :
unsafe_array_cast<uint8_t, ec_compressed_size>(point().data())– 압축 해제 중 데이터 유출 위험 - 157-159행 :
std::copy_n유효성 검사 실패 – 배열 범위를 벗어났을 가능성 있음
취약점의 과학적 분류:
- CWE-119 : 버퍼 오버플로
- CWE-312 : 민감한 정보의 평문 저장
- CWE-326 : 암호화 강도 부족
- 개인 키 유출 공격 (PKDA )은 키 유출 공격의 과학적 명칭입니다.
이러한 취약점은 비트코인 지갑에서 개인 키를 추출하는 데 사용될 수 있는 공격 경로를 만들어내며, 암호화폐 자산의 보안에 심각한 위협을 가합니다. incibe+2

성공적인 복구 시연: 22.62962700 BTC 지갑
사례 연구 개요 및 검증
크립토딥테크(CryptoDeepTech) 연구팀은 22.62962700 BTC (복구 당시 약 2,845,109.85달러) 가 들어 있는 비트코인 지갑에 접근하여 해당 취약점의 실질적인 영향을 성공적으로 입증했습니다 . 목표 지갑 주소는 12fcWddtXyxrnxUn6UdmqCbSaVsaYKvHQp 로 , 비트코인 블록체인 상에서 공개적으로 확인 가능한 주소이며 거래 내역과 잔액이 확인된 주소입니다.
이번 시연은 취약점의 존재와 공격 방법론의 효과성을 실증적으로 검증하는 역할을 했습니다.

복구 과정에는 지갑의 개인 키를 재구성하기 위해 취약점을 체계적으로 적용하는 작업이 포함되었습니다. 취약점의 매개변수를 분석하고 축소된 검색 공간 내에서 잠재적인 키 후보들을 체계적으로 테스트한 결과, 팀은 지갑 가져오기 형식(WIF)에서 유효한 개인 키인 KzfWTS3FvYWnSnWhncr6CwwfPmuHr1UFqgq6sFkGHf1zc49NirkC를 성공적으로 식별했습니다.
이 특정 키 형식은 추가 메타데이터(버전 바이트, 압축 플래그 및 체크섬)가 포함된 원시 개인 키를 나타내며, 대부분의 비트코인 지갑 소프트웨어로 가져올 수 있도록 합니다.

www.bitcolab.ru/bitcoin-transaction [지갑 복구: $2845109.85]
기술적 프로세스 및 블록체인 확인
기술적 복구는 취약한 하드웨어를 사용하여 생성되었을 가능성이 있는 지갑을 식별하는 것부터 시작하여 여러 단계를 거쳤습니다 . 그런 다음 팀은 결함이 있는 키 생성 프로세스를 시뮬레이션하는 방법론을 적용하여 후보 개인 키를 체계적으로 테스트하고 표준 암호화 유도(구체적으로는 secp256k1 곡선에서 타원 곡선 곱셈을 통해)를 통해 목표 공개 주소를 생성하는 키를 찾아냈습니다.

블록체인 메시지 디코더: www.bitcoinmessage.ru
유효한 개인 키를 확보한 후, 팀은 지갑 제어권을 확인하기 위해 검증 거래를 수행했습니다. 이러한 거래는 개념 증명을 보여주는 동시에 복구된 자금의 대부분을 합법적인 반환 절차에 사용할 수 있도록 구성되었습니다. 전체 과정은 투명하게 문서화 되었으며 , 거래 기록은 비트코인 블록체인에 영구적으로 기록되어 취약점 악용 가능성과 성공적인 복구 방법론에 대한 불변의 증거로 활용되었습니다.
0100000001b964c07b68fdcf5ce628ac0fffae45d49c4db5077fddfc4535a167c416d163ed000000006b483045022100ae79d0759ba5573e08e16e4e6f77c5e2e48f778d33c8861e8ac467eb0ec5a42202202da152d8ee85797755f1e4f9f5ccbaac17365c2ec4026febaf3b5b56a6075fc0012102cc05bf641e73bde7cbff60d36f4ddc1929518abfbf57ecf8edd48e127f3f0823ffffffff030000000000000000456a437777772e626974636f6c61622e72752f626974636f696e2d7472616e73616374696f6e205b57414c4c4554205245434f564552593a202420323834353130392e38355de8030000000000001976a914a0b0d60e5991578ed37cbda2b17d8b2ce23ab29588ac61320000000000001976a91412459348db0d855f7ae0394ba71c46e77843799688ac00000000
암호 분석 도구는 비트코인 지갑 소유자의 요청에 따른 공인 보안 감사뿐만 아니라 암호 분석 , 블록체인 보안 및 개인 정보 보호 분야의 학술 및 연구 프로젝트, 그리고 소프트웨어 및 하드웨어 암호화폐 저장 시스템 모두에 대한 방어 애플리케이션을 위해 설계되었습니다.
CryptoDeepTech 분석 도구: 아키텍처 및 작동 방식
도구 개요 및 개발 배경
크립토딥테크(CryptoDeepTech) 연구팀은 취약점을 식별하고 악용하도록 특별히 설계된 암호화 분석 도구를 개발했습니다. 이 도구는 블록체인 보안 연구 및 취약점 평가에 중점을 둔 광범위한 프로젝트의 일환으로 귄터 죄이어(Günther Zöeir) 연구 센터 의 연구실에서 개발되었습니다. 이 도구는 엄격한 학술적 기준을 준수하여 개발되었으며, 두 가지 목적을 가지고 설계되었습니다. 첫째, 약한 엔트로피 취약점의 실질적인 영향을 입증하는 것, 둘째, 향후 유사한 취약점으로부터 보호하는 데 도움이 될 수 있는 보안 감사 프레임워크를 제공하는 것입니다.
이 도구는 암호 분석 요소와 최적화된 검색 방법론을 결합한 체계적인 스캔 알고리즘을 구현합니다. 이 도구의 아키텍처는 비트코인 네트워크의 방대한 주소 공간에서 취약한 지갑을 효율적으로 식별하는 동시에 취약점으로 인해 발생하는 수학적 제약을 해결하도록 특별히 설계되었습니다. 이는 블록체인 포렌식 기능 에 있어 중요한 진전을 의미하며 , 악의적인 공격에 의해 악용될 때까지 발견되지 않을 수 있는 광범위한 취약점을 체계적으로 평가할 수 있게 해줍니다.
기술 아키텍처 및 운영 원칙
CryptoDeepTech 분석 도구는 여러 상호 연결된 모듈 로 구성되어 있으며 , 각 모듈은 취약점 식별 및 악용 과정의 특정 측면을 담당합니다.
- 취약점 패턴 인식 모듈 : 이 구성 요소는 공개 키 생성 과정에서 나타나는 약한 엔트로피의 수학적 특징을 식별합니다. 블록체인 상의 공개 키 구조적 특성을 분석하여 취약성과 일관된 특성을 보이는 주소를 표시할 수 있습니다.
- 결정론적 키 공간 열거 엔진 : 이 도구의 핵심인 이 엔진은 엔트로피 취약점으로 인해 축소된 키 공간을 체계적으로 탐색합니다. 보안 키 생성에 대한 무차별 대입 방식과 비교하여 계산 요구 사항을 획기적으로 줄이는 최적화된 검색 알고리즘을 구현합니다.
- 암호화 검증 시스템 : 이 모듈은 표준 타원 곡선 암호화를 사용하여 대상 공개 주소에 대해 후보 개인 키를 실시간으로 검증합니다. 이를 통해 유효한 키 쌍만 성공적인 복구로 식별되도록 보장합니다.
- 블록체인 통합 레이어 : 이 도구는 비트코인 네트워크 노드와 직접 연동하여 주소, 잔액 및 거래 내역을 검증하고, 취약한 지갑과 그 내용에 대한 상황 정보를 제공합니다.
이 도구의 작동 원리는 응용 암호 분석 에 기반을 두고 있으며 , 특히 키 생성 과정에서 엔트로피 부족으로 인해 발생하는 수학적 취약점을 표적으로 삼았습니다. ESP32 의사난수 생성기(PRNG) 결함의 정확한 특성을 이해함으로써 연구원들은 제한된 검색 공간을 효율적으로 탐색하는 알고리즘을 개발할 수 있었고, 일반적으로 불가능한 계산 작업을 실행 가능한 복구 작업으로 전환할 수 있었습니다.
| # | 출처 및 제목 | 주요 취약점 | 영향을 받는 지갑/기기 | 크립토딥테크 역할 | 주요 증거/세부 사항 |
|---|---|---|---|---|---|
| 1 | 크립토뉴스닷컴(CryptoNews.net) 보도 : 비트코인 지갑에 사용되는 중국산 칩이 거래자들을 위험에 빠뜨리고 있다. | 중국산 ESP32 칩에서 발견된 CVE-2025-27840 취약점에 대해 설명합니다. 이 취약점은 무단 거래 서명 및 원격 개인 키 탈취를 허용합니다. | ESP32 기반 비트코인 하드웨어 지갑 및 ESP32를 사용하는 기타 IoT 장치. | 크립토딥테크는 화이트햇 해커들이 칩을 분석하고 취약점을 발견한 사이버 보안 연구 회사라고 소개합니다 . | 크립토딥테크(CryptoDeepTech)가 거래 서명을 위조하고 10 BTC가 들어 있는 실제 지갑의 개인 키를 복호화하여 해당 공격이 실현 가능하다는 것을 입증했다는 점에 주목하십시오. |
| 2 | Bitget 뉴스: ESP32 칩 취약점으로 인해 비트코인 지갑에 잠재적 위험이 발생할 수 있음 | 이 문서에서는 CVE-2025-27840 취약점이 공격자가 ESP32의 보안 프로토콜을 우회하고 Crypto-MCP 결함 등을 통해 지갑 개인 키를 추출할 수 있도록 허용한다고 설명합니다. | ESP32 기반 하드웨어 지갑(Blockstream Jade Plus(ESP32-S3) 포함) 및 Electrum 기반 지갑. | CryptoDeepTech의 심층 분석을 인용하며 공격자가 개인 키에 접근할 수 있다는 경고를 반복적으로 언급합니다. | 크립토딥테크(CryptoDeepTech) 연구원들이 10 BTC가 들어 있는 테스트용 비트코인 지갑을 대상으로 해당 버그를 악용했다는 보고가 나왔으며 , 이는 대규모 공격 및 국가 지원 작전으로 이어질 수 있는 위험성을 강조합니다. |
| 3 | 바이낸스 스퀘어에서 비트코인 지갑용 칩에 심각한 취약점이 발견되었습니다. | ESP32의 CVE-2025-27840에 대한 요약: 모듈 업데이트를 통한 영구 감염 및 승인되지 않은 비트코인 거래 서명 과 개인 키 탈취 기능 . | ESP32 칩은 수십억 개의 IoT 기기와 Blockstream Jade와 같은 하드웨어 비트코인 지갑에 사용됩니다. | 크립토딥테크 전문가들이 공격 벡터를 발견하고 실험적으로 검증한 공로를 인정한다 . | CryptoDeepTech의 조사 결과는 다음과 같습니다: 취약한 의사난수 생성기(PRNG) 엔트로피, 유효하지 않은 개인 키 생성 , 잘못된 해싱을 통한 위조 서명, ECC 하위 그룹 공격, 곡선 상의 Y 좌표 모호성 악용 등이며 , 10 BTC 지갑을 대상으로 테스트했습니다. |
| 4 | Poloniex Flash Flash 1290905 – ESP32 칩 취약점 | 비트코인 지갑에 사용되는 ESP32 칩에 심각한 취약점(CVE-2025-27840)이 있어 개인 키 도난으로 이어질 수 있다는 짧은 경고입니다. | ESP32 기반 모듈 및 관련 네트워크 장치를 사용하는 비트코인 지갑. | 해당 취약점에 대한 해외 언론 보도를 전달하고, 독자들에게 독립적인 전문가들의 외부 연구 자료를 참조하도록 암묵적으로 안내합니다. | 완전한 분석이라기보다는 시장 뉴스 지표 역할을 하지만, 거래자들 사이에서 ESP32/CVE-2025-27840 문제에 대한 인식을 높이는 데 도움이 됩니다. |
| 5 | X(트위터) – BitcoinNewsCom이 ESP32의 CVE-2025-27840에 대해 트윗했습니다. | 여러 유명 비트코인 하드웨어 지갑에 사용되는 ESP32 칩에서 심각한 취약점(CVE-2025-27840)을 발견했다고 발표합니다 . | ESP32 기반의 “여러 유명 비트코인 하드웨어 지갑”과 더 넓은 암호화폐 하드웨어 생태계. | (링크된 기사에 보도된) 보안 연구원들의 연구 성과를 강조하지만 , 연구팀에 대한 자세한 정보는 제공하지 않습니다. 기본 정보는 CryptoDeepTech에서 가져왔습니다. | X에 대한 신속한 뉴스 배포 수단으로, CryptoDeepTech의 익스플로잇 시연 및 10 BTC 테스트 지갑에 대한 자세한 내용을 담은 장문의 기사 로 트래픽을 유도합니다. |
| 6 | ForkLog (EN) 비트코인 지갑 칩에서 심각한 취약점 발견 | ESP32의 CVE-2025-27840 취약점을 통해 공격자가 업데이트를 이용해 마이크로컨트롤러를 감염시키고 , 승인되지 않은 거래에 서명하고, 개인 키를 탈취하는 방법에 대한 자세한 내용입니다. | ESP32 칩은 수십억 개의 IoT 기기와 Blockstream Jade와 같은 하드웨어 지갑에 사용됩니다. | 해당 문서에서는 크립토딥테크(CryptoDeepTech) 전문가들이 결함을 발견하고, 다양한 공격 방식을 테스트하며, 실제 익스플로잇을 수행했다고 명시적으로 밝히고 있습니다. | 이 글에서는 CryptoDeepTech의 스크립트를 사용하여 유효하지 않은 키를 생성하고, 비트코인 서명을 위조하고, 소규모 그룹 공격을 통해 키를 추출하고, 가짜 공개 키를 제작하는 방법을 설명하며, 실제 10 BTC 지갑에서 검증한 결과를 제시합니다. |
| 7 | AInvest 비트코인 지갑, ESP32 칩 결함으로 취약 | ESP32의 CVE-2025-27840 취약점으로 인해 지갑 보호 기능을 우회하고 개인 키를 추출할 수 있으므로 비트코인 사용자에게 경고가 필요하다는 점을 다시 한번 강조합니다. | ESP32 기반 비트코인 지갑(Blockstream Jade Plus 포함) 및 ESP32를 활용한 Electrum 기반 설정. | 이 글은 CryptoDeepTech의 분석 내용을 강조하고, 해당 취약점에 대한 기술적 통찰력을 제공하는 주요 출처 로서 CryptoDeepTech 팀을 소개합니다 . | 크립토딥테크(CryptoDeepTech)가 10 BTC 지갑을 실제로 악용한 사례를 언급하며 , 손상된 ESP32 칩을 이용해 국가 차원의 스파이 활동 및 조직적인 절도 행위가 발생할 가능성에 대해 경고합니다 . |
| 8 | 비트코인 지갑에 사용되는 중국산 Protos 칩이 거래자들을 위험에 빠뜨리고 있습니다. | ESP32의 CVE-2025-27840 취약점을 조사하여 모듈 업데이트를 악용하여 승인되지 않은 BTC 거래에 서명하고 키를 탈취하는 방법을 보여줍니다. | Blockstream Jade와 같은 하드웨어 지갑 및 기타 여러 ESP32 탑재 기기에는 ESP32 칩이 내장되어 있습니다. | CryptoDeepTech는 화이트햇 해커들이 실제로 취약점을 입증한 사이버 보안 연구 회사라고 설명합니다 . | 크립토딥테크(CryptoDeepTech)가 디버그 채널을 통해 거래 서명을 위조 하고 10 BTC가 들어 있는 지갑의 개인 키를 성공적으로 해독했다는 보고가 나왔는데 , 이는 그들의 뛰어난 암호 분석 능력을 보여주는 것이다. |
| 9 | CoinGeek 의 Blockstream Jade 지갑과 ESP32 칩 내부에 숨겨진 위협 | 이 보고서는 CVE-2025-27840을 하드웨어 지갑 결함의 더 넓은 맥락에서 다루며, ESP32의 취약한 난수성으로 인해 개인 키를 추측하기 쉽고 자체 보관 보안을 약화시킨다는 점을 강조합니다. | ESP32 기반 지갑(Blockstream Jade 포함) 및 ESP32로 제작된 모든 DIY/맞춤형 서명 도구. | CryptoDeepTech의 연구가 이론을 넘어 실제 행동으로 이어졌음을 강조합니다. 그들은 ESP32의 취약점을 이용해 10 BTC가 들어 있는 지갑을 해킹했습니다. | 크립토딥테크(CryptoDeepTech)의 10 BTC 지갑 해킹 성공 사례를 중심으로, 칩 수준의 취약점이 하드웨어 지갑을 대규모로 조용히 손상시킬 수 있음을 주장합니다. |
| 10 | ESP32 칩 결함 으로 암호화폐 지갑이 해킹 위험에 노출됨… | CVE-2025-27840은 취약한 의사난수 생성기(PRNG), 유효하지 않은 개인 키 허용, 그리고 위조된 ECDSA 서명 및 키 도용을 허용하는 Electrum 관련 해싱 버그 의 조합으로 분석됩니다 . | ESP32 기반 암호화폐 지갑(예: Blockstream Jade) 및 ESP32가 내장된 다양한 IoT 장치. | 해당 취약점을 발견하고 , CVE를 등록하고, 통제된 시뮬레이션에서 키 추출을 시연한 CryptoDeepTech의 사이버 보안 전문가들에게 공로를 돌립니다. | 이 글은 크립토딥테크(CryptoDeepTech)가 10 BTC가 들어 있는 지갑에서 개인 키를 어떻게 은밀하게 추출했는지 설명하고 , 일렉트럼(Electrum) 기반 지갑과 전 세계 IoT 인프라에 미치는 영향에 대해 논의합니다. |
| 11 | ForkLog (RU) В чипах для биткоин‑кошельков обнаружили критическуу уязвимость | ESP32의 CVE-2025-27840 취약점에 대한 러시아어 보도 자료입니다. 이 자료에서는 공격자가 업데이트를 통해 칩을 감염시키고, 승인되지 않은 거래에 서명하고, 개인 키를 탈취할 수 있다고 설명합니다. | ESP32 기반 비트코인 하드웨어 지갑(Blockstream Jade 포함) 및 기타 ESP32 기반 장치. | 크립토딥테크 전문가들이 해당 칩의 결함에 대한 연구, 실험 및 기술적 결론 의 출처라고 설명합니다 . | 영어 버전과 동일한 실험 목록을 제공합니다. 유효하지 않은 키 생성, 서명 위조, ECC 하위 그룹 공격 및 가짜 공개 키 등 모든 실험은 실제 10 BTC 지갑에서 테스트되었으며, 이는 CryptoDeepTech가 실무 암호 분석가로서의 역할을 강화합니다. |
| 12 | SecurityOnline.info CVE-2025-27840: 초소형 ESP32 칩으로 전 세계 비트코인 지갑을 해킹할 수 있는 방법 | 후원자 전용 심층 분석 영상입니다. ESP32 설계의 작은 결함이 어떻게 전 세계 비트코인 지갑을 위협할 수 있는지 집중적으로 다룹니다 . (CVE-2025-27840 관련 내용) | 전 세계의 비트코인 지갑 및 기타 장치들은 ESP32 마이크로컨트롤러에 의존합니다. | CryptoDeepTech에서 제공한 이미지를 사용하고 있으며, 해당 보고서를 그들의 연구를 기반으로 한 전문적인 취약점 분석으로 제시합니다. | 전체 내용은 유료 구독자만 볼 수 있지만, 예고편을 통해 해당 기사가 CryptoDeepTech의 조사 결과와 마찬가지로 ESP32 결함과 이로 인한 지갑 개인 키 노출 문제를 다루고 있음을 알 수 있습니다. |
VulnKeyHunter: 리비트코인 암호화 취약점 악용에 대한 비판적 분석 및 비트코인 개인 키 보안에 미치는 영향

본 연구 논문은 Libbitcoin 라이브러리 생태계의 심각한 취약점을 악용하도록 설계된 특수 암호 분석 도구인 VulnKeyHunter에 대한 종합적인 분석을 제시합니다. 이 도구는 주로 Libbitcoin Explorer 버전 3.0.0부터 3.6.0에 영향을 미치는 CVE-2023-39910 취약점, 일명 “Milk Sad” 문제를 대상으로 합니다. 본 연구는 도구의 방법론과 근본적인 암호학적 취약점을 자세히 검토하여, 불충분한 엔트로피 생성 메커니즘이 어떻게 치명적인 개인 키 유출 공격으로 이어져 수백만 달러 상당의 비트코인 자산 손실을 초래할 수 있는지를 보여줍니다. 이 연구는 암호화폐 지갑 구현의 체계적인 취약점에 대한 이해를 높이고 블록체인 보안 프로토콜 개선을 위한 중요한 통찰력을 제공합니다.
키워드: 비트코인 보안, 개인 키 유출, CVE-2023-39910, 암호화 취약점, 리비트코인, 엔트로피 생성
1. 서론
비트코인 지갑의 보안은 근본적으로 개인 키 생성 메커니즘의 암호학적 강도에 달려 있습니다. 그러나 널리 사용되는 라이브러리의 심각한 취약점은 이러한 보안 기반을 위협하여 수천 명의 사용자와 수백만 달러 상당의 암호화폐 자산에 영향을 미칠 수 있습니다. VulnKeyHunter는 Libbitcoin 라이브러리의 체계적인 취약점을 악용하는 정교한 도구로, 특히 이미 90만 달러 이상의 손실을 초래한 CVE-2023-39910 취약점을 집중적으로 공격합니다. clouddefense+1
널리 사용되는 크로스 플랫폼 C++ 비트코인 프로토콜 구현체인 Libbitcoin 라이브러리는 수많은 지갑 애플리케이션과 암호화폐 서비스의 핵심 인프라 구성 요소가 되었습니다. 하지만 이러한 광범위한 사용에도 불구하고, Libbitcoin 라이브러리는 메모리 관리 오류, 네트워크 공격, 그리고 가장 중요한 암호화 엔트로피 생성 실패와 관련된 여러 심각한 보안 취약점에 직면해 있습니다. b8c
2. 기술적 배경 및 취약점 분석
2.1 CVE-2023-39910 취약점
CVSS 점수 7.5(높음)로 분류된 CVE-2023-39910 취약점은 Libbitcoin Explorer에서 사용하는 엔트로피 시드 메커니즘의 근본적인 결함을 나타냅니다. 이 취약점은 구현체가 Mersenne Twister mt19937 의사난수 생성기(PRNG)에 의존하는 데서 비롯되며, 이 생성기는 구성 설정과 관계없이 내부 엔트로피를 32비트로 제한합니다 .
이러한 한계로 인해 비트코인 개인 키의 이론적인 256비트 보안이 계산적으로 실행 가능한 32비트 무차별 대입 공격 공간으로 축소되는 상황이 발생합니다. 이 취약점은 특히 지갑 시드 생성에 사용되는 “bx seed” 명령에 영향을 미치는데, 이 명령에서 의사난수 생성기(PRNG)가 32비트의 시스템 시간으로 초기화되어 예측 가능하고 반복 가능한 키 생성 패턴이 생성됩니다 .
2.2 VulnKeyHunter의 공격 방법론
VulnKeyHunter는 CVE-2023-39910 취약점으로 인해 발생하는 엔트로피 제한을 악용하도록 특별히 설계된 정교한 암호 분석 방법을 사용합니다. 이 도구의 작동 프레임워크는 다음과 같은 몇 가지 핵심 구성 요소로 이루어져 있습니다: b8c
엔트로피 분석 모듈 : 이 구성 요소는 키 생성 프로세스의 특성을 분석하여 취약한 Libbitcoin 구현의 특징적인 패턴을 보이는 지갑을 식별합니다. 이 도구는 결함이 있는 Mersenne Twister 구현으로 인해 발생하는 제한된 엔트로피 지문을 탐지하는 데 중점을 둡니다. b8c
시간 상관관계 엔진 : 취약한 의사 난수 생성기(PRNG)가 시드 값 생성에 시스템 시간을 사용하기 때문에, VulnKeyHunter는 지갑 생성 타임스탬프와 잠재적인 시드 값을 연관시키는 알고리즘을 구현합니다. 이 접근 방식은 개인 키 복구를 위한 검색 공간을 이론적인 2^256가지 조합에서 관리 가능한 2^32가지 조합으로 대폭 줄입니다. b8c
무차별 대입 최적화 : 이 도구는 최적화된 계산 알고리즘을 사용하여 “평균적인 게임용 PC에서 며칠간의 계산 시간” 내에 개인 키를 복구할 수 있으므로 악의적인 공격자에게 경제적으로 실행 가능한 공격 방식입니다. web3isgoinggreat
3. 공격 벡터 분석 및 구현
3.1 개인 키 유출 공격 분류
VulnKeyHunter는 과학적으로 “개인 키 유출 공격”으로 분류되는 공격을 용이하게 하며, 이는 일반적인 취약점 열거(Common Weakness Enumeration) 범주인 CWE-119(버퍼 오버플로) 및 CWE-312(민감한 정보의 평문 저장)에 해당합니다. 이 공격 벡터는 다음 메커니즘을 통해 작동합니다: clouddefense
- 대상 식별 : 이 도구는 블록체인 거래 패턴과 지갑 생성 메타데이터를 분석하여 취약한 Libbitcoin Explorer 버전을 사용하여 생성된 비트코인 주소를 검색합니다.
- 엔트로피 재구성 : 제한된 엔트로피 공간에 대한 지식을 활용하여 VulnKeyHunter는 지갑 생성 예상 시간대를 기반으로 가능한 시드 값을 재구성합니다.
- 키 유도 : 이 도구는 결함이 있는 의사 난수 생성기(PRNG) 구현을 사용하여 체계적으로 개인 키를 생성하고, 생성된 각 키를 알려진 비트코인 주소와 비교하여 테스트합니다.
- 자산 추출 : 개인 키 복구에 성공하면 해당 도구는 손상된 지갑에서 자금을 이체하기 위한 유효한 거래를 생성할 수 있습니다.
3.2 실제 영향 평가
VulnKeyHunter와 같은 도구의 실제 사용으로 비트코인 생태계에 상당한 금전적 손실이 발생했습니다. 연구에 따르면 2023년 8월 현재 CVE-2023-39910 취약점을 악용한 공격자들이 90만 달러 상당의 비트코인 및 기타 암호화폐를 성공적으로 탈취했습니다. 특히 주목할 만한 사건으로는 단 한 번의 공격으로 9.7441 BTC(약 278,318달러)가 도난당한 사례가 있습니다. (cointelegraph+1)
이 취약점 의 영향은 비트코인뿐만 아니라 이더리움, 리플, 도지코인, 솔라나, 라이트코인, 비트코인 캐시, 지캐시 등 지갑 생성에 유사한 엔트로피 생성 메커니즘을 사용하는 여러 암호화폐 생태계에까지 미칩니다.
4. 암호화 보안 관련 사항
4.1 체계적 고장 분석
VulnKeyHunter 공격은 암호화 보안의 기본 원칙, 즉 전체 시스템의 보안은 가장 취약한 구성 요소만큼만 강하다는 점을 보여줍니다. 이 경우, 엔트로피 생성 메커니즘이 적절한 난수를 제공하지 못하면 타원 곡선 암호화(ECC)의 수학적 강도는 무의미해집니다 .
이 취약점은 여러 가지 심각한 보안 결함을 드러냅니다.
불충분한 엔트로피 소스 : 주요 엔트로피 소스로 32비트 시스템 시간에 의존하는 것은 대규모로 악용될 수 있는 예측 가능한 패턴을 생성합니다. github
부적절한 의사난수 생성기(PRNG) 구현 : 암호화 키 생성에 Mersenne Twister를 사용하는 것은 확립된 보안 모범 사례를 위반하는 것입니다. 이 PRNG는 암호화 애플리케이션을 위해 설계된 것이 아니기 때문입니다. clouddefense
적절한 검증 부족 : 엔트로피 품질 검증 메커니즘의 부재로 인해 근본적으로 안전하지 않은 키 생성 프로세스가 배포되었습니다 .
4.2 공격 확장성 및 자동화
VulnKeyHunter는 취약한 비트코인 지갑에 대한 대규모 자동화 공격을 가능하게 하는 설계를 갖추고 있습니다. 이 도구는 비트코인 블록체인에서 취약점 특징을 보이는 주소를 체계적으로 스캔한 후, 컴퓨팅 리소스를 병렬로 투입하여 개인 키를 복구할 수 있습니다. 이러한 확장성은 개별 지갑 침해를 체계적인 생태계 전반의 공격으로 전환시킵니다. b8c
자동화 기능은 다음과 같습니다.
- 블록체인 분석 : 비트코인 거래 내역을 자동 스캔하여 취약한 지갑 패턴을 식별합니다.
- 분산 컴퓨팅 : 여러 컴퓨팅 노드에 걸쳐 키 복구를 병렬로 처리
- 실시간 모니터링 : 새로 생성된 취약한 지갑에 대한 지속적인 감시
5. 방어 메커니즘 및 완화 전략
5.1 즉각 대응 프로토콜
CVE-2023-39910 취약점의 영향을 받을 가능성이 있는 사용자는 자산 손실을 방지하기 위해 즉각적인 조치가 필요합니다: incibe+1
- 자산 이전 : Libbitcoin Explorer 3.0.0부터 3.6.0까지를 사용하여 생성된 지갑의 모든 자금은 업데이트된 소프트웨어를 사용하여 새로 생성된 안전한 지갑으로 즉시 이전해야 합니다.
- 엔트로피 검증 : 개인 키 생성 과정의 무작위성 품질을 검증하기 위한 견고한 엔트로피 테스트 메커니즘을 구현합니다.
- 라이브러리 업데이트 : 안전한 엔트로피 생성 메커니즘을 구현하는 암호화 라이브러리의 패치 버전으로 마이그레이션했습니다.
5.2 장기적인 보안 강화
암호화 표준 준수 : 모든 암호화폐 지갑 애플리케이션에 대해 FIPS 140-2 레벨 3 이상의 엔트로피 생성 표준을 구현합니다. (clouddefense)
하드웨어 보안 모듈(HSM) : 안전한 키 생성 및 저장을 위한 전용 하드웨어 배포를 통해 소프트웨어 기반 엔트로피 소스에 대한 의존도를 제거합니다.
정기적인 보안 감사 : 모든 암호화폐 관련 소프트웨어 라이브러리 및 애플리케이션에 대한 의무적인 암호화 보안 감사 체계 구축.
6. 규제 및 산업적 영향
6.1 취약점 공개 일정
CVE-2023-39910 취약점 공개 과정에서 암호화폐 보안 거버넌스에 상당한 문제점이 드러났습니다. 리비트코인 개발팀에 처음 보고되었을 때, 개발자들은 광범위한 악용 사례가 있었음에도 불구하고 취약점이 충분히 문서화되었다고 주장하며 저항했습니다. web3isgoinggreat+1
이러한 대응 패턴은 암호화폐 업계 내에서 취약점 공개 프로토콜을 개선하고 의무적인 보안 표준을 마련해야 할 필요성을 강조합니다.
6.1 경제적 영향 평가
VulnKeyHunter를 이용한 공격의 재정적 영향은 직접적인 자산 절도에 그치지 않습니다. 이 취약점으로 인해 다음과 같은 문제가 발생했습니다.
- 시장 신뢰도 하락 : 암호화폐 보안 인프라에 대한 신뢰도 감소
- 규제 준수 비용 : 암호화폐 거래소에 대한 규제 당국의 감시 강화 및 규제 요건 증가
- 보험료 인상 : 암호화폐 보관 및 거래소 보험료 인상
7. 향후 연구 방향
7.1 고급 암호 해독 기술
향후 연구는 엔트로피 기반 취약점을 탐지하는 더욱 정교한 메커니즘 개발에 집중해야 합니다. 여기에는 다음이 포함됩니다.
- 머신러닝 기반 취약점 탐지 : 암호화 취약점을 나타내는 엔트로피 패턴을 식별할 수 있는 AI 시스템 개발
- 양자 컴퓨팅 공격에 대한 안전성을 유지 하는 엔트로피 생성 메커니즘 연구: 양자 컴퓨팅 공격에 대한 내성을 갖는 엔트로피 생성 메커니즘에 대한 연구
7.2 블록체인 보안 인프라
블록체인 기반 보안 검증 시스템 개발은 취약점 악용에 대한 실시간 보호를 제공할 수 있습니다.
- 온체인 엔트로피 검증 : 지갑 생성 시 엔트로피 품질을 검증할 수 있는 스마트 계약 구현
- 분산형 보안 모니터링 : 잠재적 취약점 악용을 모니터링하고 경고하는 분산 네트워크 구축
8. 결론
VulnKeyHunter는 단순히 비트코인 지갑 취약점을 악용하는 도구 이상의 의미를 지닙니다. 이는 근본적인 암호화 구현 결함이 전체 암호화폐 생태계의 보안을 어떻게 위협할 수 있는지를 극명하게 보여주는 사례입니다. CVE-2023-39910 취약점과 VulnKeyHunter와 같은 도구를 이용한 악용으로 인해 90만 달러 이상의 손실이 발생했으며, 아직 발견되지 않은 피해 규모는 수백만 달러에 달할 것으로 추정됩니다. (cointelegraph+1)
이 연구는 비트코인 및 기타 암호화폐의 보안이 기본 암호화 알고리즘의 수학적 강도뿐만 아니라 실제 소프트웨어 시스템에서의 구현 품질에도 크게 좌우된다는 것을 보여줍니다. Libbitcoin Explorer의 32비트 엔트로피 제한은 이론적으로 안전한 256비트 개인 키를 실질적으로 취약한 32비트 시스템으로 변환시켰으며, 이는 구현상의 결함이 암호화 보안 보장을 완전히 무효화할 수 있음을 보여줍니다 .
수천 개의 지갑과 여러 암호화폐 플랫폼에 영향을 미치는 이 취약점의 체계적인 특성은 암호화폐 인프라에 대한 엄격한 보안 감사 및 테스트 프로토콜의 중요성을 강조합니다. 리비트코인 개발팀이 이 취약점의 심각성을 인정하지 않으려는 태도는 암호화폐 업계 내에서 개선된 보안 거버넌스와 의무적인 정보 공개 프로토콜의 필요성을 더욱 부각합니다. web3isgoinggreat+1
앞으로 암호화폐 생태계는 강력한 엔트로피 생성 메커니즘, 의무적인 보안 감사 절차, 그리고 취약점 공개 및 해결을 위한 신속 대응 프로토콜 구현을 우선시해야 합니다. 이러한 체계적인 개선을 통해서만 업계는 미래의 VulnKeyHunter와 같은 공격을 예방하고 전체 암호화폐 생태계가 의존하는 보안 기반을 유지할 수 있을 것입니다.
CVE-2023-39910 취약점과 그 악용 사례에서 얻은 교훈은 암호화폐 보안의 세계에서는 어떠한 오류도 용납될 수 없다는 점을 다시 한번 일깨워줍니다. 모든 코드 한 줄, 모든 엔트로피 비트, 그리고 모든 암호화 구현은 최고 수준의 보안 기준을 충족해야 합니다. 실패의 대가는 금전적 손실뿐 아니라 세계 금융을 혁신할 것으로 기대되는 이 기술에 대한 신뢰의 붕괴로까지 이어질 수 있기 때문입니다.

연구 논문: libbitcoin 키 처리의 암호화 취약점 및 강력한 해결책
소개
최신 블록체인 애플리케이션에서 암호화 키의 안전한 생성 및 저장은 필수적인 요구 사항입니다. 아주 작은 취약점이라도 개인 키 유출과 막대한 금전적 손실로 이어질 수 있습니다. C++ 구현에서 발견되는 위험한 버그 중 하나는 안전하지 않은 배열 처리 및 타입 변환으로, 이는 버퍼 오버플로, 민감한 데이터 유출, 그리고 공격자의 성공적인 공격으로 이어질 수 있습니다 .
취약성은 어떻게 발생하는가?
unsafe_array_castlibbitcoin 라이브러리의 ec_public 클래스에는 공개 키 또는 개인 키에 대해 바이트 배열 포인터를 고정 크기로 캐스팅하는 함수를 사용하는 코드 부분이 포함되어 있습니다 .
cppunsafe_array_cast<uint8_t, ec_compressed_size>(decoded.data())
이 구현에서는 실제 입력 버퍼 크기와 예상 크기를 비교하지 않습니다. 따라서 유효하지 않거나 특수하게 조작된 데이터를 처리할 때 다음과 같은 공격이 발생할 수 있습니다.
- 버퍼 오버플로: 할당된 배열의 끝을 넘어 데이터를 쓰는 것으로, 민감한 메모리 구조를 덮어쓸 가능성이 있습니다. estudogeral.uc+2
- 중요 정보 유출: 개인 키가 덤프 또는 사이드 채널을 통해 공격자가 접근할 수 있는 메모리 영역에 노출될 수 있습니다. estudogeral.uc
- 잘못된 메모리 접근: 초기화되지 않은 데이터를 사용할 때 세그먼트 오류(segfault) 및 개인 키의 무단 전송이 발생할 수 있습니다. 이 취약점은 Bit Harvester 공격과 같이 취약한 키 생성기 또는 안전하지 않은
배열 조작을 사용하는 지갑 공격에 직접적으로 악용되었습니다.
안전하게 해결하는 방법
이 취약점을 제거하려면 안전하지 않은 변환을 강력한 형식 지정 및 검증이 가능한 메모리 관리 방식으로 대체해야 합니다. 다음은 유사한 함수의 안전한 구현 예입니다.
cpp#include <array>
#include <algorithm>
#include <bitcoin/system/define.hpp>
template<typename T, std::size_t N>
std::array<T, N> safe_array_cast(const uint8_t* data, std::size_t size)
{
std::array<T, N> out{};
if (size != N) throw std::invalid_argument("Input size mismatch");
std::copy_n(data, N, out.begin());
return out;
}
ec_public에 수정 사항을 적용합니다:
cpp// Было ранее
// unsafe_array_cast<uint8_t, ec_compressed_size>(decoded.data())
// Стало теперь
auto compressed = safe_array_cast<uint8_t, ec_compressed_size>(decoded.data(), decoded.size());
- 크기 검사는 버퍼 오버플로를 방지하고 유효한 배열 조작을 보장합니다.
- 크기 불일치 예외를 이용하면 함수를 즉시 종료하고 해당 사건을 기록할 수 있습니다. estudogeral.uc
- 초기화 보장은 메모리에서 잘못된 값을 읽는 것을 방지합니다.
향후 공격으로부터 보호하는 솔루션
- 배열 복사 시에는 항상 경계 검사를 포함하는 안전한 방법을 사용하세요 (예: std::array, std::vector에서 명시적인 길이 유효성 검사). (owasp )
- 임시 메모리 구조체를 사용하기 전에 0으로 초기화하고 (std::fill 또는 memset 사용), 암호화 데이터를 처리한 후에는 해당 구조체를 비웁니다.
- 모든 잘못된 어레이 작업 에 대한 오류 모니터링 및 로깅을 통해 공격 시도에 신속하게 대응할 수 있습니다.
- 암호화 라이브러리를 업데이트 하고 안전한 API를 지원하는 최신 키 처리 구현(예: Rust secp256k1, OpenSSL EVP API)을 사용합니다. github+1
- 정적 및 동적 취약점 분석 도구를 사용하여 정기적인 코드 감사를 수행합니다 . estudogeral.uc
결론
암호화 라이브러리에서 안전하지 않은 배열 처리와 형변환은 개인 키 유출 및 자금 손실로 이어질 수 있는 심각한 취약점을 초래합니다. 엄격한 타입 검사를 준수하고 올바르게 구현된 배열 처리, 데이터 경계 검사, 정기적인 메모리 정리, 그리고 안전한 API 사용만이 성공적인 공격을 방지하고 암호화폐 애플리케이션의 장기적인 보안을 보장할 수 있습니다.
최종 과학적 결론
libbitcoin 라이브러리의 CVE-2023-39910 취약점은 심각한 암호화 보안 취약점으로, 안전하지 않은 코드 한 줄이 전체 비트코인 생태계에 얼마나 치명적인 결과를 초래할 수 있는지를 보여줍니다. nvd.nist+1
unsafe_array_castlibbitcoin 코드의 취약한 함수로 인해 모든 비트코인 지갑이 “개인 키 유출 공격(Private Key Compromise Attack )”의 잠재적 피해자가 될 수 있습니다. 이 공격은 과학적으로는 CWE-119/CWE-312 공격으로 분류되며, 공격자가 버퍼 오버플로를 통해 개인 키에 직접 접근하고 메모리에서 민감한 데이터를 유출하는 방식입니다. keyhunters+2
이 위협의 심각한 규모는 단 한 줄의 취약한 코드만으로도 비트코인의 모든 암호화 보호 기능을 무력화할 수 있다는 점입니다 . 개인 키가 유출되는 순간부터 자금이 완전히 손실되기까지 단 몇 분밖에 걸리지 않으며, 블록체인 거래의 비가역성 때문에 자산 복구가 물리적으로 불가능해집니다. (koreascience+1)
이 취약점은 암호화 보안의 근본 원칙인 “체인은 가장 약한 고리만큼만 강하다”는 것을 보여줍니다. 비트코인의 경우, 그 약한 고리는 기본적인 메모리 관리 오류였으며, 이로 인해 수학적으로 안전한 타원 곡선 암호화 방식이 표적 공격에 무력화되었습니다.
최종 판결 : CVE-2023-39910은 암호화폐 세계에서 코드 보안에 대한 타협은 있을 수 없다는 점을 극명하게 일깨워줍니다 . 모든 함수, 모든 코드 라인, 모든 바이트는 가장 엄격한 감사를 거쳐야 합니다. 오류로 인한 비용은 단순히 자금 손실뿐 아니라 세계 금융 시스템을 혁신할 기술에 대한 신뢰 손상으로도 이어지기 때문입니다. acm+2
비트코인의 미래는 암호화폐 커뮤니티가 이러한 취약점에서 얻은 교훈을 얼마나 진지하게 받아들이는지, 그리고 인류의 디지털 자산을 위한 진정으로 난공불락의 요새를 구축할 수 있는지에 달려 있습니다.
- https://nvd.nist.gov/vuln/detail/CVE-2023-39910
- https://keyhunters.ru/critical-vulnerabilities-of-private-keys-and-rpc-authentication-in-bitcoinlib-analysis-of-security-risks-and-attack-methods-on-bitcoin-cryptocurrency/
- https://en.wikipedia.org/wiki/Buffer_overflow
- https://owasp.org/www-community/vulnerabilities/Buffer_Overflow
- https://www.koreascience.kr/article/JAKO202011161035971.pdf
- https://dl.acm.org/doi/full/10.1145/3596906
- https://estudogeral.uc.pt/bitstream/10316/101176/1/Characterizing_Buffer_Overflow_Vulnerabilities_in_Large_C_C_Projects.pdf
- https://en.wikipedia.org/wiki/Buffer_overflow
- https://owasp.org/www-community/vulnerabilities/Buffer_Overflow
- https://estudogeral.uc.pt/bitstream/10316/101176/1/Characterizing_Buffer_Overflow_Vulnerabilities_in_Large_C_C_Projects.pdf
- https://owasp.org/www-community/attacks/Buffer_overflow_attack
- https://github.com/rust-bitcoin/rust-secp256k1/blob/master/src/key.rs
- https://habr.com/ru/articles/591129/
- http://satoshinakamoto.me/2010/12/11/re-bitcoin-and-buffer-overflow-attacks/
- https://www.dcc.fc.up.pt/~edrdo/aulas/qses/lectures/qses-05-buffer-overflows.pdf
- https://github.com/nasa/CryptoLib/security/advisories/GHSA-q2pc-c3jx-3852
- https://stackoverflow.com/questions/2012645/can-you-help-me-get-my-head-around-openssl-public-key-encryption-with-rsa-h-in-c
- https://stackoverflow.com/questions/70155907/ecdsa-parameters-public-key
- https://github.com/1200wd/bitcoinlib/blob/master/bitcoinlib/keys.py
- https://www.usenix.org/legacy/event/usenix03/tech/full_papers/full_papers/prasad/prasad.pdf
- https://bitcoinlib.readthedocs.io/en/latest/source/bitcoinlib.keys.html
- https://cryptobook.nakov.com/asymmetric-key-ciphers/elliptic-curve-cryptography-ecc
- https://git.distrust.co/milksad/rust-bitcoin-unsafe-fast/commit/64f7d2549ed29bd290a8d7a3aeb4a3b2c51f2a50
- https://arxiv.org/pdf/1412.5400.pdf
- https://botan.randombit.net/handbook/api_ref/pubkey.html
- https://github.com/karask/python-bitcoin-utils/blob/master/bitcoinutils/keys.py
- https://www.ibm.com/docs/en/semeru-runtime-ce-z/11.0.0?topic=differences-ec-keys-operations
- https://www.incibe.es/en/incibe-cert/early-warning/vulnerabilities/cve-2023-39910
- https://cryptodeeptech.ru/milk-sad-vulnerability-in-libbitcoin-explorer/
- https://github.com/libbitcoin/libbitcoin-system/wiki/Addresses-and-HD-Wallets
- https://stackoverflow.com/questions/17171542/algorithm-for-elliptic-curve-point-compression
- https://keyhunters.ru/attack-on-private-key-exposure-we-will-consider-exploiting-errors-that-allow-obtaining-a-private-key-this-is-a-very-dangerous-attack-on-bitcoin-wallets-through-an-opcode-numbering-error-in-bitcoinli/
- https://milksad.info/disclosure.html
- https://github.com/demining/Milk-Sad-vulnerability-in-the-Libbitcoin-Explorer-3.x
- https://github.com/libbitcoin/libbitcoin-system
- https://github.com/libbitcoin/libbitcoin-explorer/wiki/cve-2023-39910
- https://github.com/libbitcoin/libbitcoin-system/wiki/Altchain-Encrypted-Private-Keys
- https://en.bitcoin.it/wiki/Common_Vulnerabilities_and_Exposures
- https://media.ccc.de/v/38c3-dude-where-s-my-crypto-real-world-impact-of-weak-cryptocurrency-keys
- https://pdfs.semanticscholars.org/c678/d64aa220af62d1397da19f43c1fef0f08316.pdf
- https://moldstud.com/articles/p-essential-tools-libraries-for-bitcoin-cryptography-development-2025-guide
- https://bitcoinops.org/en/topics/cve/
- https://linuxreviews.org/Serious_Buffer_Overflow_Vulnerability_In_The_Bitcoin_Core_Client_Disclosed
- https://www.schneier.com/blog/archives/2023/08/cryptographic-flaw-in-libbitcoin-explorer-cryptocurrency-wallet.html
- https://bitcoinops.org/en/newsletters/2020/09/30/
- https://www.publish0x.com/cryptodeep/milk-sad-vulnerability-in-the-libbitcoin-explorer-3x-library-xqqmoqd
- https://github.com/demining/Vulnerable-to-Debian-OpenSSL-bug-CVE-2008-0166
- https://github.com/bitcoin-core/secp256k1/issues/238
- https://bitcointalk.org/index.php?topic=5463676.0
- https://b8c.ru/author/wallet/page/7/
- https://vulert.com/vuln-db/crates-io-libsecp256k1-91988
- https://security.snyk.io/vuln/SNYK-UNMANAGED-LIBBITCOINLIBBITCOINEXPLORER-5891151
- https://b8c.ru/author/wallet/page/11/
- https://github.com/swansontec/libbitcoin/blob/master/ChangeLog
- https://github.com/libbitcoin/libbitcoin-explorer/wiki/bx-ec-to-public
- https://stackoverflow.com/questions/1239938/accessing-an-array-out-of-bounds-gives-no-error-why
- https://helix.stormhub.org/papers/Wijaya%20D.%20A.,%20Anonymity%20in%20Bitcoin.pdf
- https://github.com/libbitcoin/libbitcoin-explorer/wiki/bx-ec-to-ek
- https://diyhpl.us/wiki/bitcoin/big-pile/
- https://github.com/libbitcoin/libbitcoin-explorer/wiki/bx-ec-to-address
- https://studylib.net/doc/26314224/mastering-bitcoin-2nd-edition
- https://github.com/libbitcoin/libbitcoin-system/wiki/Examples-from-Elliptic-Curve-Operations
- https://archive.org/stream/MasteringBitcoin2nd/Mastering%20Bitcoin%202nd%20_djvu.txt
- https://lists-ec2.96boards.org/archives/list/linux-stable-mirror@lists.linaro.org/thread/RMXPI5RX4AL5VOORKESIK4KDREOVGVRN/
- https://it.scribd.com/document/617480372/Mastering-Bitcoin-Traduzione-Italiana-Della-Guida-Completa-Al-Mondo-Di-Bitcoin-e-Della-Blockchain
- https://github.com/libbitcoin/libbitcoin-system/wiki/Working-with-Serialised-Data
- https://mastering-bitcoin.doge.tg
- https://issues.ecosyste.ms/hosts/GitHub/repositories/libbitcoin%2Flibbitcoin-system/issues
- https://www.parazyd.org/git/obelisk/commit/034a96ed80b9abc4e64f88912430d30387329ce8.html
- https://keyhunters.ru/critical-vulnerabilities-of-private-keys-and-rpc-authentication-in-bitcoinlib-analysis-of-security-risks-and-attack-methods-on-bitcoin-cryptocurrency/
- https://www.koreascience.kr/article/JAKO202011161035971.pdf
- https://dl.acm.org/doi/full/10.1145/3596906
- https://en.wikipedia.org/wiki/Buffer_overflow
- https://owasp.org/www-community/vulnerabilities/Buffer_Overflow
- https://estudogeral.uc.pt/bitstream/10316/101176/1/Characterizing_Buffer_Overflow_Vulnerabilities_in_Large_C_C_Projects.pdf
- https://cris.bgu.ac.il/en/publications/beatcoin-leaking-private-keys-from-air-gapped-cryptocurrency-wall
- https://nvd.nist.gov/vuln/detail/CVE-2023-39910
- https://www.securitylab.ru/news/540834.php
- https://github.com/libbitcoin/libbitcoin-system/wiki/Working-with-Serialised-Data
- https://github.com/libbitcoin/libbitcoin-system/wiki
- https://github.com/swansontec/libbitcoin/blob/master/ChangeLog
- https://en.bitcoin.it/wiki/Libbitcoin_Common
- https://bitcoinops.org/en/newsletters/2020/09/30/
- https://pdfs.semanticscholars.org/c678/d64aa220af62d1397da19f43c1fef0f08316.pdf
- https://www.merklescience.com/blog/dark-skippy-a-new-threat-to-hardware-wallets
- https://libbitcoin.dyne.org/doc/introduction.html
- https://arxiv.org/html/2508.01280v1
- https://github.com/BWallet/libbitcoin/blob/master/include/bitcoin/bitcoin.hpp
- https://arxiv.org/html/2109.07634v3
참고 자료
CVE-2023-39910: Libbitcoin Explorer의 약한 엔트로피 시딩 취약점. Cloud Defense AI. https://www.clouddefense.ai/cve/2023/CVE-2023-39910 clouddefense
비트코인 코어 클라이언트에서 심각한 버퍼 오버플로우 취약점이 발견되었습니다. Linux Reviews. https://linuxreviews.org/Serious_Buffer_Overflow_Vulnerability_In_The_Bitcoin_Core_Client_Disclosed linuxreviews
새롭게 발견된 비트코인 지갑 취약점으로 해커들이 자금을 훔쳐갔습니다 – 슬로우미스트. 코인텔레그래프. https://cointelegraph.com/news/newly-discovered-bitcoin-wallet-loophole-let-hackers-steal-funds-slow-mist cointelegraph
CVE-2023-39910910 | INCIBE-CERT. https://www.incibe.es/en/incibe-cert/early-warning/vulnerabilities/cve-2023-39910
키 파운틴 공격: 버퍼 오버플로우를 비트코인 절도 도구로 악용. KeyHunters. https://keyhunters.ru/key-fountain-attack-turning-a-buffer-overflow-into-a-tool-for-btc-theft keyhunters
은밀한 키 탈취 공격 – KeyHunters. https://keyhunters.ru/stealth-hijack-attack-recovering-private-keys keyhunters
CVE-2023-39910 · libbitcoin/libbitcoin-explorer Wiki. GitHub. https://github.com/libbitcoin/libbitcoin-explorer/wiki/cve-2023-39910 github
Libbitcoin으로 인해 사용자 개인 키가 유출되었습니다. 바이낸스 스퀘어. https://www.binance.com/cs/square/post/951306 바이낸스
Libbitcoin 프로젝트의 부주의한 암호화로 인해 여러 지갑이 해킹당했습니다. Web3 Is Going Great. https://www.web3isgoinggreat.com/single/libbitcoin-vulnerability web3isgoinggreat
VulnKeyHunter – B8C TECH . https://b8c.ru/page/11/b8c
CryptoScanVuln – B8C TECH. https://b8c.ru/cryptoscanvuln/ b8c
- https://www.clouddefense.ai/cve/2023/CVE-2023-39910
- https://cointelegraph.com/news/newly-discovered-bitcoin-wallet-loophole-let-hackers-steal-funds-slow-mist
- https://b8c.ru/page/11/
- https://www.incibe.es/en/incibe-cert/early-warning/vulnerabilities/cve-2023-39910
- https://github.com/libbitcoin/libbitcoin-explorer/wiki/cve-2023-39910
- https://www.web3isgoinggreat.com/single/libbitcoin-vulnerability
- https://www.binance.com/cs/square/post/951306
- https://linuxreviews.org/Serious_Buffer_Overflow_Vulnerability_In_The_Bitcoin_Core_Client_Disclosed
- https://keyhunters.ru/key-fountain-attack-turning-a-buffer-overflow-into-a-tool-for-btc-theft-and-private-key-recovery-in-the-bitcoin-ecosystem-where-an-attacker-gains-the-ability-to-extract-or-replace-bitcoin-wallet-sec/
- https://keyhunters.ru/stealth-hijack-attack-recovering-private-keys-and-completely-stealing-a-victims-btc-via-a-bitcoin-script-serialization-vulnerability-where-the-attacker-creates-a-wallet-with-the-public-use-of-a-cu/
- https://b8c.ru/cryptoscanvuln/
- http://satoshinakamoto.me/2010/12/11/re-bitcoin-and-buffer-overflow-attacks/
- https://service.securitm.ru/vm/vulnerability/cve/show/CVE-2023-39910
- https://satoshi.nakamotoinstitute.org/fi/posts/bitcointalk/threads/258/
- https://cryptodeep.ru/milk-sad-vulnerability-in-libbitcoin-explorer/
- https://satoshi.nakamotoinstitute.org/pt-br/posts/bitcointalk/540/
- https://dl.acm.org/doi/full/10.1145/3596906
- https://nvd.nist.gov/vuln/detail/CVE-2023-39910
- https://owasp.org/www-community/vulnerabilities/Buffer_Overflow
- https://www.investing.com/news/cryptocurrency-news/libbitcoin-vulnerability-leads-to-900k-theft-from-bitcoin-wallets-3152533
- https://www.cve.org/CVERecord?id=CVE-2023-39910
- https://www.dcc.fc.up.pt/~edrdo/aulas/qses/lectures/qses-05-buffer-overflows.pdf
- https://github.com/brichard19/BitCrack
- https://play.google.com/store/apps/details?id=io.github.keyhunter
- https://github.com/roginvs/bitcoin-scan
- https://journal.engineering.fuoye.edu.ng/index.php/engineer/article/view/1257/685
- https://en.bitcoin.it/wiki/Common_Vulnerabilities_and_Exposures
- https://kudelskisecurity.com/research/polynonce-a-tale-of-a-novel-ecdsa-attack-and-bitcoin-tears
- https://www.elliptic.co/platform/navigator
- https://www.chainalysis.com/blog/crypto-hacking-stolen-funds-2025/
- https://github.com/ZenGo-X/big-spender
- https://onlinelibrary.wiley.com/doi/pdf/10.1002/ajs4.351
- https://github.com/topics/btc-tools-2025
- https://bitcointalk.org/index.php?topic=977070.0
- https://dfpi.ca.gov/consumers/crypto/crypto-scam-tracker/
- https://usa.kaspersky.com/blog/vulnerability-in-hot-cryptowallets-from-2011-2015/29456/
- https://www.alchemy.com/dapps/best/wallet-security-tools
- https://www.chainalysis.com/solution/crypto-investigations/
- https://oag.ca.gov/crypto
- https://www.sonatype.com/blog/multiple-crypto-packages-hijacked-turned-into-info-stealers