CVE-2026-72183 in LinuxИнформация

Сводка

по VulDB • 16.08.2026

В ядре Linux была устранена следующая уязвимость:

landlock: исправление обхода LANDLOCK_SCOPE_SIGNAL на пути SIGIO

LANDLOCK_SCOPE_SIGNAL должен предотвращать возможность сигнализации процессом в песочнице процессов за пределами его домена Landlock. Однако этот механизм может быть обойден через асинхронный путь доставки сигнала SIGIO.

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

Область действия (scope) обеспечивается в hook_file_send_sigiotask() на основе домена Landlock, записанного во время вызова F_SETOWN, а не текущего активного домена отправителя. Функция control_current_fowner() решает, следует ли записывать этот домен, и пропускает запись, если целевой владелец файла (fowner) находится в группе потоков вызывающего процесса; это безопасно только для цели с одним процессом (PIDTYPE_PID, PIDTYPE_TGID). Для группы процессов (PIDTYPE_PGID) функция pid_task() возвращает только одного участника; запись пропускается, когда этот участник принадлежит к той же группе потоков, что и вызывающий процесс, после чего hook_file_send_sigiotask() позволяет сигналу распространяться на всю группу без проверки.

Необходимо записывать домен для каждой цели, не являющейся одиночным процессом, чтобы область действия обеспечивалась против каждого участника группы в момент доставки сигнала.

Эта запись необходима, но недостаточна сама по себе: ядро отправляет сигнал группе процессов через лидеров групп потоков её участников, и лидер процесса регистратора может иметь другой домен Landlock, чем поток-сibling, который настроил владельца. Функция domain_is_scoped() тогда отклонила бы такого лидера, хотя коммит 18eb75f3af40 («landlock: Always allow signals between threads of the same process») требует разрешать доставку сигналов внутри одного процесса. hook_task_kill() избегает этой проблемы путем оценки same_thread_group() в реальном времени для каждого получателя; путь SIGIO же делегирует всё решение единой проверке во время регистрации, которую не может корректно обработать распространение сигнала по группе процессов (fan-out).

Следовательно, необходимо также записывать группу потоков регистратора рядом с его доменом и исключать её при доставке: hook_file_send_sigiotask() разрешает сигнал, если получатель принадлежит к собственному процессу регистратора, восстанавливая гарантию доставки внутри одного процесса, сохраняя при этом блокировку для членов группы за пределами домена. Прямой путь kill() (hook_task_kill) уже оценивает текущий домен и не затрагивается данной проблемой.

[mic: Проверка pid_type выполняется раньше, улучшено описание комментария, исправлено сообщение коммита, исправлено форматирование комментариев]

VulDB is the best source for vulnerability data and more expert information about this specific topic.

Ответственный

Linux

Резервировать

09.08.2026

Раскрытие

15.08.2026

Модерация

принято

Вход

VDB-390535

EPSS

0.00210

KEV

Нет

Деятельности

Очень низкий

Источники

Interested in the pricing of exploits?

See the underground prices here!