Severity by source
AV:N/AC:H/PR:N/UI:R/S:U/C:N/I:L/A:N
Network vector because the trigger is a remote repository URL; AC:H because operator must scan an attacker-controlled repo with the specific module active; UI:R for required operator action; I:L because the write is bounded and indirect.
Primary rating from Vendor (BLSOPS).
CVSS VectorVendor: BLSOPS
Lifecycle Timeline
1DescriptionCVE.org
BBOT's github_workflows module could be induced to write a downloaded artifact outside its configured output directory: its path-containment check did not resolve .., so a crafted CODE_REPOSITORY URL could traverse out of the intended folder. The write is bounded to two directory levels above the output location and its target is determined by the operator's configuration, not the attacker.
AnalysisAI
Path traversal in BBOT's github_workflows module allows a crafted CODE_REPOSITORY URL to write a downloaded artifact outside the operator-configured output directory by bypassing a path-containment check that failed to resolve .. sequences. Affected versions span all BBOT releases per CPE data, with a fix available via upstream commit. The write primitive is constrained to at most two directory levels above the output location, and the destination is shaped by the operator's own configuration rather than fully attacker-controlled, significantly limiting real-world impact. No public exploit code or CISA KEV listing has been identified at time of analysis.
Technical ContextAI
BBOT (Black Lantern Security BBOT, CPE: cpe:2.3:a:black_lantern_security:bbot:*:*:*:*:*:*:*:*) is an open-source, modular OSINT and attack-surface reconnaissance framework. Its github_workflows module fetches workflow artifacts from GitHub repositories identified by a CODE_REPOSITORY URL. The module implemented a path-containment check intended to confine file writes to the configured output directory, but this check did not canonicalize paths before comparison - it did not resolve .. components. This is a textbook CWE-22 (Improper Limitation of a Pathname to a Restricted Directory, 'Path Traversal') root cause: by embedding .. sequences in the repository URL, an attacker-controlled input can produce a target path that appears benign to the uncanonicalized check but actually resolves to a parent directory. The traversal depth is bounded in the implementation to two levels above the output directory, and the final write path is further shaped by the operator's own configuration, meaning the attacker's leverage over the exact destination is indirect and partial.
RemediationAI
The primary fix is to update BBOT to a version that incorporates commit c1c6ec05ff998e2fba55a14d1026f12563ccd82f, available at https://github.com/blacklanternsecurity/bbot/commit/c1c6ec05ff998e2fba55a14d1026f12563ccd82f; a specific tagged release version is not confirmed in the available data, so operators should verify the installed version includes this commit or install from HEAD after the commit date. As a compensating control, operators who cannot immediately update should restrict use of the github_workflows module to known-trustworthy repository URLs and avoid scanning attacker-controlled or unvetted repositories with that module enabled - this eliminates the attacker's ability to supply a malicious CODE_REPOSITORY value. Additionally, running BBOT scans with the output directory configured in a location with limited filesystem write access (e.g., a dedicated sandboxed directory with no sensitive files within two parent levels) reduces the potential blast radius of an exploited write even before patching. No trade-off concerns are associated with the upstream patch itself.
Arbitrary file write in BBOT's postman_download module enables a remote attacker to write files outside the intended out
Path traversal in BBOT's unarchive internal module enables a malicious archive hosted by attacker-controlled infrastruct
Authentication token leakage in Black Lantern Security's bbot docker_pull module exposes Docker credentials to MITM atta
Symlink-following path traversal in BBOT's github_workflows module (all versions prior to commit 16d9c42b6) allows a loc
Symlink extraction bypass in BBOT's unarchive module allows an attacker to plant an attacker-controlled symlink into the
Same weakness CWE-22 – Path Traversal
View allSame technique Path Traversal
View allShare
External POC / Exploit Code
Leaving vuln.today
EUVD-2026-42296