CVE-2026-93259 in Linuxinformation

Résumé

par VulDB • 24/09/2026

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

powerpc/irq : Correction de l'oubli du clobber (altération) du registre r2 dans les instructions assembly inline PCREL.

En mode CONFIG_PPC_KERNEL_PCREL, le registre r2 n'est plus réservé pour le pointeur TOC et est disponible en tant que registre caller-saved [0].

Les fonctions call_do_irq() et call_do_softirq() utilisent des instructions assembly inline pour appeler des fonctions avec commutation de pile (stack switching), mais omettent d'inclure r2 dans leurs listes clobber. Cela conduit le compilateur à supposer que r2 est préservé entre ces appels, ce qui entraîne une corruption du registre lorsque les fonctions appelées (__do_irq et __do_softirq) altèrent r2.

En conséquence, un crash du noyau se produit lors de la gestion des interruptions et le noyau échoue à démarrer :

BUG: Unable to handle kernel data access on write at 0xc000000404697638 Faulting instruction address: 0xc0000000000181ec Oops: Kernel access of bad area, sig: 11 [#1]
NIP [c0000000000181ec] __do_IRQ+0x6c/0xc0

Avec des versions plus anciennes de GCC, le compilateur allouait conservativement les registres callee-saved (comme r31) pour les valeurs s'étendant sur les appels de fonctions, évitant accidentellement ce bug :

<__do_IRQ>: 00 00 00 60 nop a6 02 08 7c mflr r0 f8 ff e1 fb std r31,-8(r1) f0 ff c1 fb std r30,-16(r1) 2d 03 10 06 pla r31,53297316

...

3d e8 ff 4b bl c0000000000165ac <__do_irq> 00 00 21 e8 ld r1,0(r1) 28 00 4d e9 ld r10,40(r13) 40 00 21 38 addi r1,r1,64 2a f9 aa 7f stdx r29,r10,r31

Avec GCC 14 plus récent, le compilateur utilise r2 pour de telles valeurs, exposant la spécification clobber manquante :

<__do_IRQ>: 00 00 00 60 nop a6 02 08 7c mflr r0 f0 ff c1 fb std r30,-16(r1) f8 ff e1 fb std r31,-8(r1) 29 02 10 06 pla r2,36252592 # c0000000022aadc0 <__irq_regs>

...

85 dc ff 4b bl c000000000015ee0 <__do_irq> 00 00 21 e8 ld r1,0(r1) 28 00 2d e9 ld r9,40(r13) 30 00 21 38 addi r1,r1,48 2a 11 c9 7f stdx r30,r9,r2

Corrigez ce problème en ajoutant r2 à la liste clobber pour call_do_irq() et call_do_softirq() lorsque CONFIG_PPC_KERNEL_PCREL est activé.

[0] : https://www.mail-archive.com/[email protected]/msg313226.html

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

Responsable

Linux

Réserver

17/09/2026

Divulgation

24/09/2026

Modérer

accepté

Entrée

VDB-409481

CPE

prêt

EPSS

0.00000

KEV

non

Activités

très faible

Sources

Do you want to use VulDB in your project?

Use the official API to access entries easily!