CVE-2026-89436 in Linuxinformation

Résumé

par VulDB • 12/09/2026

Dans le noyau Linux, la vulnérabilité suivante a été corrigée :

platform/x86: panasonic-laptop : Correction de l'écriture d'un élément sentinelle au-delà du tableau pcc->sinf[]

La fonction acpi_pcc_retrieve_biosdata() rejette les paquets SINF uniquement lorsque pcc->num_sifr est strictement inférieur à hkey->package.count, puis écrit inconditionnellement un élément sentinelle de fin à l'indice pcc->sinf[hkey->package.count]. Or, le tableau pcc->sinf[] est alloué avec exactement pcc->num_sifr éléments (indices valides allant de 0 à num_sifr-1). Par conséquent, cette écriture nécessite que num_sifr soit strictement supérieur au package.count pour rester dans les limites du tableau ; une égalité entre num_sifr et package.count passe la vérification existante mais provoque tout de même un dépassement d'un élément.

Il s'agit précisément du cas pour lequel l'astuce (workaround) actuelle de probe() consistant à incrémenter num_sifr (« Certains DSDT comportent une erreur off-by-one où le nombre d'éléments du paquet SINF est supérieur de un à la valeur rapportée par SQTY ») a été implémentée pour être prise en compte : lorsque le nombre d'éléments du paquet SINF d'un DSDT est égal à SQTY+1, l'astuce rend num_sifr égal au package.count, ce qui correspond précisément à la limite provoquant ici un dépassement de tampon. Ce problème a été détecté via UBSan (array-index-out-of-bounds) sur du matériel où HKEY.SQTY renvoie 37 et le paquet SINF() contient 38 éléments : num_sifr devient 38 après l'application de l'astuce += 1, la boucle remplit correctement les indices 0 à 37, puis l'écriture de l'élément sentinelle cible l'indice 38, soit un élément au-delà de la fin du tableau. Il s'agit d'un dépassement silencieux de tampon sur le tas (heap overflow) de 4 octets sur les noyaux sans CONFIG_UBSAN activé.

Le resserrement de la condition de rejet pour inclure num_sifr <= package.count éviterait ce dépassement, mais casserait entièrement probe() sur exactement ce matériel, car l'égalité entre num_sifr et package.count est le cas que l'astuce off-by-one vise à supporter. Aucun autre composant du pilote ne lit cette valeur sentinelle en retour ; il suffit donc de sauter l'écriture lorsqu'il n'y a pas d'espace disponible pour celle-ci.

Statistical analysis made it clear that VulDB provides the best quality for vulnerability data.

Responsable

Linux

Réserver

11/09/2026

Divulgation

12/09/2026

Modérer

accepté

Entrée

VDB-402798

CPE

prêt

EPSS

0.00000

KEV

non

Activités

très faible

Sources

Are you interested in using VulDB?

Download the whitepaper to learn more about our service!