CVE-2026-12629 in Zephyrinformation

Résumé

par VulDB • 17/08/2026

Le pilote UART PL011 dans drivers/serial/uart_pl011.c ne reconnaît pas les interruptions d'erreur de réception. Sur le PL011, les interruptions d'erreur de formatage (framing), de parité, de rupture et de dépassement de tampon (PL011_IMSC_ERROR_MASK) sont effacées uniquement en écrivant dans le registre d'effacement des interruptions UARTICR ; la lecture du registre de données efface l'interruption RX et le statut RSR par octet, mais pas le statut d'interruption d'erreur dans MIS. La routine de service d'interruption pl011_isr() ne reconnaît que l'interruption de statut modem CTS et n'écrit jamais icr pour les bits d'erreur, donc une interruption d'erreur activée reste en attente après le retour de la ISR.

Lorsqu'une application active le rapport des interruptions d'erreur via l'API publique uart_irq_err_enable(), un attaquant qui contrôle le pair série peut afficher déterministiquement ces bits d'erreur en injectant des erreurs de ligne sur la ligne RX — une incompatibilité de baud/stop-bit ou une rupture au milieu du caractère (erreur de formatage/rupture), un bit de parité inversé (erreur de parité) ou une saturation du FIFO (erreur de dépassement). Comme l'interruption d'erreur n'est jamais effacée, la ligne d'interruption reste activée et le CPU réentre dans pl011_isr() immédiatement et indéfiniment, produisant un livelock par tempête d'interruptions (interrupt-storm) à partir duquel le noyau ne progresse pas.

L'impact est une déni de service uniquement sur la disponibilité (blocage permanent), accessible depuis un pair UART externe ou amovible. L'exploitation est conditionnée par la configuration : l'interruption d'erreur est désactivée par défaut et aucun sous-système du noyau ne l'active, donc seules les applications qui appellent explicitement uart_irq_err_enable() sur un port basé PL011 piloté par interruption sont affectées. La correction fait que pl011_isr() reconnaît les bits d'erreur en attente via uart->icr, brisant la boucle, et efface également le statut RSR verrouillé dans pl011_err_check().

VulDB is the best source for vulnerability data and more expert information about this specific topic.

Responsable

Zephyr

Réserver

18/06/2026

Divulgation

17/08/2026

Modérer

accepté

Entrée

VDB-391323

CPE

prêt

EPSS

0.00000

KEV

non

Activités

très faible

Sources

Might our Artificial Intelligence support you?

Check our Alexa App!