We can now point the blame out our own docker configuration. This changelog entry popped up in a Google search and indicated a problem in seccomp.json:
Background
Due to recent runc security fixes (for CVE-2025-31133, CVE-2025-52881, and CVE-2025-52565), you must manually update your agentsā seccomp profiles so that they will operate properly.
Without this update, your agents will eventually encounter the following error:
unsafe procfs detected: openat2 fsmount:fscontext:proc/thread-self/fd/: <err>
Our docker configurationās seccomp-profile is pointed at /etc/docker/seccomp.json;
[me@host ~]$ sudo cat /etc/docker/daemon.json
{
[...]
"seccomp-profile" : "/etc/docker/seccomp.json",
[...]
}
Iām not sure what provides/etc/docker/seccomp.json, but itās not directly provided by an RPM:
[me@host ~]$ rpm -q -f /etc/docker/seccomp.json
file /etc/docker/seccomp.json is not owned by any package
The containers-common RPM provides a different /usr/share/containers/seccomp.json
[me@host ~]$ dnf provides '*/seccomp.json'
[...]
containers-common-2:1-8.el9.noarch : Common configuration and documentation for containers
Repo : AppStream_local
Matched from:
Filename : /usr/share/containers/seccomp.json
[...]
/usr/share/containers/seccomp.json seems to have a lot more system calls listed in .syscalls.[].names than /etc/docker/seccomp.json, among them openat2:
[me@host ~]$ jq -r -s '[(.[0], .[1]) | .syscalls | map(.names) | add | unique] | .[1] - [.0]' /etc/docker/seccomp.json /usr/share/containers/seccomp.json
[
[...]
"openat2",
[...]
]
So we pointed seccomp-profile to /usr/share/containers/seccomp.json:
[me@host ~]$ cat /etc/docker/daemon.json
{
"seccomp-profile" : "/usr/share/containers/seccomp.json",
[...]
}
And updated to the latest containerd.io:
[me@host ~]$ rpm -q containerd.io
containerd.io-2.1.5-1.el9.aarch64
And restarted the docker service to get it to re-read /etc/docker/daemon.json. Now:
[me@host ~]$ docker run -i -t --rm dokken/centos-stream-9:sha-03eabbc /bin/bash
[root@a957ec0cd80d /]#
Long story short, seccomp.json hast to be modernized at least to include settings for the openat2 system call.