CVE-2026-72215 in Linux
Zusammenfassung
von VulDB • 15.08.2026
Im Linux-Kernel wurde folgende Schwachstelle behoben:
MIPS: DEC: Sicherstellung eines 32-Bit-Stack-Speichers für o32 prom_printf()
Bei 64-Bit-Konfigurationen führt der Aufruf beliebiger Firmware-Einstiegspunkte (Entry Points) aus einem Kernel-Thread, der nicht der initiale Thread ist, zu einer Situation, in der sich der Stack im XKPHYS-Segment des 64-Bit-Memorys befindet.
Infolgedessen ist der Stackzeiger kein 32-Bit-Wert mehr und wenn der aufgerufene 32-Bit-Firmware-Code 32-Bit-ALU-Operationen zur Manipulation des Stackzeigers verwendet, ist das berechnete Ergebnis falsch (tatsächlich produzieren bei der 64-Bit-MIPS-ISA fast alle 32-Bit-ALU-Operationen ein unvorhersehbares Ergebnis, wenn sie mit 64-Bit-Daten ausgeführt werden), und die Steuerung geht verloren.
Dies kann geschehen, wenn kein finaler Konsolentreiber in der Konfiguration aktiviert wurde und somit die initiale Konsole bis weit in den Bootstrap-Prozess hinein verwendet wird, oder bei einer bevorstehenden Änderung, die den zs-Treiber dazu bringt, ein Platform-Gerät zu verwenden. Dies führt dazu, dass das Übergeben der Kontrolle an die Konsole erst stattfindet, nachdem andere Kernel-Threads bereits gestartet wurden, und der Kernel hängt bei:
pid_max: default: 32768 minimum: 301
oder etwas später, aber immer vor dem Ausdrucken von:
cblist_init_generic: Setting adjustable number of callback queues.
Es scheint, dass nur der Einstiegspunkt prom_printf() betroffen ist. Von allen anderen verdrahteten Einstiegspunkten werden lediglich rex_slot_address() und rex_gettcinfo() aus einem Kernel-Thread außer dem initialen Thread aufgerufen, spezifisch kernel_init(), und sie sind Blattfunktionen (Leaf-Funktionen), die nichts mit dem Stack zu tun haben; sie funktionierten seit der Einführung der 64-Bit-Unterstützung für diese Plattform im Jahr 2002 ohne Probleme.
Um dieses Problem anzugehen, wird dafür gesorgt, dass der Stack wie erforderlich nur für prom_printf() in der o32-Hülle umgeschaltet wird, indem call_o32() ein Zeiger auf einen Bereich des initdata-Speichers übergeben wird, der im CKSEG0-32-Bit-Kompatibilitätssegment platziert ist. Dabei wird beachtet, dass prom_printf() nur vom Konsolenausgabe-Handler und daher unter gehaltener Konsolen-Sperre (Console Lock) aufgerufen wird, was bedeutet, dass dieser Code nicht reentrant sein muss.
Andere Firmware-Einstiegspunkte können mit aktivierten Interrupts und ohne gehaltene Sperren aufgerufen werden und könnten daher erfordern, dass call_o32() reentrant ist. Sie lösen an dieser Stelle kein Problem aus und „wenn es kaputt ist, repariere es nicht“, also lassen wir sie einfach in Ruhe.
If you want to get best quality of vulnerability data, you may have to visit VulDB.