{"id":6819,"date":"2026-09-04T18:49:18","date_gmt":"2026-09-04T10:49:18","guid":{"rendered":"https:\/\/www.54iter.cn\/?vuln=cve-2026-72183"},"modified":"2026-09-04T18:49:18","modified_gmt":"2026-09-04T10:49:18","slug":"cve-2026-72183","status":"publish","type":"vuln","link":"https:\/\/www.54iter.cn\/?vuln=cve-2026-72183","title":{"rendered":"CVE-2026-72183 [HIGH] &#8211; In the Linux kernel, the following vulnerability has been resolved:\n\nlandlock: Fix LANDLOC"},"content":{"rendered":"<p>In the Linux kernel, the following vulnerability has been resolved:<\/p>\n<p>landlock: Fix LANDLOCK_SCOPE_SIGNAL bypass on the SIGIO path<\/p>\n<p>LANDLOCK_SCOPE_SIGNAL must prevent a sandboxed process from signaling<br \/>\nprocesses outside its Landlock domain.  It can be bypassed through the<br \/>\nasynchronous SIGIO delivery path.<\/p>\n<p>A sandboxed process that owns any file or socket can arm it with<br \/>\nfcntl(fd, F_SETOWN, -pgid), fcntl(fd, F_SETSIG, SIGKILL) and O_ASYNC, so<br \/>\nthat an I\/O event makes the kernel deliver the chosen signal to the<br \/>\nwhole process group.  As the head of its process group&#8217;s task list (the<br \/>\ndefault position right after fork()) that group can also hold the<br \/>\nnon-sandboxed process that launched it, e.g. a supervisor or a security<br \/>\nmonitor.  The sandbox can thus kill or signal the processes<br \/>\nLANDLOCK_SCOPE_SIGNAL is meant to protect from it.<\/p>\n<p>The scope is enforced in hook_file_send_sigiotask() against the Landlock<br \/>\ndomain recorded at F_SETOWN time, not the live domain of the sender.<br \/>\ncontrol_current_fowner() decides whether to record that domain and skips<br \/>\nrecording it when the fowner target is in the caller&#8217;s thread group,<br \/>\nwhich is safe only for a single-task target (PIDTYPE_PID, PIDTYPE_TGID).<br \/>\nFor a process group (PIDTYPE_PGID) pid_task() returns only one member;<br \/>\nrecording is skipped whenever that member shares the caller&#8217;s thread<br \/>\ngroup, and hook_file_send_sigiotask() then lets the signal fan out to<br \/>\nthe whole group unchecked.<\/p>\n<p>Record the domain for every non single-process target so the scope is<br \/>\nenforced against each group member at delivery time.<\/p>\n<p>That recording is necessary but not sufficient on its own: the kernel<br \/>\nsignals a process group through its members&#8217; thread-group leaders, and<br \/>\nthe leader of the registrant&#8217;s own process can carry a different<br \/>\nLandlock domain than the sibling thread that armed the owner.<br \/>\ndomain_is_scoped() would then deny that leader, even though commit<br \/>\n18eb75f3af40 (&#8220;landlock: Always allow signals between threads of the<br \/>\nsame process&#8221;) requires same-process delivery to be allowed.<br \/>\nhook_task_kill() avoids this by evaluating same_thread_group() live, per<br \/>\nrecipient; the SIGIO path instead delegates the whole decision to a<br \/>\nsingle registration-time check, which a process-group fan-out cannot<br \/>\nhonor.<\/p>\n<p>So also record the registrant&#8217;s thread group next to its domain and<br \/>\nexempt it at delivery: hook_file_send_sigiotask() allows the signal<br \/>\nwhenever the recipient belongs to the registrant&#8217;s own process,<br \/>\nrestoring the same-process guarantee while keeping out-of-domain group<br \/>\nmembers blocked.  The direct kill() path (hook_task_kill) already<br \/>\nevaluates the live domain and is unaffected.<\/p>\n<p>[mic: Check pid_type earlier and improve comment, fix commit message,<br \/>\nfix comment formatting]<\/p>\n","protected":false},"excerpt":{"rendered":"<p>In the Linux kernel, the following vulnerability has been resolved:<\/p>\n<p>landlock: Fix LANDLOCK_SCOPE_SIGNAL bypass on the SIGIO path<\/p>\n<p>LANDLOCK_SCOPE_SIGNAL must prevent a sandboxed process from signaling<\/p>\n","protected":false},"template":"","meta":[],"categories":[],"tags":[],"class_list":["post-6819","vuln","type-vuln","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/www.54iter.cn\/index.php?rest_route=\/wp\/v2\/vuln\/6819","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=6819"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.54iter.cn\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=6819"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.54iter.cn\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=6819"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}