blob: 5cb1475c7ea8c91069b60dc023c6270d9bcb62cc [file] [log] [blame]
/* SPDX-License-Identifier: GPL-2.0-only */
/**
* DOC: erratum_2
*
* Erratum 2: Scoped signal handling
* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
*
* This fix addresses an issue where signal scoping was overly restrictive,
* preventing sandboxed threads from signaling other threads within the same
* process if they belonged to different domains. Because threads are not
* security boundaries, user space might assume that all threads within the same
* process can send signals between themselves (see :manpage:`nptl(7)` and
* :manpage:`libpsx(3)`). Consistent with :manpage:`ptrace(2)` behavior, direct
* interaction between threads of the same process should always be allowed.
* This change ensures that any thread is allowed to send signals to any other
* thread within the same process, regardless of their domain.
*
* Impact:
*
* This problem only manifests when the userspace process is itself using
* :manpage:`libpsx(3)` or an equivalent mechanism to enforce a Landlock policy
* on multiple already-running threads at once. Programs which enforce a
* Landlock policy at startup time and only then become multithreaded are not
* affected. Without this fix, signal scoping could break multi-threaded
* applications that expect threads within the same process to freely signal
* each other.
*/
LANDLOCK_ERRATUM(2)