mirror of
https://github.com/fkie-cad/nvd-json-data-feeds.git
synced 2025-05-29 01:31:20 +00:00
71 lines
3.9 KiB
JSON
71 lines
3.9 KiB
JSON
{
|
|
"id": "CVE-2024-32481",
|
|
"sourceIdentifier": "security-advisories@github.com",
|
|
"published": "2024-04-25T17:15:50.273",
|
|
"lastModified": "2024-04-25T17:24:59.967",
|
|
"vulnStatus": "Awaiting Analysis",
|
|
"descriptions": [
|
|
{
|
|
"lang": "en",
|
|
"value": "Vyper is a pythonic Smart Contract Language for the Ethereum virtual machine. Starting in version 0.3.8 and prior to version 0.4.0b1, when looping over a `range` of the form `range(start, start + N)`, if `start` is negative, the execution will always revert. This issue is caused by an incorrect assertion inserted by the code generation of the range `stmt.parse_For_range()`. The issue arises when `start` is signed, instead of using `sle`, `le` is used and `start` is interpreted as an unsigned integer for the comparison. If it is a negative number, its 255th bit is set to `1` and is hence interpreted as a very large unsigned integer making the assertion always fail. Any contract having a `range(start, start + N)` where `start` is a signed integer with the possibility for `start` to be negative is affected. If a call goes through the loop while supplying a negative `start` the execution will revert. Version 0.4.0b1 fixes the issue."
|
|
},
|
|
{
|
|
"lang": "es",
|
|
"value": "Vyper es un lenguaje de contrato inteligente pit\u00f3nico para la m\u00e1quina virtual Ethereum. A partir de la versi\u00f3n 0.3.8 y antes de la versi\u00f3n 0.4.0b1, al recorrer un \"rango\" de la forma \"rango (inicio, inicio + N)\", si \"inicio\" es negativo, la ejecuci\u00f3n siempre se revertir\u00e1. Este problema se debe a una aserci\u00f3n incorrecta insertada durante la generaci\u00f3n de c\u00f3digo del rango `stmt.parse_For_range()`. El problema surge cuando se firma \"start\", en lugar de usar \"sle\", se usa \"le\" y \"start\" se interpreta como un entero sin signo para la comparaci\u00f3n. Si es un n\u00famero negativo, su bit 255 se establece en \"1\" y, por lo tanto, se interpreta como un entero sin signo muy grande, lo que hace que la afirmaci\u00f3n siempre falle. Cualquier contrato que tenga un \"rango (inicio, inicio + N)\" donde \"inicio\" es un entero con signo con la posibilidad de que \"inicio\" sea negativo se ve afectado. Si una llamada pasa por el bucle mientras proporciona un \"inicio\" negativo, la ejecuci\u00f3n se revertir\u00e1. La versi\u00f3n 0.4.0b1 soluciona el problema."
|
|
}
|
|
],
|
|
"metrics": {
|
|
"cvssMetricV31": [
|
|
{
|
|
"source": "security-advisories@github.com",
|
|
"type": "Secondary",
|
|
"cvssData": {
|
|
"version": "3.1",
|
|
"vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:L/A:N",
|
|
"attackVector": "NETWORK",
|
|
"attackComplexity": "LOW",
|
|
"privilegesRequired": "NONE",
|
|
"userInteraction": "NONE",
|
|
"scope": "UNCHANGED",
|
|
"confidentialityImpact": "NONE",
|
|
"integrityImpact": "LOW",
|
|
"availabilityImpact": "NONE",
|
|
"baseScore": 5.3,
|
|
"baseSeverity": "MEDIUM"
|
|
},
|
|
"exploitabilityScore": 3.9,
|
|
"impactScore": 1.4
|
|
}
|
|
]
|
|
},
|
|
"weaknesses": [
|
|
{
|
|
"source": "security-advisories@github.com",
|
|
"type": "Secondary",
|
|
"description": [
|
|
{
|
|
"lang": "en",
|
|
"value": "CWE-681"
|
|
}
|
|
]
|
|
}
|
|
],
|
|
"references": [
|
|
{
|
|
"url": "https://github.com/vyperlang/vyper/blob/9136169468f317a53b4e7448389aa315f90b95ba/vyper/codegen/stmt.py#L286-L287",
|
|
"source": "security-advisories@github.com"
|
|
},
|
|
{
|
|
"url": "https://github.com/vyperlang/vyper/commit/3de1415ee77a9244eb04bdb695e249d3ec9ed868",
|
|
"source": "security-advisories@github.com"
|
|
},
|
|
{
|
|
"url": "https://github.com/vyperlang/vyper/commit/5319cfbe14951e007ccdb323257e5ada869b35d5",
|
|
"source": "security-advisories@github.com"
|
|
},
|
|
{
|
|
"url": "https://github.com/vyperlang/vyper/security/advisories/GHSA-ppx5-q359-pvwj",
|
|
"source": "security-advisories@github.com"
|
|
}
|
|
]
|
|
} |