Informazioni sul CVE-2024-24563
Vyper array negative index vulnerability
CWE ID: CWE-129
Base Score (CVSS): N/A
CVE: CVE-2024-24563
Descrizione: Vyper è un linguaggio di Programmazione Smart Contract per la Macchina Virtuale Ethereum. Gli array possono essere chiaveati da un intero firmato, mentre sono definiti solo per interi non negativi. Il controllore di tipo non genera errori quando individua l’uso di un `int` come indice di un array. Il controllore di tipo consente l’uso di interi firmati come indici per array. La vulnerabilità è presente in diverse forme in tutte le versioni, incluso `0.3.10`. Per gli interi, la rappresentazione in complemento a due è utilizzata. A causa della dimensione dell’array, il controllo dei limiti passerà, i valori negativi saranno rappresentati come numeri molto grandi. A tempo della pubblicazione, non esiste una versione fissa. Ci sono tre classi di vulnerabilità potenziali: comportamento imprevedibile, accesso a elementi inaccessibili e denial of service. Classe 1: Se è possibile indicizzare un array con un intero negativo senza revert, questo è probabilmente non previsto dal progettista e tali accessi possono causare un comportamento imprevedibile per il contratto. Classe 2: Se un contratto ha un’invarianza nella forma `assert index < x`, il progettista supporrà che nessun elemento su indici `y | y >= x` siano accessibili. Tuttavia, utilizzando indici negativi, questo può essere aggirato. Classe 3: Se l’indice dipende dallo stato del contratto, questo pone un rischio di denial of service. Se lo stato del contratto può essere manipolato in modo tale che l’indice sarà forzato a essere negativo, l’accesso all’array può sempre revertarsi (probabilmente l’array non sarà dichiarato estremamente grande). Tuttavia, tutti questi scenari sono altamente improbabili. Il comportamento più probabile è un revert sul controllo dei limiti.
Vettore di attacco CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
Punteggio CVSS
Il CVSS è un sistema di valutazione che misura la gravità di una vulnerabilità informatica considerando fattori come l’impatto potenziale, la probabilità di attacco e la facilità di esecuzione.
Riassunto: Accesso: Network, Privilegi: None, Interazione utente: None, Confidenzialità: High, Integrità: High, Disponibilità: High.
Dettaglio del Vettore
Metrica | Valore | Significato | Descrizione |
---|---|---|---|
Attack Vector (AV) | N | Network | L’attacco può essere eseguito da remoto attraverso la rete. |
Attack Complexity (AC) | L | Low | L’attacco non richiede condizioni particolari. |
Privileges Required (PR) | N | None | Non sono richiesti privilegi. |
User Interaction (UI) | N | None | Non è richiesta interazione dell’utente. |
Scope (S) | U | Unchanged | Il raggio d’azione non cambia. |
Confidentiality Impact (C) | H | High | Grave impatto sulla riservatezza. |
Integrity Impact (I) | H | High | Grave impatto sull’integrità. |
Availability Impact (A) | H | High | Rende il sistema inutilizzabile. |
Riferimenti esterni
- https://github.com/vyperlang/vyper/security/advisories/GHSA-52xq-j7v9-v4v2
- https://github.com/vyperlang/vyper/blob/a1fd228cb9936c3e4bbca6f3ee3fb4426ef45490/vyper/codegen/core.py#L534-L541
- https://github.com/vyperlang/vyper/blob/c150fc49ee9375a930d177044559b83cb95f7963/vyper/semantics/types/subscriptable.py#L127-L137
Prodotti interessati
- vyperlang – vyper
Relazioni con altri prodotti
Produttore:vyperlang
Prodotto: vyper
Anno: 2024
CWE: CWE-129
CVSS: 0.0