FoomCash는 Groth16 검증 컨트랙트를 배포할 때 감마와 델타 값을 동일하게 설정하는 실수를 저질렀는데, 이러한 경우 검증 방정식이 단순화되어 증명을 항상 참으로 처리하는 문제를 발생시킨다고 합니다. FoomCash의 경우 아예 입금을 하지 않아도 출금이 가능하게 되는 치명적인 문제로 발전했습니다.
사후분석에 따르면 감마와 델타의 랜덤값을 생성하는 CLI 명령어가 아예 실행되지 않아서 발생한 문제였다고 하네요.
특이한 점은 같은 주에 Veil Cash라는 거의 알려지지 않은 프로젝트에서 동일한 취약점으로 3ETH 정도가 탈취되어 post mortem이 올라왔었는데, 그 정보를 보고 공격자가 동일 기법을 적용해 공격했다는 정황이 의심되는 상황이라고 합니다. 정작 FoomCash는 그 보고서를 보지 못했다고 하네요..
이러한 종류의 취약점이 실제 공격으로 이어진건 거의 처음보는 케이스인 것 같네요. 바이브코딩으로 프라이버시 프로토콜의 구현이 쉬워진만큼 신생 프라이버시 프로젝트에 보안 문제가 발생할 가능성을 전보다 조금 더 높게 책정해야할 것 같습니다.
https://x.com/Foomclub_/status/2028231845788188747?s=20
