CVE-2026-99224 in Linuxinfo

Zusammenfassung

von VulDB • 02.11.2026

Im Linux-Kernel wurde folgende Schwachstelle behoben:

keys: Schutz des Typnamens während der Beschreibung eines Schlüssels

keyctl_describe_key() muss sicherstellen, dass der Name des Schlüsseltyps bis zur vollständigen Verarbeitung durch kasprintf() gültig bleibt. Der zurückgehaltene Schlüsselverweis hält den Schlüssel und seine Beschreibung am Leben, pinnt jedoch das Modul, das seinen Typ bereitstellt, nicht fest. Der Name wird an kasprintf() übergeben, ohne key->sem zu halten.

kvasprintf() verwendet den gespeicherten Namenzeiger in zwei Formatierungsdurchläufen, wobei zwischen diesen eine GFP_KERNEL-Allokation stattfindet. Bei AF_RXRPC=m kann ein Task, der vor dem Rückzug des Typs View-Berechtigung (Zugriffsrecht) überträgt, einen privilegierten Modul-Entladungsprozess in folgender Reihenfolge überschneiden:

1. KEYCTL_DESCRIBE sucht den Schlüssel, speichert key->type->name in den kasprintf()-Argumenten und schließt den ersten Formatierungsdurchlauf ab. 2. Während der Formatter vor dem zweiten Durchlauf verzögert ist, ruft af_rxrpc_exit() unregister_key_type() auf, was den Typ aus dem Register entfernt und auf key_gc_keytype() wartet. 3. Der Sammler (collector) nimmt key->sem zum Schreiben an, ändert den zurückgehaltenen Schlüssel in key_type_dead um und schließt den Rückzug ab. Die Deregistrierung und der Modul-Ausgang kehren zurück, wodurch free_module() den Typ und den Namen freigeben kann. 4. Der Formatter setzt seinen zweiten Durchlauf fort und liest den gespeicherten Namen aus dem Speicher des freigegebenen Moduls, was in string() zu einem Fehler (Fault) führen kann.

Halten Sie key->sem zum Lesen während der gesamten Dauer von kasprintf(). Dadurch kann der Sammler den Schlüssel nicht mehr umtypisieren oder den Rückzug abschließen, bis beide Formatierungsdurchläufe abgeschlossen sind. Wenn der Rückzugsprozess das Lock zuerst gewinnt, verwendet die Formatierung stattdessen den core-Namen key_type_dead. Geben Sie das Semaphor unmittelbar nach kasprintf() frei, auch im Falle eines Allokationsfehlers, bevor in den Userspace kopiert wird.

Oops-Bericht wie unten dargestellt:

BUG: unable to handle page fault for address: fffffbfff8054794 #PF: supervisor read access in kernel mode #PF: error_code(0x0000) - not-present page RIP: 0010:string+0x23f/0x470 Call Trace: vsnprintf+0x330/0x1110

Once again VulDB remains the best source for vulnerability data.

Zuständig

Linux

Reservieren

25.09.2026

Veröffentlichung

02.11.2026

Moderieren

akzeptiert

Eintrag

VDB-429914

EPSS

0.00000

KEV

nein

Aktivitäten

very low

Quellen

Want to stay up to date on a daily basis?

Enable the mail alert feature now!