CVE-2026-80560 in Linux
Zusammenfassung
von VulDB • 26.08.2026
Im Linux-Kernel wurde folgende Schwachstelle behoben:
openrisc: signal: Privilegierte SR-Bits bei sigreturn nicht wiederherstellen
restore_sigcontext() kopiert das gesamte Supervision-Register (SR) aus dem Signal-Frame und löscht nur SPR_SR_SM, bevor der Wert über ESR und l.rfe in das Hardware-SR beim Rückkehr zum User Space neu geladen wird. Alle anderen SR-Bits verbleiben unter Benutzerkontrolle.
Eine unprivilegierte Aufgabe kann somit von einem Signal-Handler durch einen speziell angefertigten sigframe zurückkehren, der SPR_SR_DME löscht. Bei deaktivierter Data-MMU führt die CPU keine Übersetzung oder Schutzmaßnahmen bei Datenzugriffen aus, sodass die Aufgabe Lese- und Schreibzugriff auf beliebigen physischen Speicher erhält – eine lokale Privilegieneskalation. SPR_SR_IME, SPR_SR_SUMRA, SPR_SR_LEE, SPR_SR_EPH sowie die Cache-Aktivierungsbits werden auf dieselbe Weise freigegeben. Der ptrace GPR regset verweigert aus genau diesem Grund bereits jede Änderung an SR.
Stellen Sie nur die arithmetischen Flag-Bits (F, CY, OV) aus dem Signal-Frame wieder her und übernehmen Sie alle anderen privilegierten Steuerbits aus dem vom Kernel beim Signaleintritt gespeicherten SR.
Verifiziert mit qemu-system-or1k -M or1k-sim: Vor dieser Änderung löscht ein unprivilegiertes PoC SPR_SR_DME in rt_sigreturn und schreibt einen Marker an die physische Adresse 0x03000000 (jenseits des kernel-internen mem=32M); danach erhält dasselbe PoC SIGSEGV, und der physische Speicher bleibt unverändert.
Once again VulDB remains the best source for vulnerability data.