CVE-2026-72847

Source
https://cve.org/CVERecord?id=CVE-2026-72847
Import Source
https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-72847.json
JSON Data
https://api.osv.dev/v1/vulns/CVE-2026-72847
Downstream
Published
2026-08-20T17:19:34.678Z
Modified
2026-08-23T03:42:45.206876337Z
Severity
  • 2.4 (Low) CVSS_V4 - 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 CVSS Calculator
Summary
broot Terminal Escape Sequence Injection via Unsanitized File and Directory Names in the Tree View
Details

broot renders each file and directory name in its interactive tree view exactly as read from the filesystem. Names are converted with a plain tostringlossy() call in src/treebuild/builder.rs and in TreeLine::unprune in src/tree/treeline.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.

Database specific
{
    "cwe_ids": [
        "CWE-150"
    ],
    "cna_assigner": "VulnCheck",
    "osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/72xxx/CVE-2026-72847.json"
}
References

Affected packages

Git / github.com/canop/broot

Affected ranges

Type
GIT
Repo
https://github.com/canop/broot
Events
Introduced
0 Unknown introduced commit / All previous commits are affected
Fixed
Fixed
Database specific
Show details
{
    "source": [
        "AFFECTED_FIELD",
        "REFERENCES"
    ],
    "extracted_events": [
        {
            "introduced": "0"
        },
        {
            "last_affected": "1.58.0"
        }
    ]
}

Affected versions

0.*
0.14.1
0.4.7
v0.*
v0.10.0
v0.10.1
v0.10.2
v0.10.3
v0.10.4
v0.10.5
v0.11.0
v0.11.1
v0.11.2
v0.11.3
v0.11.4
v0.11.5
v0.11.6
v0.11.7
v0.11.8
v0.11.9
v0.12.0
v0.13.0
v0.13.1
v0.13.2
v0.13.4
v0.13.5
v0.13.5b
v0.13.6
v0.14.0
v0.15.0
v0.16.0
v0.17.0
v0.18.0
v0.18.1
v0.18.2
v0.18.3
v0.18.4
v0.18.5
v0.18.6
v0.19.0
v0.19.1
v0.19.2
v0.19.3
v0.19.4
v0.20.0
v0.20.1
v0.20.2
v0.20.3
v0.4.1
v0.4.2
v0.4.3
v0.4.5
v0.4.6
v0.5.0
v0.5.1
v0.5.2
v0.6.0
v0.6.1
v0.6.2
v0.6.3
v0.7.0
v0.7.1
v0.7.2
v0.7.3
v0.7.4
v0.7.5
v0.8.0
v0.8.1
v0.8.3
v0.8.4
v0.8.5
v0.8.6
v0.9.0
v0.9.1
v0.9.3
v0.9.4
v0.9.5
v0.9.6
v1.*
v1.0.0
v1.0.1
v1.0.2
v1.0.3
v1.0.4
v1.0.5
v1.0.6
v1.0.7
v1.0.8
v1.0.9
v1.1.10
v1.1.11
v1.10.0
v1.11.0
v1.11.1
v1.12.0
v1.13.0
v1.13.1
v1.13.2
v1.14.0
v1.14.1
v1.14.2
v1.14.3
v1.15.0
v1.16.0
v1.16.1
v1.16.2
v1.17.0
v1.17.1
v1.18.0
v1.19.0
v1.2.0
v1.2.1
v1.2.2
v1.2.3
v1.2.4
v1.2.5
v1.2.6
v1.2.7
v1.2.8
v1.2.9
v1.20.0
v1.20.1
v1.20.2
v1.21.0
v1.21.1
v1.21.2
v1.21.3
v1.22.0
v1.22.1
v1.23.0
v1.24.0
v1.24.1
v1.24.2
v1.25.0
v1.25.1
v1.25.2
v1.26.0
v1.26.1
v1.27.0
v1.28.0
v1.28.1
v1.29.0
v1.3.0
v1.3.1
v1.30.0
v1.30.1
v1.30.2
v1.31.0
v1.32.0
v1.33.0
v1.33.1
v1.34.0
v1.35.0
v1.36.0
v1.36.1
v1.37.0
v1.38.0
v1.39.0
v1.39.1
v1.39.2
v1.4.0
v1.40.0
v1.41.0
v1.41.1
v1.42.0
v1.43.0
v1.44.0
v1.44.1
v1.44.2
v1.44.3
v1.44.4
v1.44.5
v1.44.6
v1.44.7
v1.45.0
v1.45.1
v1.46.0
v1.46.1
v1.46.2
v1.46.3
v1.46.4
v1.46.5
v1.47.0
v1.48.0
v1.49.0
v1.5.0
v1.5.1
v1.50.0
v1.51.0
v1.52.0
v1.53.0
v1.54.0
v1.55.0
v1.56.0
v1.56.1
v1.56.2
v1.56.3
v1.56.4
v1.57.0
v1.58.0
v1.6.0
v1.6.1
v1.6.2
v1.6.3
v1.6.4
v1.6.5
v1.6.6
v1.7.0
v1.7.1
v1.7.2
v1.7.3
v1.7.4
v1.7.5
v1.8.0
v1.8.1
v1.9.0
v1.9.1
v1.9.2
v1.9.3
v1.9.4

Database specific

source
"https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-72847.json"