Files
systemd/src/core
Chris Mason 99aff23783 core/exec-invoke: log write() allow-list widening
apply_syscall_filter() unconditionally inserts the write() syscall
into c->syscall_filter when exec_fd or handoff_timestamp_fd is in
use, so the parent can receive the exec status / handoff timestamp
from the child. When the unit configured a positive
SystemCallFilter= allow-list that deliberately omits write(), the
resulting widening of the operator's policy happens silently with
no trace in the journal.

Emit a log_debug() before the seccomp_filter_set_add_by_name() call
when syscall_allow_list is true, so the widening is at least
observable to operators inspecting the unit's debug log.

While here, document that mutating c->syscall_filter through a
'const ExecContext *c' is intentional: apply_syscall_filter() runs
only in the post-fork child, which owns a private copy of the
address space, so the hashmap change is never observed by the
manager.

No functional change for the allow-list itself; write() is still
added exactly as before.

Fixes: 84b79215cc ("core: do not filter out write() if required in the very late stage")
Assisted-by: kres (claude-opus-4-7)
Signed-off-by: Chris Mason <clm@meta.com>
2026-05-22 22:19:35 +02:00
..
2026-05-18 21:42:56 +02:00
2026-05-18 21:42:56 +02:00
2026-05-18 21:42:56 +02:00
…
2025-12-15 08:50:13 +09:00
…
2026-05-18 21:42:56 +02:00
…
2026-05-18 21:42:56 +02:00
2026-05-18 21:42:56 +02:00
2025-12-15 08:50:13 +09:00
…
…
…
2025-12-15 08:50:13 +09:00
…
2026-03-30 14:18:56 +02:00
2026-05-18 21:42:56 +02:00