Ad

CVE-2026-72183

HIGH CVSS 3.1: 8,4 EPSS 0.17%
Обновлено 17 августа 2026
Linux
Параметр Значение
CVSS 8,4 (HIGH)
Поставщик Linux
Публичный эксплойт Нет

В ядре Linux устранена следующая уязвимость: точка выхода к морю: исправлен обход LANDLOCK_SCOPE_SIGNAL на пути SIGIO. LANDLOCK_SCOPE_SIGNAL должен препятствовать передаче сигнала изолированному процессу. процессы за пределами своей территории, не имеющей выхода к морю. Его можно обойти через асинхронный путь доставки SIGIO. Процесс в песочнице, владеющий любым файлом или сокетом, может вооружить его fcntl(fd, F_SETOWN, -pgid), fcntl(fd, F_SETSIG, SIGKILL) и O_ASYNC, поэтому что событие ввода-вывода заставляет ядро доставить выбранный сигнал в целая группа процессов.

Будучи главой списка задач своей группы процессов ( позиция по умолчанию сразу после fork()), эта группа также может содержать процесс, не изолированный в песочнице, который его запустил, например. начальник или охрана монитор. Таким образом, песочница может убивать процессы или сигнализировать о них. LANDLOCK_SCOPE_SIGNAL предназначен для защиты от этого. Область действия применяется в функции «hook_file_send_sigiotask()» в отношении сухопутного шлюза. домен, записанный во время F_SETOWN, а не действующий домен отправителя. control_current_fowner() решает, записывать ли этот домен, и пропускает запись его, когда цель владельца находится в группе потоков вызывающего абонента, что безопасно только для однозадачной цели (PIDTYPE_PID, PIDTYPE_TGID).

Для группы процессов (PIDTYPE_PGID) pid_task() возвращает только одного члена; запись пропускается всякий раз, когда этот участник делится тредом вызывающего абонента группу, а затемook_file_send_sigiotask() позволяет сигналу разветвляться вся группа без контроля. Запишите домен для каждой цели, не состоящей из одного процесса, чтобы область действия была применяется к каждому члену группы во время доставки. Эта запись необходима, но недостаточна сама по себе: ядро сигнализирует группе процессов через лидеров групп потоков ее членов и руководитель собственного процесса регистранта может нести другой Домен, не имеющий выхода к морю, чем родственный поток, вооруживший владельца. Domain_is_scoped() затем откажет этому лидеру, даже если он зафиксирует 18eb75f3af40 («не имеет выхода к морю: всегда разрешать сигналы между потоками тот же процесс») требует, чтобы была разрешена доставка того же процесса. ook_task_kill() позволяет избежать этого, оценивая Same_thread_group() в реальном времени, получатель; путь SIGIO вместо этого делегирует все решение единая проверка времени регистрации, которую не может выполнить разветвление группы процессов честь.

Также запишите группу тем регистранта рядом с его доменом и освободить его при доставке:ook_file_send_sigiotask() разрешает сигнал всякий раз, когда получатель принадлежит к собственному процессу регистранта, восстановление гарантии того же процесса при сохранении группы вне домена участники заблокированы. Прямой путь kill() (hook_task_kill) уже оценивает живой домен и не подвергается воздействию. [mic: проверьте pid_type раньше и улучшите комментарий, исправьте сообщение о фиксации, исправить форматирование комментариев]

Показать оригинальное описание (EN)

In the Linux kernel, the following vulnerability has been resolved: landlock: Fix LANDLOCK_SCOPE_SIGNAL bypass on the SIGIO path LANDLOCK_SCOPE_SIGNAL must prevent a sandboxed process from signaling processes outside its Landlock domain. It can be bypassed through the asynchronous SIGIO delivery path. A sandboxed process that owns any file or socket can arm it with fcntl(fd, F_SETOWN, -pgid), fcntl(fd, F_SETSIG, SIGKILL) and O_ASYNC, so that an I/O event makes the kernel deliver the chosen signal to the whole process group. As the head of its process group's task list (the default position right after fork()) that group can also hold the non-sandboxed process that launched it, e.g. a supervisor or a security monitor. The sandbox can thus kill or signal the processes LANDLOCK_SCOPE_SIGNAL is meant to protect from it. The scope is enforced in hook_file_send_sigiotask() against the Landlock domain recorded at F_SETOWN time, not the live domain of the sender. control_current_fowner() decides whether to record that domain and skips recording it when the fowner target is in the caller's thread group, which is safe only for a single-task target (PIDTYPE_PID, PIDTYPE_TGID). For a process group (PIDTYPE_PGID) pid_task() returns only one member; recording is skipped whenever that member shares the caller's thread group, and hook_file_send_sigiotask() then lets the signal fan out to the whole group unchecked. Record the domain for every non single-process target so the scope is enforced against each group member at delivery time. That recording is necessary but not sufficient on its own: the kernel signals a process group through its members' thread-group leaders, and the leader of the registrant's own process can carry a different Landlock domain than the sibling thread that armed the owner. domain_is_scoped() would then deny that leader, even though commit 18eb75f3af40 ("landlock: Always allow signals between threads of the same process") requires same-process delivery to be allowed. hook_task_kill() avoids this by evaluating same_thread_group() live, per recipient; the SIGIO path instead delegates the whole decision to a single registration-time check, which a process-group fan-out cannot honor. So also record the registrant's thread group next to its domain and exempt it at delivery: hook_file_send_sigiotask() allows the signal whenever the recipient belongs to the registrant's own process, restoring the same-process guarantee while keeping out-of-domain group members blocked. The direct kill() path (hook_task_kill) already evaluates the live domain and is unaffected. [mic: Check pid_type earlier and improve comment, fix commit message, fix comment formatting]

Характеристики атаки

Способ атаки
Локальный
Нужен локальный доступ
Сложность
Низкая
Легко эксплуатировать
Нужны права
Низкие
Нужны базовые права
Участие пользователя
Не требуется
Не нужно действие пользователя

Последствия

Конфиденциальность
Нет
Нет утечки данных
Целостность
Высокое
Полная модификация данных
Доступность
Высокое
Полный отказ в обслуживании

Строка CVSS v3.1