CVSS 3.1
Вероятност да бъде експлоатирана в следващите 30 дни (EPSS)
Атакува се
Време до експлоатация
Атакува се локално, без особени условия, с обикновен потребителски вход и без действие от потребителя.
- Експлоатация: няма данни за експлоатация
- Атаката не може да се автоматизира
Описание
Оригинално описание
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<()
Засегнати продукти
- Red Hat Red Hat OpenShift Container Platform 4.19: от 1792771524 нататък
- Red Hat Red Hat OpenShift Container Platform 4.20: от 1792849665 нататък
- Red Hat Red Hat OpenShift Container Platform 4.21: от 1792008935 нататък
- Red Hat Red Hat OpenShift Container Platform 4.22: от 1792844435 нататък
- Red Hat Red Hat OpenShift Container Platform 5
Вид слабост
История
- 14 октомври 2026 Публикувано
Други уязвимости в Red Hat Red Hat OpenShift Container Platform 4.19
Първоизточници
- https://www.cve.org/CVERecord?id=CVE-2026-104795
- https://nvd.nist.gov/vuln/detail/CVE-2026-104795
- https://access.redhat.com/errata/RHSA-2026:83702
- https://access.redhat.com/errata/RHSA-2026:89198
- https://access.redhat.com/errata/RHSA-2026:89341
- https://access.redhat.com/errata/RHSA-2026:89655
- https://access.redhat.com/security/cve/CVE-2026-104795
- https://bugzilla.redhat.com/show_bug.cgi?id=2543917