환율 -
|
USDT(업비트) -
|
BTC.D -
|
총시총 -
|
접속 0

XRP 레저, 없는 XRP 찍어낼 수 있던 결함 공개…악용 흔적 없어

XRP 레저, 없는 XRP 찍어낼 수 있던 결함 공개…악용 흔적 없어

결제 엔진 정수 오버플로로 XRP를 새로 찍어낼 수 있던 결함, 2015년부터 잠복

9월 22일 버그 바운티 신고, 25일 xrpld 3.4.1 배포…공개 네트워크 악용 증거 없어

어멘드먼트 투표 없이 규칙을 바꾼 첫 사례…배치 기능 결함도 고쳐 9일 밤 활성화

광고

결제 한 번으로 XRP를 새로 만들어 낼 수 있던 결함이 XRP 레저(XRPL)에 10년 가까이 숨어 있었다. XRPL 공식 사이트(xrpl.org)는 9일(현지시간) 취약점 공개 보고서를 내고, 이 결함을 9월 25일 긴급 배포한 서버 프로그램 xrpld 3.4.1로 막았다고 밝혔다. 보고서는 "공개 네트워크에서 이 문제가 악용된 증거는 찾지 못했다"고 적었다.

같은 보고서에는 9일 밤 메인넷에 켜진 배치 거래 기능의 결함도 함께 실렸다. 본지가 9일 전한 배치 업그레이드 2건이 왜 한 차례 미뤄졌다가 켜졌는지가 이 보고서로 드러났다.

  1. 배치 기능 검증 누락 재확인, 공개 수정 작업 시작
  2. 버그 바운티로 결제 엔진 결함 신고, 당일 'XRP 발행 가능' 재현
  3. 결제 엔진 수정본 비공개 개발, 투표 없이 내보내기로 결정
  4. 리플 등 검증인이 배치 기능 찬성표 철회, 배치 수정본 3.4.1에 병합
  5. xrpld 3.4.1 배포, 같은 날 기본 검증인 80% 이상이 업그레이드
  6. 배치 보안 수정(fixBatchV1_2) 메인넷 활성화 (한국시간)
  7. 배치 거래(BatchV1_1) 메인넷 활성화 (한국시간)

합계가 넘치자 작은 숫자로 되돌아갔다

문제는 결제가 거래소 호가창(오더북)의 주문 여러 건을 한꺼번에 사들일 때 생겼다. XRPL 결제 엔진은 이때 구매자가 낼 금액을 64비트 정수로 더했는데, 합계가 저장 한도를 넘어도 오류를 내지 않고 아주 작은 숫자로 되돌아갔다(오버플로). 엔진은 주문을 낸 계정마다 제 몫을 전부 지급하면서 구매자에게서는 되돌아간 작은 합계만 받았고, 그 차액만큼 없던 XRP가 생겨났다.

XRPL에는 '어떤 거래도 XRP를 만들어 내지 못한다'는 안전 점검이 있지만, 이 점검도 같은 방식으로 합계를 냈기 때문에 똑같이 되돌아가 아무것도 잡아내지 못했다. 계정 하나가 총발행량보다 많이 가지면 걸리는 점검은 찍어낸 XRP를 수백 개 계정에 나눠 피할 수 있었다. 보고서는 이 결함이 지금의 결제 엔진이 만들어진 2015년부터 있었던 것으로 본다고 밝혔다.

공격에 큰 밑천도 필요 없었다. 보고서에 따르면 공격자는 계정 수백 개를 만들어 각각 소량의 토큰을 터무니없이 많은 XRP에 파는 주문을 낸 뒤, 다른 계정에서 이 주문을 한 번에 사들이는 결제를 보내면 됐다. 드는 돈은 계정·주문 적립금 수백 XRP와 수수료 정도였다. 신고 당시 등급은 '주요'였지만, 리플X 엔지니어팀이 결함을 재현해 찍어낸 XRP를 실제로 쓸 수 있음을 확인한 뒤 '치명적'으로 올렸다. 보고서는 악용됐다면 "한 번의 거래로 총발행량을 훨씬 넘는 XRP"를 만들어 거래소로도 보낼 수 있었다고 밝혔다. 다만 실제 거래자가 쓰지 않을 가격의 주문 수백 건이 필요해 우연히 일어날 수는 없었다고 덧붙였다. 결함은 버그 바운티(취약점 신고 포상) 프로그램 참가자 케이든 리아오와 베리아 AI가 신고했다.

광고

투표 없이 바뀐 첫 규칙

XRPL의 거래 처리 규칙은 보통 '어멘드먼트'라는 투표를 거친다. 신뢰 검증인 80% 넘는 지지가 2주 동안 이어져야 모든 서버에서 같은 순간에 켜진다. 이번 수정은 이 절차 없이 서버마다 3.4.1로 올리는 즉시 적용됐다. 보고서는 "10여 년 전 어멘드먼트 제도가 생긴 뒤 거래 처리 변경을 의도적으로 이렇게 내보낸 첫 사례"라고 밝혔다.

이유로는 공개 코드를 들었다. xrpld는 오픈소스라 수정본을 내면 결함 위치도 드러나는데, 투표 절차를 밟으면 몇 주 동안 결함이 알려진 채 메인넷에서 악용될 수 있었다는 것이다. 버전이 섞인 동안 서버끼리 장부가 갈려 네트워크가 멈출 위험도 있었지만, 보고서는 잘못된 XRP가 장부에 남는 것보다는 멈추는 편이 낫다고 판단했다고 설명했다. 기본 신뢰 검증인 목록(UNL) 운영자 80% 이상이 소스 코드가 공개되기도 전인 배포 당일 업그레이드를 마쳤다. 보고서는 이 결정이 XRPL 재단·리플X·검증인들의 합의로 이뤄졌으며 앞으로도 거래 처리 변경은 어멘드먼트를 거친다고 강조했다.

배치 기능은 투표를 되돌려 미뤘다

함께 공개된 다른 결함은 거래 최대 8건을 한 묶음으로 처리하는 배치 기능(XLS-56)에 있었다. 묶음 안 거래는 'RawTransaction'이라는 칸에 담겨야 하는데 서버가 이를 확인하지 않아, 다른 칸에 담긴 거래도 받아들여졌다. 보고서는 이 경우 서버 버전마다 판단이 엇갈려 장부 확정이 멈출 수 있었고, 거래 기록을 읽는 지갑·탐색기 프로그램이 오작동할 수 있었다고 설명했다. 자금을 빼낼 수 있는 결함은 아니었고, 기능이 켜지기 전이라 메인넷 피해도 없었다.

배치 기능은 원래 9월 29일 켜질 예정이었다. 리플과 다른 검증인 운영자들은 찬성표를 반대로 돌려 2주 대기를 초기화했고, 수정안이 다수 지지를 얻은 뒤 다시 찬성으로 돌아섰다. 그 결과 XRPL 탐색기 XRPSCAN 기준 수정안이 9일 오후 11시 15분, 배치 기능이 32분 뒤 켜졌다. 3.4.1로 올리지 않은 서버는 이제 네트워크와 동기화되지 않는다.

배치 켜진 다음 날, XRP는 1,900원대 보합

10일 오후 5시 30분 XRP는 업비트 원화마켓에서 1,917원에 거래됐다. 전일 종가보다 0.4% 오른 값이고, 같은 시각 빗썸에서는 1,916원이었다. 바이낸스 현물 가격은 1.4065달러였고, 이를 원화로 환산한 가격보다 업비트가 약 1.6% 높았다. 업비트 XRP의 최근 52주 최고가는 2025년 10월 27일의 3,970원이다.

XRP 상세 →
본 기사는 공개된 발표·자료를 바탕으로 정리한 정보이며 투자 권유가 아닙니다. 투자 판단과 책임은 본인에게 있습니다.