Findings

CVE-2026-104795

The insights-runtime-extractor runs as a privileged DaemonSet ( ) that scans container processes for runtime fingerprinting.

Published Oct 14, 2026 · updated Oct 14, 2026

The insights-runtime-extractor runs as a privileged DaemonSet ( ) that scans container processes for runtime fingerprinting. When scanning a container, the coordinator: 1. **fork()s** a child process 2. **setns()** into the target container's PID and mount namespaces 3. **fchdir()** back to an orphaned FD pointing at the extractor's own root filesystem (where is hostPath-mounted) 4. Calls **only ** — changing the effective UID but leaving the **real UID and saved-set-UID at 0** and **retaining the permitted capability set** 5. The guard inspects only the Effective capability set (so it passes), and is **skipped entirely when the target runs as uid 0** 6. The fingerprint invokes with — the target's argv[0], read from and **fully controlled by the workload** 7. calls — executing the **workload's own binary** inside the workload's mount namespace while **ruid=0 in the host user namespace** The executed process can call to restore full root with , and inherits the orphaned cwd which resolves into the extractor container's filesystem containing the host CRI-O socket. ## Affected Code ### 1. Insufficient privilege drop (Rust — extractor coordinator) **File:** ### 2. Execution of untrusted binary (Go — fingerprint) **File:** ### 3. Workload-controlled path forwarded (Rust — version_executable) **File:** ## Attack Pattern **Attacker:** Any tenant able to schedule a pod (unprivileged, any namespace) **Victim:** The node running the insights-runtime-extractor DaemonSet **Trigger:** Automatic — the DaemonSet scans all container processes on the node **Attack sequence:** 1. Attacker creates a pod whose process name matches a configured versioned-executable pattern ( , , , , or contains ) 2. The pod's main binary (at the path matching argv[0]) is a malicious executable that calls to restore root 3. When the insights operator triggers a scan, the DaemonSet forks, enters the attacker's mount namespace, and executes the attacker's binary with ruid=0 4. The attacker's code regains f

Timeline

Detection, updates, and resolution for this record.

  1. Oct 14, 2026 · NIST NVD

    Detected

    The insights-runtime-extractor runs as a privileged DaemonSet ( ) that scans container processes for runtime fingerprinting. When scanning a container, the coordinator: 1. **fork()s** a child process 2. **setns()** into the target container's PID and mount namespaces 3. **fchdir()** back to an orphaned FD pointing at the extractor's own root filesystem (where is hostPath-mounted) 4. Calls **only *

  2. Oct 14, 2026 · NIST NVD

    Updated

    The insights-runtime-extractor runs as a privileged DaemonSet ( ) that scans container processes for runtime fingerprinting. When scanning a container, the coordinator: 1. **fork()s** a child process 2. **setns()** into the target container's PID and mount namespaces 3. **fchdir()** back to an orphaned FD pointing at the extractor's own root filesystem (where is hostPath-mounted) 4. Calls **only *

Sources

  • CVE.orgCVE-2026-104795

    Official CVE identifier

    cve.org
  • NIST NVDCVE-2026-104795

    The insights-runtime-extractor runs as a privileged DaemonSet ( ) that scans container processes for runtime fingerprinting. When scanning a container, the coordinator: 1. **fork()s** a child process 2. **setns()** into the target container's PID and mount namespac

    nvd.nist.gov

References