6월 주요 보안 사고 Top 3
6월의 세 가지 대형 사고는 단일 버그에서 비롯된 것이 아니었습니다. 이 사고들은 공통된 실패를 드러냈습니다. 표면적으로는 보안 보장이 유지되는 것처럼 보였지만, 실제로는 한 번도 제대로 적용된 적이 없었습니다. MEV 봇은 허용량(allowance)이 실제로 소모되었는지 확인하지 않은 채 수익성이 있어 보이는 거래를 신뢰했습니다. 두 개의 퇴역 롤업은 형식상 유효하지만 자신이 대표한다고 주장하는 정산 상태에 실제로 바인딩되지 않은 증명을 수락했습니다. 한 지갑의 서명 코드는 보안이 의존하는 유일한 비밀 입력값을 조용히 누락시켜, 예측 불가능해야 할 값을 누구나 공개 데이터로부터 재계산할 수 있는 값으로 만들었습니다. 이 시스템들 중 어느 것도 무차별 대입 암호 분석으로 뚫린 것이 아니었습니다. 아무도 확인하지 않은 가정으로 인해 무너진 것입니다.
JaredFromSubway: 약 $15M
2026년 6월 20일, 이더리움 MEV 봇 운영자인 JaredFromSubway는 허니팟 공격으로 약 $15M의 피해를 입었습니다.
공격자는 현실적인 Swap / Sync 이벤트를 방출하는 가짜 래퍼 토큰과 가짜 Uniswap V2 방식의 풀로 구성된 가짜 거래 환경을 구축했습니다. 정상적인 흐름에서는 래퍼 컨트랙트의 wrapTo() 함수가 내부적으로 기반 실제 토큰에 대해 transferFrom()을 호출하여 봇이 이전에 부여한 허용량을 소모해야 합니다. 그러나 가짜 래퍼 토큰 컨트랙트는 이 단계를 완전히 건너뛰면서도 unwrap()을 통해 공격자가 조작한 소액의 이익을 반환했습니다. 봇이 허용량이 실제로 소모되었는지 확인하거나 잔여 승인을 취소하지 않았기 때문에, 소모되지 않은 허용량이 누적되었고 이후 withdraw()를 통해 탈취되었습니다. 피해를 입은 한 지갑은 약 1,474.58 WETH, 2,870,573 USDC, 2,035,760 USDT를 잃었습니다. JaredFromSubway는 이후 피해 지갑 전체에서 약 $15M의 총 손실을 보고했습니다.
이 사고의 교훈은 MEV 봇이 시뮬레이션상 수익성이 있어 보이더라도 알 수 없는 토큰 및 풀 코드를 적대적인 것으로 취급해야 한다는 것입니다. 자동화된 전략에는 엄격한 지출자 허용 목록(allowlist), 코드 해시 검사, 거래 후 허용량 검증, 잔여 승인 정리가 필요합니다.
Aztec 레거시 롤업 사고: 약 $4.35M
2026년 6월, 두 개의 별도 레거시 Aztec 배포가 악용되어 총 약 $4.35M의 손실이 발생했습니다. 근본 원인은 달랐지만, 두 사고 모두 증명 유효성과 정산 의미론(settlement semantics)의 경계에서 발생했습니다.
첫 번째 사고는 2026년 6월 14일 Aztec Connect의 RollupProcessorV3를 공격하여 약 $2.15M의 손실을 초래했습니다. 공격자는 numTxs를 1로 설정하면서 실제 입금을 나중에 디코딩되는 슬롯에 몰래 삽입하여, 증명 경로가 내부적으로 값을 인정하는 동안 L1 정산 로직이 해당하는 decreasePendingDepositBalance() 호출을 건너뛰도록 했습니다. 공격자는 이후 생성된 미담보 잔액을 정상 채널을 통해 인출했습니다.
두 번째 사고는 2026년 6월 18일 별도의 레거시 PrivateRollupBridge / RollupProcessor 배포를 공격하여 약 $2.2M의 손실을 야기했습니다. 이 배포는 여전히 escapeHatch(bytes,bytes,bytes) 경로를 노출하고 있었으며, 해당 회로는 프라이빗 조인-스플릿 멤버십 루트가 L1이 소비하는 공개 oldDataRoot와 일치하도록 제약하지 않았습니다. 이를 통해 공격자는 가짜 프라이빗 트리에서 고가치 노트의 소유권을 증명하면서 실제 L1 dataRoot를 공개 루트로 게시할 수 있었습니다. 검증자는 증명을 수락했고, L1 컨트랙트는 인출을 실행했습니다.
이 두 사고는 증명 검증만으로는 충분하지 않다는 것을 보여줍니다. 정산 경계를 관장하는 모든 값은 증명이 검증하는 정확한 공개 입력값에 바인딩되어야 하며, 모든 프라이빗 증인(witness)은 정산이 실제로 소비하는 공개 상태와 일치하도록 명시적으로 제약되어야 합니다.
SecondFi: 약 $2.4M
2026년 6월 23일, EMURGO가 개발한 브라우저 지갑 익스텐션인 SecondFi(구 Yoroi)는 v10.0.3부터 v10.0.6 버전에 영향을 미치는 Ed25519 서명 구현의 심각한 결함을 공개했습니다.
취약한 코드는 공개 트랜잭션 메시지만을 기반으로 서명 논스(nonce)를 도출하여, 필수적인 비밀 논스 접두사를 생략했습니다. 이로 인해 서명 방정식이 단일 미지수로 변환되어, 누구든 공개 온체인 데이터로부터 지갑의 개인 키를 직접 복원할 수 있게 되었습니다. 두 명의 공격자가 독립적으로 이 결함을 악용하여 EMURGO가 추가로 1억 2,900만 ADA를 구제하기 전에 374개의 지갑에서 약 $2.4M(1,600만 ADA)을 탈취했습니다.
이 사고의 교훈은 지갑 서명 코드가 프로토콜 수준의 암호화와 동일한 수준의 검토가 필요하다는 것입니다. 사소해 보이는 단일 비밀 입력값을 생략하더라도 개인 키가 완전히 노출될 수 있으므로, 커스텀 Ed25519 구현은 표준 라이브러리처럼 신뢰하기보다 독립적인 감사를 거쳐야 합니다.
명예 언급: Zcash Orchard 건전성(soundness) 버그
확인된 악용 사례가 없어 Top 3에는 포함되지 않았지만, Zcash의 Orchard 건전성 버그는 6월의 가장 중요한 공개 사례 중 하나였습니다. 2026년 6월 4일 공개된 이 버그는 Orchard 실드 풀 회로에서 동일한 실드 노트가 서로 다른 널리파이어(nullifier)를 생성하여 두 번 이상 사용될 수 있도록 허용할 수 있는 누락된 동등 제약 조건이었습니다. 이 결함은 2022년 5월 Orchard 활성화 이후 존재해 왔으며, NU6.2 긴급 업그레이드를 통해 패치되었습니다.
이 사고는 Aztec 사례의 더 깊은 교훈을 재확인시켜 줍니다. ZK 시스템에서 보안은 주변 프로토콜이 회로가 제약한다고 가정하는 것이 아니라, 회로가 실제로 제약하는 것에 달려 있습니다.
위 정보는 2026년 7월 1일 00:00 UTC 기준 데이터를 바탕으로 합니다.
이것으로 2월 보안 사고 브리핑을 마칩니다.
보안 사고 라이브러리에서 더 자세한 내용을 확인하실 수 있습니다.
항상 정보를 숙지하고 안전하게 지내세요!



