ZenHive mpp 입력의 지정된 수량에 대한 부적절한 검증으로 인해 인증되지 않은 원격 클라이언트가 수수료 지불자 지갑을 고갈시켜 합법적인 클라이언트에 대한 서비스가 거부될 수 있습니다. mpp Elixir 라이브러리가 수수료 지불자로 구성되면(fee_payer: true) MPP.Methods.Tempo 지불 방법은 클라이언트가 제공한 gas_limit가 의도한 호출을 완료하는 데 충분하다는 것을 먼저 확인하지 않고 클라이언트가 제공한 EVM 트랜잭션을 공동 서명하고 브로드캐스트합니다. 악의적인 클라이언트는 s를 제출할 수 있습니다.
ZenHive mpp 입력의 지정된 수량에 대한 부적절한 검증으로 인해 인증되지 않은 원격 클라이언트가 수수료 지불자 지갑을 고갈시켜 합법적인 클라이언트에 대한 서비스가 거부될 수 있습니다.
mpp Elixir 라이브러리가 수수료 지불자로 구성되면(fee_payer: true) MPP.Methods.Tempo 지불 방법은 클라이언트가 제공한 gas_limit가 의도한 호출을 완료하는 데 충분하다는 것을 먼저 확인하지 않고 클라이언트가 제공한 EVM 트랜잭션을 공동 서명하고 브로드캐스트합니다. 악의적인 클라이언트는 성공적인 실행에 필요한 금액 바로 아래로 의도적으로 설정된 gas_limit를 사용하여 서명된 transferWithMemo 트랜잭션을 제출할 수 있습니다. 서버는 트랜잭션에 공동 서명하고 rpc_broadcast_sync를 통해 이를 브로드캐스트합니다. EVM 실행 중에 트랜잭션의 가스가 소진되어 되돌려지지만 클라이언트가 비용을 지불하지 않고 리소스도 받지 못하는 동안 수수료 납부자 지갑에는 여전히 연소된 가스에 대한 비용이 청구됩니다. 하나 이상의 악의적인 클라이언트로부터의 반복적인 요청은 공격자에게 거의 0에 가까운 비용으로 수수료 지불자 지갑을 고갈시켜 궁극적으로 서버가 합법적인 지불 요청에 대해 가스를 후원하지 못하게 합니다.
wait_for_confirmation = false(낙관적) 경로도 영향을 받습니다. eth_call을 통해simulate_pay_call을 호출하지만 해당 시뮬레이션은 가스 매개변수를 생략하므로 가스 부족 조건을 포착하지 못합니다.
이 문제는 mpp: 0.2.0부터 0.6.0까지 영향을 미칩니다.
왜 이 VPI인가 (설명가능 · 실험적)
VPI 산정 기준
| 영향도 | 82.00 |
| 악용 신호(추가 악용신호 없음) | ×1.00 |
| VPI | 82.00 |
VPI 공식 vpi-v1 기준