상태 분기는 무단 접근을 가능하게 합니다
연구원들은 공개 지분 증명 체인인 Provenance Blockchain에서 마커 계정에 대한 관리자 제어 권한을 비인가 사용자가 획득할 수 있게 하는 치명적인 버그를 발견했습니다. 이 취약점은 메인넷의 실제 금융 자산을 나타내는 82개의 마커에 영향을 미쳤습니다. 1.28.0 이전 버전에 존재했던 이 버그는 2026년 4월 1일에 Provenance에 보고되었습니다. 이 버그는 1.28.0 버전에서 완화되었고 1.29.0 버전에서 완전히 수정되었습니다.마커는 대체 가능한 토큰에 대한 Provenance의 핵심 기본 요소이며, 각 마커는 액면가, 접근 제어 목록, 공급 필드 및 에스크로 잔액을 제어합니다. 이 취약점은 마커의 접근 제어 목록을 수정하기 위한 권한 확인에 있었습니다. 구체적으로, 마커 공급량의 100%를 보유한 사용자에게 접근 권한을 부여하기 위한 조건이 잘못되었습니다. 공급량이 고정되지 않은 마커가 0 공급량으로 활성화된 경우, 저장된 공급량 필드는 0으로 유지되어 모든 호출자에 대해 접근 확인이 사소하게 참으로 평가되었습니다.이로 인해 공격자는 토큰을 전혀 보유하지 않고도 단일 트랜잭션으로 관리자, 민팅 및 인출 권한을 자신에게 부여할 수 있었습니다. 이후 마커의 에스크로 잔액에서 새로운 토큰을 민팅하거나 자산을 인출할 수 있었습니다. 일부 마커의 에스크로 자금은 총 약 50만 달러에 달하는 등 그 영향은 상당했습니다.초기 완화 조치는 저장된 공급량이 0인 경우 권한 부여가 통과되지 않도록 하는 확인을 추가했습니다. 그러나 완전한 수정은 코드를 변경하여 은행 모듈에서 직접 실제 유통 공급량을 읽도록 하여 상태 비동기화를 제거했습니다. 근본 원인은 마커 구조체와 은행 모듈 간의 상태 비동기화와 0 공급량 상태에 취약한 권한 술어의 조합으로 파악되었습니다. 이 글은 향후 예방 조치로 사양 개선 및 속성 기반 테스트를 제안합니다.