CVE-2026-35338: uutils coreutils chmod Path Traversal Bypass of --preserve-root

Published Apr 22, 2026
·
Updated

Chmoder::chmod() only compares the literal argument against Path::new("/"), so the --preserve-root guard is bypassed by any path that resolves to root — a symlink to / or simply /../.

if self.recursive && self.preserveroot && file == Path::new("/") { return Err(ChmodError::PreserveRoot("/".tostring()).into()); }

PoC — recursively chmods the entire filesystem to 000 despite --preserve-root:

chmod -R --preserve-root 000 /../ -v

Impact: --preserve-root is the documented safeguard against destructive recursive operations on /. Bypassing it allows chmod -R to alter permissions across the whole filesystem, causing a complete system breakdown. Recommendation: canonicalize the target path before comparing against root.

Remediation: Acknowledged by Canonical; fixed in commit 413055b3.

--- Reported by Zellic in the uutils coreutils Program Security Assessment (prepared for Canonical, Jan 20 2026), audited commit 3a07ffc5a9bd4c283e75afa548ba1f1957bad242. Finding 3.1. Credit: Zellic.

Other sources

A vulnerability in the chmod utility of uutils coreutils allows users to bypass the --preserve-root safety mechanism. The implementation only validates if the target path is literally / and does not canonicalize the path. An attacker or accidental user can use path variants such as /../ or symbolic links to execute destructive recursive operations (e.g., chmod -R 000) on the entire root filesystem, leading to system-wide permission loss and potential complete system breakdown.

MITRE

Affected Software

3 affected componentsFixes available
uutils uutils coreutils
uutils Coreutils Rust<0.6.0
rust/uu_chmod<0.6.0
0.6.0

Remediation

Recommended actions to resolve this vulnerability, in priority order.

  1. Upgrade

    Upgrade rust/uu_chmod to a version that resolves this vulnerability.

    Fixed in 0.6.0
  2. Upgrade

    Upgrade uutils coreutils chmod to a version that resolves this vulnerability.

    Patch 413055b3
  3. Upgrade

    Upgrade uutils coreutils chmod to a version that resolves this vulnerability.

    Patch 3a07ffc5a9bd4c283e75afa548ba1f1957bad242
  4. Configuration

    Update Chmoder::chmod() to canonicalize the resolved target path before performing the --preserve-root check, so paths like /../ or a symlink to / cannot bypass the guard.

    uutils coreutils chmod (Chmoder::chmod) --preserve-root path comparison logic = Canonicalize the target path before comparing against root; reject when resolved target is /, not only when the literal argument equals Path::new("/")

Event History

Apr 22, 2026
CVE Published
via MITRE·04:07 PM
Data Sourced
via MITRE·04:07 PM
DescriptionSeverityWeakness
Data Sourced
via NVD·05:16 PM
RemedyDescriptionSeverityWeaknessAffected Software
Jul 6, 2026
Advisory Published
via GitHub·05:41 PM
Data Sourced
via GitHub·05:41 PM
DescriptionSeverityWeaknessAffected Software

Frequently Asked Questions

1

What is the severity of CVE-2026-35338?

CVE-2026-35338 is classified as a medium severity vulnerability due to its potential for path traversal attacks.

2

How do I fix CVE-2026-35338?

To fix CVE-2026-35338, upgrade to the latest version of uutils coreutils that addresses this vulnerability.

3

What type of attack can CVE-2026-35338 facilitate?

CVE-2026-35338 can facilitate path traversal attacks allowing an unauthorized user to alter sensitive files.

4

Who is affected by CVE-2026-35338?

Users of uutils coreutils versions prior to the fix are affected by CVE-2026-35338.

5

Is CVE-2026-35338 a local or remote vulnerability?

CVE-2026-35338 is considered a local vulnerability, as it requires local access to execute the chmod command.

Contact

SecAlerts Pty Ltd.
132 Wickham Terrace
Fortitude Valley,
QLD 4006, Australia
info@secalerts.co
By using SecAlerts services, you agree to our services end-user license agreement. This website is safeguarded by reCAPTCHA and governed by the Google Privacy Policy and Terms of Service. All names, logos, and brands of products are owned by their respective owners, and any usage of these names, logos, and brands for identification purposes only does not imply endorsement. If you possess any content that requires removal, please get in touch with us.
© 2026 SecAlerts Pty Ltd.
ABN: 70 645 966 203, ACN: 645 966 203