From 079d94ecaeb63ff040a209e73a747cbc7b06346d Mon Sep 17 00:00:00 2001 From: Demi Marie Obenour Date: Fri, 9 Jan 2026 17:51:07 -0500 Subject: [PATCH] seccomp: Add gettid() to all seccomp filters It should always succeed and is apparently implicitly called by libc or some dependency somewhere. Signed-off-by: Demi Marie Obenour --- virtio-devices/src/seccomp_filters.rs | 1 + vmm/src/seccomp_filters.rs | 6 ++++++ 2 files changed, 7 insertions(+) diff --git a/virtio-devices/src/seccomp_filters.rs b/virtio-devices/src/seccomp_filters.rs index 07601b68a..5afd056a6 100644 --- a/virtio-devices/src/seccomp_filters.rs +++ b/virtio-devices/src/seccomp_filters.rs @@ -293,6 +293,7 @@ fn virtio_thread_common() -> Vec<(i64, Vec)> { (libc::SYS_epoll_wait, vec![]), (libc::SYS_exit, vec![]), (libc::SYS_futex, vec![]), + (libc::SYS_gettid, vec![]), (libc::SYS_madvise, vec![]), (libc::SYS_mmap, vec![]), (libc::SYS_mprotect, vec![]), diff --git a/vmm/src/seccomp_filters.rs b/vmm/src/seccomp_filters.rs index 8c0071fc7..55e153111 100644 --- a/vmm/src/seccomp_filters.rs +++ b/vmm/src/seccomp_filters.rs @@ -497,6 +497,7 @@ fn signal_handler_thread_rules() -> Result)>, Backend (libc::SYS_mmap, vec![]), (libc::SYS_munmap, vec![]), (libc::SYS_prctl, vec![]), + (libc::SYS_gettid, vec![]), (libc::SYS_recvfrom, vec![]), (libc::SYS_rt_sigprocmask, vec![]), (libc::SYS_rt_sigreturn, vec![]), @@ -536,6 +537,7 @@ fn pty_foreground_thread_rules() -> Result)>, Backend (libc::SYS_rt_sigreturn, vec![]), (libc::SYS_sched_yield, vec![]), (libc::SYS_setsid, vec![]), + (libc::SYS_gettid, vec![]), (libc::SYS_sigaltstack, vec![]), (libc::SYS_write, vec![]), #[cfg(debug_assertions)] @@ -787,6 +789,7 @@ fn vcpu_thread_rules( (libc::SYS_exit, vec![]), (libc::SYS_epoll_ctl, vec![]), (libc::SYS_fstat, vec![]), + (libc::SYS_gettid, vec![]), (libc::SYS_futex, vec![]), (libc::SYS_getrandom, vec![]), (libc::SYS_getpid, vec![]), @@ -847,6 +850,7 @@ fn http_api_thread_rules() -> Result)>, BackendError> (libc::SYS_epoll_wait, vec![]), (libc::SYS_exit, vec![]), (libc::SYS_fcntl, vec![]), + (libc::SYS_gettid, vec![]), (libc::SYS_futex, vec![]), (libc::SYS_getrandom, vec![]), (libc::SYS_ioctl, create_api_ioctl_seccomp_rule()?), @@ -881,6 +885,7 @@ fn dbus_api_thread_rules() -> Result)>, BackendError> (libc::SYS_dup, vec![]), (libc::SYS_epoll_ctl, vec![]), (libc::SYS_exit, vec![]), + (libc::SYS_gettid, vec![]), (libc::SYS_futex, vec![]), (libc::SYS_getrandom, vec![]), (libc::SYS_madvise, vec![]), @@ -905,6 +910,7 @@ fn event_monitor_thread_rules() -> Result)>, BackendE Ok(vec![ (libc::SYS_brk, vec![]), (libc::SYS_close, vec![]), + (libc::SYS_gettid, vec![]), (libc::SYS_futex, vec![]), (libc::SYS_landlock_create_ruleset, vec![]), (libc::SYS_landlock_restrict_self, vec![]),