Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessLocal user crafts invalid UTF-8 environment variable
-
DeliveryInjects variable into vulnerable printenv scope
-
ExploitRuns printenv to verify evasion
-
ExecutionAdministrator checks printenv output
-
PersistMalicious variable silently omitted
-
ImpactAttack evades detection
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A10:2025 - Mishandling of Exceptional Conditions
ASVS 5.0
V16 - Security Logging and Error Handling Unusual condition handling
|
| Exploitation Conditions | Exploitation requires the following specific conditions: (1) the target system must be running uutils coreutils printenv utility version before 0.6.0, not the standard GNU coreutils or other printenv implementations; (2) the attacker must have local user-level access to the target system (unprivileged account, PR:L from CVSS); (3) the attacker must be able to inject or set environment variables in a context where a subsequent process or administrator invokes printenv to inspect them (such as in a user shell session or through cron/systemd user services); (4) the malicious environment variable must contain at least one byte sequence that is invalid UTF-8 to trigger the evasion; and (5) the administrator or security tool must rely exclusively on printenv output for environment auditing without supplementary inspection methods. Systems using GNU coreutils (the standard implementation on most Linux distributions) are NOT affected by this vulnerability. Environments using alternative environment inspection methods (procfs, strace, kernel audit frameworks) are not vulnerable to detection evasion even if uutils coreutils is installed, because those methods retrieve raw bytes without UTF-8 filtering. |
| Impact | The CVSS score of 4.4 with AV:L/AC:L/PR:L indicates localized attack surface requiring unprivileged user execution with low complexity. SSVC data confirms proof-of-concept availability (Exploitation: poc) but marks the attack as non-automatable (Automatable: no), with only partial technical impact. This scoring profile suggests the vulnerability is primarily a detection evasion mechanism rather than a high-severity code execution vector. Real-world risk depends on deployment context: the threat is significant only when an attacker already has local system access and can inject malicious LD_PRELOAD or similar variables, and when administrators depend on printenv output for security auditing. The non-automatable classification implies that exploitation requires deliberate, targeted setup rather than widespread scripted attacks. The absence of KEV (CISA Known Exploited Vulnerabilities) listing despite POC availability suggests limited real-world exploitation to date. For most organizations running uutils coreutils, the risk is moderate and tied to the degree of reliance on printenv for environment monitoring - infrastructure already using other inspection methods (strace, procfs, etc.) would see minimal incremental risk from this specific gap. |
| Exploit ScenarioDerived | An unprivileged local user crafts a malicious environment variable containing invalid UTF-8 sequences in a strategic variable name like LD_PRELOAD, embedding an encoded reference to a compromised shared library. The user launches a privileged application in their session or via a privilege-escalation vector. When administrators run printenv to audit the environment for suspicious injection, the malicious LD_PRELOAD entry is silently omitted from the output due to the UTF-8 decoding failure, allowing the injection to evade detection. The library is then loaded into the privileged process, enabling code execution within that privilege context. Proof-of-concept code demonstrating this evasion is available at https://github.com/uutils/coreutils/issues/9701. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Apr 23, 2026
The printenv utility in uutils coreutils versions before 0.6.0 silently omits environment variables containing invalid UTF-8 byte sequences, allowing adversarial environment variables such as malicious LD_PRELOAD values to evade inspection by administrators and security auditing tools. This evasion capability enables library injection and other environment-based attacks to bypass detection, affecting systems that rely on printenv for security auditing or environment validation. The vulnerability requires local access with unprivileged user privileges (PR:L) to exploit and carries a CVSS score of 4.4 with confirmed proof-of-concept availability.
RemediationAI
Vendor-released patch: uutils coreutils version 0.6.0 and later. Upgrade the affected package to version 0.6.0 or newer from the official repository at https://github.com/uutils/coreutils/releases/tag/0.6.0. For systems unable to upgrade immediately, implement compensating controls by replacing reliance on printenv for security auditing with alternative introspection methods: use /proc/[pid]/environ on Linux (which preserves raw bytes), invoke strace to observe environment setup at process launch, or employ LSM-based auditing (AppArmor, SELinux) to monitor environment variable injection attempts. These alternatives provide byte-accurate environment inspection and detect injection attempts even when printenv would be blind. The trade-off is increased operational complexity and resource consumption (strace on production systems). Until patched, assume that printenv output on systems running uutils coreutils is incomplete and should not be the sole basis for environment validation decisions.
Affected VersionsENISA
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 2 packages in cargo
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
The vulnerability stems from improper handling of UTF-8 validation in the printenv utility. While POSIX standards explicitly permit arbitrary byte sequences in environment variables, uutils coreutils implements a validation layer that silently discards environment entries failing UTF-8 decoding rather than printing raw bytes as-is. This behavior violates the principle of complete environment introspection and creates a blind spot for security tools. The underlying issue is classified under CWE-754 (Improper Check for Unusual or Exceptional Conditions), reflecting the failure to handle the exceptional but valid case of non-UTF-8 environment data. The affected product is the uutils coreutils project (CPE: cpe:2.3:a:uutils:coreutils:*:*:*:*:*:*:*:*), a Rust-based rewrite of GNU coreutils utilities that aims for POSIX compliance but diverges in this edge case.
Know when Coreutils gets its next vulnerability
- Watch products and get an email when something new is published
- Check this CVE against your own stack and servers
- Exploit and PoC references, threat intelligence from 22 sources
No credit card · 7-day full trial
Severity by source
AV:L/AC:L/PR:L/UI:N/S:U/C:L/I:L/A:N
Primary rating from NVD · only source for this CVE.
CVSS VectorNVD
Lifecycle Timeline
2DescriptionCVE.org
The printenv utility in uutils coreutils fails to display environment variables containing invalid UTF-8 byte sequences. While POSIX permits arbitrary bytes in environment strings, the uutils implementation silently skips these entries rather than printing the raw bytes. This vulnerability allows malicious environment variables (e.g., adversarial LD_PRELOAD values) to evade inspection by administrators or security auditing tools, potentially allowing library injection or other environment-based attacks to go undetected.
Threat Intelligence Overview
How this decision was reached
The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
Code injection occurs when an application accepts user input and passes it directly into a language interpreter or evaluator without proper sanitization.
The parse_datetime function in GNU coreutils allows remote attackers to cause a denial of service (crash) or possibly ex
Privilege escalation to root in uutils coreutils chroot utility allows low-privileged local attackers with write access
Local privilege escalation in uutils coreutils before 0.10.0: the `install` utility applies a requested setuid/setgid mo
Recursive chmod operations can bypass --preserve-root protection in uutils coreutils versions prior to 0.6.0, allowing l
Local privilege escalation in uutils coreutils mkfifo allows authenticated users to downgrade permissions on arbitrary f
Privilege escalation in uutils coreutils mkfifo utility allows local attackers with low privileges to manipulate file pe
Bypass of --preserve-root protection in uutils coreutils rm utility allows local users to recursively delete the root fi
The mv utility in uutils coreutils improperly expands symbolic links instead of preserving them during moves across file
The cp utility in uutils coreutils improperly preserves setuid and setgid bits when the chown operation fails during fil
The split utility in uutils coreutils contains a time-of-check to time-of-use (TOCTOU) race condition that allows local
A time-of-check to time-of-use (TOCTOU) race condition in the mv utility of uutils coreutils during cross-device move op
The touch utility in uutils coreutils suffers from a Time-of-Check to Time-of-Use (TOCTOU) race condition that allows lo
EUVD-2026-25014
GHSA-7259-cwhx-3xx3
NVD
CVE.org
EPSS
Vulnrichment
Exploit-DB