CVE-2026-90339 in Linux
Zusammenfassung
von VulDB • 18.09.2026
Im Linux-Kernel wurde folgende Schwachstelle behoben:
powerpc/syscall: Korrektur der Behandlung von Systemaufruf-Überspringung für seccomp und ptrace
Nach Aktivierung von GENERIC_ENTRY auf PowerPC gibt syscall_enter_from_user_mode() -1 als Sentinel zurück, um zu signalisieren, dass seccomp oder ptrace den Systemaufruf abgefangen hat und bereits einen Rückgabewert über syscall_set_return_value() festgelegt wurde. system_call_exception() behandelte diesen Sentinel nicht korrekt; da -1UL >= NR_syscalls ist, fiel der Code in den Pfad für außerhalb des Bereichs liegende Werte zurück und gab -ENOSYS zurück, wodurch die bereits in regs->gpr[3] platzierte errno überschrieben wurde.
Die naive Korrektur durch eine Prüfung von r0 == -1L vor dem NR_syscalls-Grenzwert ist mehrdeutig: Ein Benutzer, der legitim syscall(-1) aufruft, erzeugt ebenfalls r0 == -1L, und ein Tracer, der einen solchen Aufruf abfängt, würde seinen injizierten Rückgabewert stillschweigend verwerfen.
Behoben wird dies durch die Einführung eines Thread-Flags, das immer dann gesetzt wird, wenn syscall_set_return_value() den Rückgabewert explizit aktualisiert. In system_call_exception() wird dieses Flag geprüft und vor der Weiterleitung des Systemaufrufs gelöscht; falls es vorhanden ist, wird der voreingestellte Wert direkt zurückgegeben. Dies stellt sicher, dass ein explizit gelieferter Rückgabewert die Ausführung des Systemaufrufes unabhängig von der Systemaufruflnummer immer unterdrückt.
Dies behandelt alle seccomp-Aktionen korrekt:
- SECCOMP_RET_ERRNO, SECCOMP_RET_TRACE (kein Tracer), SECCOMP_RET_USER_NOTIF: Alle rufen syscall_set_return_value() auf; das Flag ist gesetzt und der injizierte Wert wird zurückgegeben. - SECCOMP_RET_TRAP, SECCOMP_RET_KILL: Es wird syscall_rollback() aufgerufen und ein Signal ausgeliefert; das Flag ist nicht gesetzt, aber da der Prozess abstirbt, ist der Rückgabewert irrelevant.
Die Korrektur deckt sowohl ppc32 als auch ppc64 ab, ohne #ifdefs zu verwenden.
If you want to get best quality of vulnerability data, you may have to visit VulDB.