☠️
EXFILTRATING
DATA...
01010111 10110010 00101001 11000110 01101100 10011011 00010001 11100101 01000010 10101111
[ <-- BACK_TO_SEARCH ]
Uutils logo [ WEBSITE ] [ VENDOR STATS ]
CVSS: 5.6 CVSS:3.1/AV:L/AC:L/PR:L/UI:R/S:U/C:N/I:H/A:L 🐛 CWE-22
👁️
Common Weakness Enumeration - Identifies the specific category of software weakness or flaw.

CVE-2026-35363

CVE-2026-35363 is a path traversal vulnerability in the `rm` utility of the uutils coreutils project (a Rust-based reimplementation of GNU coreutils).
📅 PUBLISHED: 2026-04-22 17:16 UTC 🔄 UPDATED: 2026-09-24 06:03 UTC
[ ZERO-DAY / UNPATCHED ] [ DEFENSE PATCH ↓ ]
💣 PoC: None
👁️
Proof of Concept - Indicates if functional exploit code is publicly available, drastically increasing the risk of immediate attacks.
🎯 EPSS: 0.17%
👁️
0.17% probability
4.1× above the median CVE
Tier: ELEVATED
30-day exploitation window · FIRST.org · updated daily
🥷 MITRE: T1083
👁️
MITRE ATT&CK Tactic - Describes the strategy hackers use to execute this attack.
Country: UK License: Commercial
VULNERABLE: UNKNOWN / CHECK VENDOR
CVSS VECTOR BREAKDOWN 5.6
AV: L Attack Vector Local
AC: L Attack Complexity Low
PR: L Privileges Required Low
UI: R User Interaction Required
S: U Scope Unchanged
C: N Confidentiality None
I: H Integrity High
A: L Availability Low
5.6
THREAT LEVEL
■ tracking this CVE ✓ independent patch confirmation ⧗ same-origin mirror (GHSA) ⚠ active exploitation verification policy →

Executive Summary

CVE-2026-35363 is a path traversal vulnerability in the rm utility of the uutils coreutils project (a Rust-based reimplementation of GNU coreutils). The flaw allows an attacker to bypass the built-in safeguard that prevents deletion of the current directory (.) or parent directory (..). By using paths with trailing slashes (e.g., ./ or .///), the safeguard is bypassed, and the command rm -rf ./ silently deletes all contents of the current directory. The utility also outputs a misleading "Invalid input" error, further obscuring the data loss. This vulnerability has a CVSS score of 5.6 (Medium) and is particularly dangerous in automated scripts or CI/CD pipelines where rm -rf ./ might be used.

⚡ AUTOMATE YOUR CVE INTELLIGENCE

This record — and 170,000+ others — are available via the ValtersIT API. One endpoint replaces five: NVD + GitHub CVE + CISA KEV + EPSS + Nuclei + Exploit-DB, unified.

›Patch confidence — UNVERIFIED to CONFIRMED, cross-referenced NVD + RHSA + Debian
›Exploit & PoC — poc_status, poc_url, has_exploit. Not in NVD.
›Shodan dorks — ready-made queries to find exposed vulnerable systems
›Detection rules — YARA · Wazuh · Elastic (all plans) · Sigma (Pro)
›pending_fields — know exactly which of 7 fields NVD hasn't processed yet
›Free backfill — data incomplete when you paid? Re-check within 30 days = 0 credits
PAYG €0.08/lookup Standard €19/mo (was €29) · 5k credits Pro €65/mo (was €99) · 20k credits FOUNDING PRICE · LOCKED FOR LIFE · ENDS 31 DEC 2026
[ FROM €19/MO ]
Free sandbox key available
No signup required

Supply Chain & Package Security

This vulnerability affects the uutils coreutils package, which is distributed via crates.io (Rust package registry) and is also available as a system package on some Linux distributions (e.g., Fedora, Arch Linux). Users who have installed uutils coreutils via cargo install coreutils or via a distribution package manager are affected. The package is a drop-in replacement for GNU coreutils, so it may be used in Docker images, CI/CD pipelines, or embedded systems. The fix is available in version 0.0.30.

CVSS Breakdown & Threat Level

  • Attack Vector (AV): Local (L) – Requires local access to execute the rm command.
  • Attack Complexity (AC): Low (L) – No special conditions required.
  • Privileges Required (PR): Low (L) – Attacker needs user-level access.
  • User Interaction (UI): None (N) – No user interaction needed beyond executing the command.
  • Scope (S): Unchanged (U) – The vulnerability does not cross trust boundaries.
  • Confidentiality (C): None (N) – No data exfiltration.
  • Integrity (I): High (H) – All files in the current directory are deleted.
  • Availability (A): High (H) – Data loss leads to denial of service.

Threat Level: Medium. The vulnerability is easy to exploit but requires local access. It is most dangerous in shared environments, automated scripts, or when combined with social engineering.

Deep Dive & Mechanics

The rm utility in uutils coreutils includes a safeguard that checks if the target path is exactly . or .. and refuses to delete them. However, the safeguard does not normalize paths before comparison. When a path like ./ or ./// is provided, the operating system treats it as equivalent to ., but the string comparison in the code fails to match the literal . or .. strings.

The vulnerable code path:

  1. User runs rm -rf ./
  2. The utility parses the argument ./
  3. The safeguard checks if the argument equals . or .. – it does not, so it passes.
  4. The rm utility proceeds to recursively delete all files and directories in the current directory.
  5. After deletion, the utility prints a misleading "Invalid input" error (likely from a different code path), confusing the user.

The fix involves canonicalizing the path (e.g., using std::fs::canonicalize or a custom normalization function) before performing the safeguard check.

Vulnerable vs. Patched Code

Vulnerable (simplified Rust pseudocode):

fn remove(path: &str) -> Result<()> {
    if path == "." || path == ".." {
        return Err("Refusing to remove current or parent directory");
    }
    // Proceed with deletion
    std::fs::remove_dir_all(path)?;
    Ok(())
}

Patched (simplified Rust pseudocode):

fn remove(path: &str) -> Result<()> {
    let canonical = std::path::Path::new(path)
        .canonicalize()
        .unwrap_or_else(|_| path.into());
    let canonical_str = canonical.to_string_lossy();
    if canonical_str == "." || canonical_str == ".." {
        return Err("Refusing to remove current or parent directory");
    }
    // Proceed with deletion
    std::fs::remove_dir_all(path)?;
    Ok(())
}

The patch normalizes the path using canonicalize() before the safeguard check, ensuring that ./ and ./// are correctly identified as the current directory.

Exploitation & Lab Setup

Red Team

Lab Setup:

  1. Install vulnerable uutils coreutils (version < 0.0.30) on a test Linux system.
  2. Create a test directory with sample files: mkdir /tmp/test && cd /tmp/test && touch file1.txt file2.txt
  3. Execute the exploit: rm -rf ./
  4. Observe that all files in /tmp/test are deleted, and the misleading "Invalid input" error is printed.

Exploit Command:

# In a directory with important files, run:
rm -rf ./

Automated Exploit (Bash script):

#!/bin/bash
# Exploit CVE-2026-35363 - Delete all files in current directory
echo "Exploiting CVE-2026-35363..."
rm -rf ./
echo "All files deleted. Check 'ls' to confirm."

Blue Team

Detection:

  • Monitor for rm commands with arguments containing trailing slashes (e.g., ./, .///).
  • Alert on rm -rf commands executed in sensitive directories (e.g., /home, /tmp, /var/www).
  • Look for the "Invalid input" error message in system logs immediately after a rm command.

Prevention:

  • Update uutils coreutils to version 0.0.30 or later.
  • Use GNU coreutils instead of uutils in production environments.
  • Implement command whitelisting or use safe-rm wrappers.
  • Enable filesystem snapshots (e.g., LVM, ZFS) for quick recovery.

Indicators of Compromise (IOCs)

  • Command Line: rm -rf ./ or rm -rf ./// (with any number of trailing slashes)
  • Log Entry: "Invalid input" error message in syslog or application logs immediately after a rm command.
  • File System: Sudden disappearance of all files in a directory without a corresponding rm command targeting specific files.
  • Process Tree: rm process with arguments containing ./ or similar patterns.

Detection Engineering

YARA Rule

rule CVE_2026_35363_rm_trailing_slash {
    meta:
        description = "Detects rm commands with trailing slashes that bypass safeguard"
        author = "Valters IT"
        date = "2026-01-01"
        reference = "CVE-2026-35363"
    strings:
        $cmd1 = "rm -rf ./" ascii wide nocase
        $cmd2 = "rm -rf .///" ascii wide nocase
        $cmd3 = /rm -rf \.\/{2,}/ ascii wide nocase
    condition:
        any of them
}

Sigma Rule

title: CVE-2026-35363 - rm Utility Trailing Slash Bypass
id: 7a8b9c0d-1e2f-3a4b-5c6d-7e8f9a0b1c2d
status: experimental
description: Detects execution of rm with trailing slashes to bypass current directory protection
author: Valters IT
date: 2026/01/01
references:
    - https://nvd.nist.gov/vuln/detail/CVE-2026-35363
logsource:
    category: process_creation
    product: linux
detection:
    selection:
        Image|endswith: '/rm'
        CommandLine|contains: './'
    condition: selection
falsepositives:
    - Legitimate use of relative paths with trailing slashes (rare)
level: high

Suricata Rule

alert tcp any any -> any any (msg:"CVE-2026-35363 - rm Trailing Slash Exploit"; content:"rm -rf ./"; classtype:attempted-user; sid:1000001; rev:1;)

Remediation & Mitigation

  1. Immediate: Update uutils coreutils to version 0.0.30 or later. Run cargo install coreutils --version 0.0.30 or use your package manager to update.
  2. Workaround: Use GNU coreutils instead of uutils. If uutils is required, avoid using rm -rf ./ in scripts; use rm -rf * or specify absolute paths.
  3. Detection: Implement the YARA, Sigma, and Suricata rules above to detect exploitation attempts.
  4. Backup: Ensure regular backups are taken and test recovery procedures.
  5. Monitoring: Monitor for the "Invalid input" error message in logs and investigate any rm commands with trailing slashes.

Valters IT
Securing Digital Frontiers

{/* [Security Hash: 0E29D8A3D99C529464B16274] */}

◈ SOURCE Analysis & enrichment: valtersit.com/cve/CVE-2026-35363/ · CVE data: NVD/MITRE (public domain) · © 2026 ValtersIT Hub
>_ SYSTEM_CORE: INTEL_ACTIVE
90% TEAM-CURATED // 10% AUTOMATED INGESTION.
ALL PATCH REFERENCES AND VERSION DATA SOURCED FROM NVD + OSV OFFICIAL REGISTRIES.