CVE-2026-72847
MediumCVSS 4.6Exploitation Probability (EPSS)
Low risk1th percentile - higher than 1% of all known CVEs
Summary
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.
Risk Assessment
The attack may allow execution of malicious sequences in the user's terminal, potentially leading to data theft, session hijacking, or other unauthorized actions, depending on the terminal emulator's capabilities.
Recommendation
It is recommended to update broot to a version that filters control characters and avoid browsing untrusted directories.
Related vulnerabilities
- CVE-2026-78657Critical
The SigmaForms Pro – AI Generated Forms plugin for WordPress up to version 1.4.11 is vulnerable to arbitrary file deletion due to insufficient file path validation in the delete_submission_files function. Unauthenticated attackers can delete arbitrary files on the server, which can easily lead to remote code execution when the right file is deleted (such as wp-config.php). The malicious path traversal URL is submitted via form upload field and stored in the database, with deletion triggered when an administrator deletes the submission record from the admin panel.
- CVE-2026-9055Critical
The Booking for Appointments and Events Calendar – Amelia (Premium) plugin for WordPress versions 8.0 - 9.6.2 is vulnerable to privilege escalation due to insufficient validation of the 'type' parameter in the customer update endpoint. This allows customers to set their role to 'manager' and trigger creation of a WordPress user with the wpamelia-manager role when 'externalId' is set to 0. Unauthenticated attackers can escalate to administrator by first elevating to manager, then creating a provider entity linked to an administrator user ID and overwriting that administrator's password.
- CVE-2026-84699Critical
Team Password Manager before version 14.184.308 fails to enforce authentication requirements in the local account password reset flow. Unauthenticated attackers can reset local account passwords and authenticate as those users to gain unauthorized access.
- CVE-2026-84354Critical
Incorrect authorization in FileSystem in Google Chrome prior to 152.0.7977.75 allowed a remote attacker leveraging social engineering to execute arbitrary code outside the sandbox via a crafted HTML page. (Severity: High)
- CVE-2026-84353Critical
Use after free in Shared Tab Groups in Google Chrome on Android prior to 152.0.7977.75 allowed a remote attacker leveraging social engineering to execute arbitrary code outside the sandbox via a crafted HTML page. (Severity: Critical)
- CVE-2026-84352Critical
Use after free in WebGL in Google Chrome on Android prior to 152.0.7977.75 allowed a remote attacker to execute arbitrary code outside the sandbox via a crafted HTML page. (Severity: Critical)
- CVE-2026-84333Critical
Use-after-free in Dawn in Google Chrome on Android prior to 152.0.7977.75. A remote attacker could execute arbitrary code outside the sandbox via a crafted HTML page.
- CVE-2026-84324Critical
Use after free in Proxy in Google Chrome prior to 152.0.7977.75 allowed a remote attacker to execute arbitrary code outside the sandbox via crafted network traffic. (Chromium security severity: High)
- CVE-2026-84480Critical
WWBN AVideo fails to validate password recovery token expiration in userRecoverPassSave.json.php, allowing attackers to use expired tokens to reset account passwords indefinitely. Attackers who obtain a recovery token can use it at any time to change the target account's password and gain full account access.
- CVE-2026-84479Critical
WWBN AVideo (current e01e41ecc and earlier) makes three login-time security controls depend solely on the client-supplied User-Agent header. The isAVideoEncoder()/isAVideoMobileApp() checks match HTTP_USER_AGENT against a hardcoded literal ("AVideoEncoder"/"AVideoMobileApp") with no IP check or shared secret. An attacker who submits valid credentials and sets User-Agent: AVideoEncoder bypasses two-factor authentication, skips brute-force captcha escalation, and avoids being recorded in the login/device audit history. No patch is available at the time of publication.
Original NVD description (English source)
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.

