Vulnerabilidad en Binary (CVE-2022-36078)
Gravedad CVSS v3.1:
ALTA
Tipo:
No Disponible / Otro tipo
Fecha de publicación:
02/09/2022
Última modificación:
21/07/2023
Descripción
Binary proporciona codificación/decodificación en Borsh y otros formatos. La vulnerabilidad es un fallo de asignación de memoria que puede ser explotada para asignar fragmentos en la memoria con un valor de tamaño (arbitrario) excesivo, que puede agotar la memoria disponible o bloquear todo el programa. Cuando es usada "github.com/gagliardetto/binary" para analizar datos no verificados (o de tipo incorrecto) procedentes de fuentes de entrada no confiables (por ejemplo, la cadena de bloques) en trozos, es posible asignar memoria con un tamaño excesivo. Cuando es usado el método "dec.Decode(&val)" para parsear datos en una estructura que es o contiene trozos de valores, la longitud del trozo es leído previamente directamente de los propios datos sin ninguna comprobación del tamaño de los mismos, y luego es asignado un trozo. Esto podría conllevar a un desbordamiento y una asignación de memoria con un valor de tamaño excesivo. Los usuarios deberían actualizar a versiones "v0.7.1" o superiores. Una mitigación es no confiar en la función "dec.Decode(&val)" para analizar los datos, sino usar un método personalizado "UnmarshalWithDecoder()" que lea y compruebe la longitud de cualquier slice
Impacto
Puntuación base 3.x
7.50
Gravedad 3.x
ALTA
Productos y versiones vulnerables
| CPE | Desde | Hasta |
|---|---|---|
| cpe:2.3:a:binary_project:binary:*:*:*:*:*:go:*:* | 0.7.1 (excluyendo) |
Para consultar la lista completa de nombres de CPE con productos y versiones, ver esta página



