{"id":25748,"date":"2026-09-18T04:31:50","date_gmt":"2026-09-17T20:31:50","guid":{"rendered":"https:\/\/www.54iter.cn\/?vuln=cve-2026-90339"},"modified":"2026-09-18T04:31:50","modified_gmt":"2026-09-17T20:31:50","slug":"cve-2026-90339","status":"publish","type":"vuln","link":"https:\/\/www.54iter.cn\/?vuln=cve-2026-90339","title":{"rendered":"CVE-2026-90339 &#8211; In the Linux kernel, the following vulnerability has been resolved:\n\npowerpc\/syscall: Fix"},"content":{"rendered":"<p>In the Linux kernel, the following vulnerability has been resolved:<\/p>\n<p>powerpc\/syscall: Fix syscall skip handling for seccomp and ptrace<\/p>\n<p>After enabling GENERIC_ENTRY on PowerPC, syscall_enter_from_user_mode()<br \/>\nreturns -1 as a sentinel to signal that seccomp or ptrace has intercepted<br \/>\nthe syscall and already set a return value via syscall_set_return_value().<br \/>\nsystem_call_exception() was not handling this sentinel, and since -1UL<br \/>\nis &gt;= NR_syscalls, the code fell into the out-of-range path and returned<br \/>\n-ENOSYS, overwriting the errno already placed in regs-&gt;gpr[3].<\/p>\n<p>The naive fix of checking r0 == -1L before the NR_syscalls bounds check<br \/>\nis ambiguous: a user legitimately calling syscall(-1) also produces r0 ==<br \/>\n-1L, and a tracer intercepting such a call would have its injected return<br \/>\nvalue silently discarded.<\/p>\n<p>Fix this by introducing a thread flag that is set whenever<br \/>\nsyscall_set_return_value() explicitly updates the return value. In<br \/>\nsystem_call_exception(), check and clear this flag before dispatching<br \/>\nthe syscall, and return the preset value directly when it is present.<br \/>\nThis ensures that an explicitly supplied return value always suppresses<br \/>\nsyscall execution, regardless of the syscall number.<\/p>\n<p>This handles all seccomp actions correctly:<\/p>\n<p>  &#8211; SECCOMP_RET_ERRNO, SECCOMP_RET_TRACE (no tracer), SECCOMP_RET_USER_NOTIF:<br \/>\n    all call syscall_set_return_value(), flag is set, injected value returned.<br \/>\n  &#8211; SECCOMP_RET_TRAP, SECCOMP_RET_KILL: call syscall_rollback() and deliver<br \/>\n    a signal; flag is not set, but the process is dying so the return value<br \/>\n    is irrelevant.<\/p>\n<p>The fix covers both ppc32 and ppc64 with no #ifdefs.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>In the Linux kernel, the following vulnerability has been resolved:<\/p>\n<p>powerpc\/syscall: Fix syscall skip handling for seccomp and ptrace<\/p>\n<p>After enabling GENERIC_ENTRY on PowerPC, syscall_enter_from_user<\/p>\n","protected":false},"template":"","meta":[],"categories":[],"tags":[],"class_list":["post-25748","vuln","type-vuln","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/www.54iter.cn\/index.php?rest_route=\/wp\/v2\/vuln\/25748","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.54iter.cn\/index.php?rest_route=\/wp\/v2\/vuln"}],"about":[{"href":"https:\/\/www.54iter.cn\/index.php?rest_route=\/wp\/v2\/types\/vuln"}],"wp:attachment":[{"href":"https:\/\/www.54iter.cn\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=25748"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.54iter.cn\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=25748"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.54iter.cn\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=25748"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}