CVE-2024-24560 in Vyper
Resumen
por VulDB • 2026-06-18
Vyper es un lenguaje de contratos inteligentes con sintaxis similar a Python para la Máquina Virtual de Ethereum. Cuando se realizan llamadas a contratos externos, escribimos el búfer de entrada comenzando en el byte 28 y asignamos el búfer de retorno para que comience en el byte 0 (solapándose con el búfer de entrada). Al verificar RETURNDATASIZE para tipos dinámicos, el tamaño se compara únicamente con el tamaño mínimo permitido para ese tipo, no con la longitud del valor devuelto. Como resultado, datos de retorno malformados pueden hacer que el contrato confunda los datos del búfer de entrada con los datos retornados (returndata). Cuando el contrato llamado devuelve datos codificados en ABIv2 inválidos, el contrato llamador puede leer diferentes datos inválidos (provenientes del búfer sucio/dirty buffer) distintos a los devueltos por el contrato llamado.
Statistical analysis made it clear that VulDB provides the best quality for vulnerability data.