目标达成 感谢每一位支持者 — 我们达成了 100% 目标!

目标: 1000 元 · 已筹: 1359 元

100%

CVE-2026-104795— Insights-runtime-extractor: insights-runtime-extractor: container escape via privileged binary execution

一分钟漏洞结论

影响对象
Red Hat Red Hat OpenShift Container Platform 4
利用判断
尚无明确在野利用证据,仍需结合暴露面评估
建议动作
优先检查厂商安全公告和参考链接中的修复版本;无法立即升级时,限制受影响服务暴露并加强监测。

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

CVSS 8.8 · High
获取后续新漏洞提醒 登录后订阅

一、 漏洞 CVE-2026-104795 基础信息

漏洞信息

Shenlong is analyzing...


对漏洞内容有疑问?看看神龙的深度分析是否有帮助!
查看神龙十问 ↗

尽管我们使用了先进的大模型技术,但其输出仍可能包含不准确或过时的信息。神龙努力确保数据的准确性,但请您根据实际情况进行核实和判断。

Vulnerability Title
Insights-runtime-extractor: insights-runtime-extractor: container escape via privileged binary execution
来源: CVE Program / CVE List V5
Vulnerability Description
The insights-runtime-extractor runs as a privileged DaemonSet (`hostPID: true`) 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 `/crio.sock` is hostPath-mounted) 4. Calls **only `seteuid(target_uid)`** — changing the effective UID but leaving the **real UID and saved-set-UID at 0** and **retaining the permitted capability set** 5. The `check_no_privileged_perms()` guard inspects only the Effective capability set (so it passes), and is **skipped entirely when the target runs as uid 0** 6. The `VersionExecutable` fingerprint invokes `fpr_kind_executable` with `process.command_line[0]` — the target's argv[0], read from `/proc/<pid>/cmdline` and **fully controlled by the workload** 7. `fpr_kind_executable` calls `exec.Command(executable, "--version").Output()` — 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 `setuid(0)` to restore full root with `CAP_SYS_ADMIN`, 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:** `extractor/src/insights_runtime_extractor.rs` ```rust // Lines 139-146 — seteuid-only drop, guard skipped for root containers join_process_namespaces(process.pid)?; change_dir(current_dir); switch_user(*process.uid)?; if *process.uid != 0 { perms::check_no_privileged_perms() .expect("Must not have privileged permissions to run fingerprints"); } fingerprint::run_fingerprints(&config, out_dir, &process); ``` ```rust // Lines 182-185 — only effective UID changed; ruid/suid stay 0 fn switch_user(uid: u32) -> Result<(), ScannerError> { debug!("... Becoming user: {uid}"); seteuid(uid.into()).map_err(|e| ScannerError::Errno(e)) } ``` ### 2. Execution of untrusted binary (Go — fingerprint) **File:** `fingerprints/pkg/utils/file.go` ```go // Lines 75-80 — executes a path taken verbatim from workload's argv[0] func GetExecutableVersionOutput(executable string) (string, error) { out, err := exec.Command(executable, "--version").Output() if err != nil { return "", err } return string(out), nil } ``` ### 3. Workload-controlled path forwarded (Rust — version_executable) **File:** `version_executable.rs` ```rust // Lines 29-34 — workload-controlled command_line[0] forwarded to fingerprint return Some(vec![ fpr_kind_executable, out_dir.to_string(), String::from(&process.command_line[0]), String::from(&version_executable.runtime_kind_name), ]); ``` ## 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 (`node`, `python`, `python3`, `MainThread`, or contains `java`) 2. The pod's main binary (at the path matching argv[0]) is a malicious executable that calls `setuid(0)` 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 full root with `CAP_SYS_ADMIN` in the host user namespace 5. The inherited cwd contains the host CRI-O socket → full node compromise
来源: CVE Program / CVE List V5
CVSS Information
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:H
来源: CVE Program / CVE List V5
Vulnerability Type
带着不必要的权限执行
来源: CVE Program / CVE List V5

受影响产品

厂商 产品 影响版本 CPE 订阅
Red Hat Red Hat OpenShift Container Platform 4 - cpe:/a:redhat:openshift:4

二、漏洞 CVE-2026-104795 的公开POC

# POC 描述 源链接 神龙链接
AI 生成 POC 高级

未找到公开 POC。

登录以生成 AI POC

三、漏洞 CVE-2026-104795 的情报信息

请登录查看更多情报信息。

CVE-2026-104795 其他参考 (2)

同批安全公告 · Red Hat · 2026-10-14 · 共 10 条

CVE-2026-86476 8.4 HIGH Gstreamer1-plugins-base: gst-plugins-base: heap buffer overflow via unvalidated gstvideome
CVE-2026-90954 7.8 HIGH Busybox: busybox: dpkg-deb extraction-root escape via per-ar-member deferred symlink flush
CVE-2026-88829 7.2 HIGH Busybox: busybox: http request smuggling via pipelined requests in httpd reverse proxy
CVE-2026-100229 6.5 MEDIUM Gstreamer1-plugins-bad-free: gstreamer1-plugins-bad-free: out-of-bounds write in gst_h266_
CVE-2026-100231 6.1 MEDIUM Gstreamer1-plugins-bad-free: gstreamer1-plugins-bad-free: heap out-of-bounds write in asfm
CVE-2026-109971 4.7 MEDIUM Clevis: clevis: pkcs#11 token pin exposed on command line via pkcs11-tool
CVE-2026-109970 4.7 MEDIUM Clevis: clevis: pkcs#11 token pin written to world-readable file
CVE-2026-109969 4.7 MEDIUM Clevis: clevis: no authentication on pkcs#11 af_unix sockets allows key injection under pe
CVE-2026-88842 3.3 LOW Busybox: busybox: dpkg stale field_start pointer causes out-of-bounds read and status file

IV. Related Vulnerabilities

V. Comments for CVE-2026-104795

暂无评论


发表评论