CVE-2026-44604
High · 7.0CVSS
7.0
EPSS
0.9%
Published
May 28, 2026
CISA due date
—
Cloudanix analysis
A malicious archive can make a vulnerable extraction tool run commands on the computer that opens it.
- Exploitation
- Requires User Interaction
- Attacker needs
- User Interaction
- Complexity
- High
- Impact
- Remote Code Execution
- Component
- Application
- Class
- Command Injection
- Remediation
- Upgrade
- Effort
- Medium
- Patch risk
- Low
What it actually does
The flaw is a local, user-assisted command injection in RPM's `rpmuncompress` extraction helper. When processing ZIP, 7z, or Ruby GEM archives into a destination directory, `rpmuncompress` incorporates the archive's top-level folder name into a shell command without adequate sanitization. If that folder name contains shell metacharacters, the shell interprets them as syntax rather than data, allowing attacker-controlled commands to run with the privileges of the user or process performing the extraction. Impact can include arbitrary code execution, data theft, file modification, credential access, or follow-on privilege escalation if the extraction is performed by a privileged packaging, build, automation, or administrative workflow.
Why it matters to the business
An attacker who can convince a user, developer, build system, or automation process to extract a malicious archive with a vulnerable RPM utility can run commands on that system. This can compromise developer workstations, CI/build infrastructure, package-processing pipelines, or administrative hosts, potentially leading to theft of source code, secrets, signing keys, build artifacts, or broader environment access. The CVSS score is high, but exploitation requires local execution and user or workflow interaction; the low EPSS score and lack of known KEV listing indicate no confirmed broad exploitation signal at this time, though the issue remains important wherever untrusted archives are processed.
How an attack unfolds
An attacker prepares a ZIP, 7z, or GEM archive whose top-level directory name includes shell metacharacters and an embedded command payload. The attacker then delivers the archive through a channel where it is likely to be unpacked by RPM tooling, such as a package-ingestion workflow, developer handoff, build pipeline, security analysis sandbox, or manual extraction process. When a vulnerable `rpmuncompress` invocation extracts the archive to a destination directory, the crafted folder name is inserted into a shell command. The shell evaluates the metacharacters and executes the injected command as the account running the extraction. The attacker can use this first command to write files, execute a script, retrieve a second-stage payload, exfiltrate local data, or establish persistence, limited by the privileges and network access of the extraction context.
How to fix it
Upgrade RPM to a vendor-provided version that fixes `rpmuncompress` command construction for archive extraction. No exact fixed versions were provided in the input, so use the patched RPM package from the relevant operating system or distribution advisory. Prioritize systems that process untrusted archives, including developer workstations, CI/CD runners, build servers, package mirrors, artifact scanners, and automation hosts. Until patched, avoid using `rpmuncompress` on untrusted ZIP, 7z, or GEM files; process archives in isolated sandboxes or containers with no secrets, minimal privileges, no write access to sensitive paths, and restricted outbound network access. Where possible, validate archive top-level names before extraction and reject names containing shell metacharacters such as semicolons, pipes, ampersands, backticks, command substitutions, redirection characters, or embedded newlines.
How to confirm the fix worked
Confirm that the installed RPM package comes from a vendor advisory that remediates this issue. Inventory systems with RPM installed and identify workflows that invoke `rpmuncompress` directly or indirectly for ZIP, 7z, or GEM extraction. On Linux systems, check package versions with distribution-native tooling such as `rpm -q rpm` or the platform package manager and compare against the vendor's fixed release. Validate exposure by reviewing whether untrusted archives can reach automated extraction paths. In a controlled non-production test environment, use a benign proof-of-concept archive with a harmless command such as writing a marker file, then confirm the patched utility treats the crafted top-level folder name as data and does not execute the command. Do not run exploit tests on production systems.
Typical attack path
- Create a ZIP, 7z, or GEM archive with a top-level folder name containing shell metacharacters and attacker-controlled command syntax.
- Deliver the archive to a target user or workflow that processes untrusted archives with RPM tooling.
- The victim or automation invokes vulnerable `rpmuncompress` extraction to a destination directory.
- `rpmuncompress` constructs a shell command using the unsanitized top-level folder name.
- The shell interprets the crafted folder name as command syntax and executes the injected command.
- The attacker uses the resulting code execution to access files, retrieve additional payloads, steal secrets, alter build outputs, or move laterally depending on local privileges.
How to detect it
Look for evidence that `rpmuncompress` executed child processes that are not normal decompression helpers, particularly shells, download tools, scripting runtimes, or commands that write to temporary, user, startup, or build directories. Useful log sources include EDR process telemetry, Linux auditd `execve` records, Sysmon for Linux process creation events, shell history where applicable, CI/CD job logs, package-processing logs, artifact scanner logs, filesystem events, and network proxy/DNS logs. Focus on executions involving ZIP, 7z, or GEM archives followed immediately by unexpected `/bin/sh -c`, `bash -c`, `curl`, `wget`, `nc`, `python`, `perl`, `ruby`, `chmod`, or writes to `/tmp`, `/var/tmp`, user home directories, CI workspaces, or service directories. Review suspicious archives for top-level directory names containing semicolons, pipes, ampersands, backticks, `$(` command substitution, redirection characters, or embedded newlines. Because no public exploit campaign or fixed payload is identified, detection should emphasize behavioral indicators rather than a single static signature.
- rpmuncompress
- /usr/lib/rpm/rpmuncompress
- /bin/sh -c
- bash -c
- ppid_comm="rpmuncompress"
- parent_process_name=rpmuncompress
- process.parent.name:rpmuncompress
- rpmuncompress zip
- rpmuncompress 7z
- rpmuncompress gem
- archive top-level name contains ;
- archive top-level name contains |
- archive top-level name contains &
- archive top-level name contains `
- archive top-level name contains $(
- archive top-level name contains >
- archive top-level name contains <
- rpmuncompress spawned curl
- rpmuncompress spawned wget
- rpmuncompress spawned python
- rpmuncompress spawned perl
- rpmuncompress spawned ruby
- rpmuncompress spawned nc
- rpmuncompress spawned chmod
What your security team should do
- Patch RPM from the applicable operating system or distribution vendor, prioritizing archive-processing, build, CI/CD, developer, and administrative systems.
- Temporarily block or sandbox processing of untrusted ZIP, 7z, and GEM archives until affected systems are patched.
- Search endpoint telemetry for `rpmuncompress` spawning shells or scripting interpreters, especially `/bin/sh`, `bash`, `curl`, `wget`, `python`, `perl`, or `ruby`.
- Review recent package-ingestion, build, and artifact-processing jobs for suspicious archives or unexpected outbound network connections during extraction.
- Add pre-extraction validation to reject archive top-level paths containing shell metacharacters or control characters.
- Run archive extraction jobs with least privilege, isolated workspaces, no long-lived credentials, and restricted egress.
- Monitor vendor advisories for exact fixed RPM versions and apply updates consistently across downstream images, containers, and golden templates.
The record
A command injection vulnerability was discovered in the `rpmuncompress` utility of RPM. When extracting certain archive formats (ZIP, 7z, GEM) to a specified destination directory, the tool inserts the archive's top-level folder name into a shell command without properly sanitizing it. A specially crafted archive containing shell metacharacters in its folder name can execute arbitrary commands as the user running the extraction.
Affected packages
| Ecosystem | Package | Introduced | Fixed |
|---|
Related vulnerabilities
- CVE-2026-96376 Improper Neutralization of Special Elements used in an OS Command ("OS Command… CWE-78
- CVE-2026-113732 virtualenv is a tool for creating isolated virtual python environments. CWE-78
- CVE-2026-113776 virtualenv is a tool for creating isolated virtual python environments. CWE-78
- CVE-2026-113726 virtualenv is a tool for creating isolated virtual python environments. CWE-78
- CVE-2026-113725 virtualenv is a tool for creating isolated virtual python environments. CWE-78
- CVE-2026-113722 virtualenv is a tool for creating isolated virtual python environments. CWE-78
- CVE-2026-112943 launch-editor allows users to open files with line numbers in editor from Node.js. CWE-78
- CVE-2026-112900 Pillow is a Python imaging library. CWE-78