Skip to main content

broot EUVDEUVD-2026-63488

| CVE-2026-72847 LOW
Improper Neutralization of Escape, Meta, or Control Sequences (CWE-150)
2026-08-20 VulnCheck GHSA-8v8c-hvqj-mqw8
2.4
CVSS 4.0 · Vendor: VulnCheck

Severity by source

Vendor (VulnCheck) PRIMARY
2.4 LOW
CVSS:4.0/AV:L/AC:L/AT:N/PR:L/UI:P/VC:L/VI:L/VA:N/SC:L/SI:L/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X
vuln.today AI
4.6 MEDIUM

Local write access plants the payload; victim must actively browse with broot; scope changes as the terminal emulator (separate component) is affected; no availability impact.

3.1 AV:L/AC:L/PR:L/UI:R/S:C/C:L/I:L/A:N
4.0 AV:L/AC:L/AT:N/PR:L/UI:P/VC:L/VI:L/VA:N/SC:L/SI:L/SA:N

Primary rating from Vendor (VulnCheck).

CVSS VectorVendor: VulnCheck

CVSS:4.0/AV:L/AC:L/AT:N/PR:L/UI:P/VC:L/VI:L/VA:N/SC:L/SI:L/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X
Attack Vector
Local
Attack Complexity
Low
Privileges Required
Low
User Interaction
P
Scope
X

Lifecycle Timeline

2
Source Code Evidence Fetched
Aug 20, 2026 - 17:58 vuln.today
Analysis Generated
Aug 20, 2026 - 17:58 vuln.today

DescriptionCVE.org

broot renders each file and directory name in its interactive tree view exactly as read from the filesystem. Names are converted with a plain to_string_lossy() call in src/tree_build/builder.rs and in TreeLine::unprune in src/tree/tree_line.rs, and no control-character filtering exists anywhere in the code, even though the doc comment on the TreeLine name field states that some characters may have been stripped. Any local user who can create a file can therefore place an escape sequence in its name and have it written unmodified to the terminal of anyone who browses that directory, between broot's own styling codes. A reported proof of concept used an OSC 52 clipboard-write sequence and captured the raw bytes broot wrote to its pty, confirming the sequence reaches the terminal unstripped. What an injected OSC or CSI sequence can then do depends on the terminal emulator in use. Browsing a directory is broot's primary function and carries no expectation that the content is trusted.

AnalysisAI

Terminal escape sequence injection in broot, the interactive Rust-based file tree navigator by Canop, allows any local user with filesystem write access to plant control characters in a filename and have them written verbatim to the terminal of any other user who browses that directory with broot. The vulnerable code path - to_string_lossy() in src/tree/tree_line.rs and src/tree_build/builder.rs - applies no control-character filtering despite an existing doc comment implying sanitization occurs. …

Unlock full vulnerability intelligence

  • Risk assessment & exploitation conditions
  • Attack chain visualization
  • Remediation with exact patch versions
  • Threat intelligence from 22 sources
  • Personal watchlist & email alerts

Free forever · No credit card required

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata

Access
Create filename with embedded OSC/CSI escape sequence
Delivery
Place file in shared or browsable directory
Exploit
Victim browses directory using broot
Execution
broot writes unsanitized filename to PTY
Persist
Terminal emulator interprets escape sequence
Impact
Attacker achieves clipboard hijack or terminal state manipulation

Vulnerability AssessmentAI

Exploitation The attacker must have low-privilege local write access to any directory on the filesystem (PR:L) - no special broot configuration, feature flag, or elevated permission is required. … Additional conditions and limiting factors are described in the full assessment.
Risk Assessment The official CVSS 4.0 score of 2.4 accurately reflects the limited realistic impact: the attack is strictly local (AV:L), requires only low-privilege filesystem write access (PR:L), and demands passive victim interaction (UI:P - someone must browse the directory with broot). … Full risk analysis with EPSS, KEV, and SSVC signal comparison available after sign-in.
Exploit Scenario On a multi-user Linux system, an unprivileged attacker creates a file named with an embedded OSC 52 sequence such as $'\x1b]52;c;base64encodedpayload\x07legit_filename.txt' in a shared directory. When a targeted user (e.g., a system administrator) browses that directory with broot, broot renders the filename verbatim to their terminal, causing their terminal emulator to execute the OSC 52 command and overwrite their clipboard with attacker-controlled content. …
Remediation Upstream fix available via commits 4ba40f7d47af78457c7656f15eba71d63d97fce5 and 0717a94b3c0efa19c7bbcfe0fb49a2374752a168; upgrade to the first tagged broot release incorporating these commits (exact patched release version not independently confirmed - verify the current release at https://github.com/Canop/broot). … Detailed patch versions, workarounds, and compensating controls in full report.

Threat intelligence, references, and detailed analysis are available after sign-in.

Share

EUVD-2026-63488 vulnerability details – vuln.today

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy