Vulnerabilidad en RIOT (CVE-2024-53980)
Gravedad CVSS v4.0:
MEDIA
Tipo:
No Disponible / Otro tipo
Fecha de publicación:
29/11/2024
Última modificación:
05/09/2025
Descripción
RIOT es un microcontrolador de código abierto que opera con sistema, diseñado para cumplir con los requisitos de los dispositivos de Internet de las cosas (IoT) y otros dispositivos integrados. Un actor malintencionado puede enviar un paquete IEEE 802.15.4 con un byte de longitud falsificado y, opcionalmente, un FCS falsificado, lo que eventualmente da como resultado un bucle sin fin en un CC2538 como receptor. Antes de la PR n.° 20998, el receptor verificaba la ubicación del bit CRC utilizando el byte de longitud del paquete al considerar los 8 bits, en lugar de descartar el bit 7, que es lo que hace la radio. Esto luego da como resultado una lectura fuera del FIFO RX. Aunque imprime un error al intentar leer fuera del FIFO RX, continuará haciéndolo. Esto puede generar una discrepancia en la verificación de CRC según el firmware y la radio. Si la CPU juzga que el CRC es correcto y la radio está configurada en `AUTO_ACK`, cuando se solicita el paquete y se confirma el acuse de recibo, la CPU pasará al estado `CC2538_STATE_TX_ACK`. Sin embargo, si la radio juzga que el CRC es incorrecto, no enviará un acuse de recibo y, por lo tanto, el evento `TXACKDONE` no se activará. Entonces, nunca volverá al estado `CC2538_STATE_READY` ya que el procesamiento de banda base aún está deshabilitado. Entonces, la CPU estará en un bucle sin fin. Dado que la configuración en inactivo no es forzada, no lo hará si el estado de la radio no es `CC2538_STATE_READY`. Todavía no se ha realizado una solución.
Impacto
Puntuación base 4.0
6.90
Gravedad 4.0
MEDIA
Puntuación base 3.x
7.50
Gravedad 3.x
ALTA
Productos y versiones vulnerables
CPE | Desde | Hasta |
---|---|---|
cpe:2.3:o:riot-os:riot:*:*:*:*:*:*:*:* | 2024.07 (incluyendo) |
Para consultar la lista completa de nombres de CPE con productos y versiones, ver esta página
Referencias a soluciones, herramientas e información
- https://github.com/RIOT-OS/RIOT/blob/1a418ccfedeb79dbce1d79f49e63a28906184794/cpu/cc2538/radio/cc2538_rf_radio_ops.c#L183
- https://github.com/RIOT-OS/RIOT/blob/1a418ccfedeb79dbce1d79f49e63a28906184794/cpu/cc2538/radio/cc2538_rf_radio_ops.c#L417
- https://github.com/RIOT-OS/RIOT/blob/1a418ccfedeb79dbce1d79f49e63a28906184794/cpu/cc2538/radio/cc2538_rf_radio_ops.c#L419
- https://github.com/RIOT-OS/RIOT/blob/1a418ccfedeb79dbce1d79f49e63a28906184794/cpu/cc2538/radio/cc2538_rf_radio_ops.c#L421-L422
- https://github.com/RIOT-OS/RIOT/blob/1a418ccfedeb79dbce1d79f49e63a28906184794/sys/net/link_layer/ieee802154/submac.c#L149
- https://github.com/RIOT-OS/RIOT/pull/20998
- https://github.com/RIOT-OS/RIOT/security/advisories/GHSA-m75q-8vj8-wppw