Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessObtain crawler/admin role via open registration
-
DeliverySubmit crafted Git URL to custom-behavior validate endpoint
-
ExploitShell interpolates URL into git ls-remote
-
ExecutionExecute arbitrary OS commands in backend pod
-
ImpactExfiltrate/modify DB records, profiles, proxy credentials
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A05:2025 - Injection
ASVS 5.0
V2 - Validation and Business Logic Input validation, allowlisting
|
| Exploitation Conditions | Requires an authenticated account with crawler or administrator permission on the target Browsertrix org, and the ability to reach /api/orgs/*/crawlconfigs/validate/custom-behavior with a Custom Behaviors Git URL. Affected versions are 1.15.0 through 1.22.7 (fixed in 1.22.8). The key limiting factor is the role requirement (PR:L), but the advisory explicitly notes that open registration or hosted free-trial access can make that role broadly obtainable, materially lowering the barrier; no user interaction or non-default configuration is otherwise needed, and pre-fix the injected command ran without dropped privileges in the backend pod. |
| Impact | This is a genuine high-priority issue, not a CVSS-inflation artifact. The CVSS 4.0 vector (AV:N/AC:L/PR:L/UI:N with VC/VI/VA all High) is corroborated by the source-code diff: the pre-fix code built |
| Exploit ScenarioDerived | An attacker obtains a crawler or administrator role - potentially via open self-registration or a hosted free trial - then submits a crafted Git URL containing shell metacharacters to /api/orgs/*/crawlconfigs/validate/custom-behavior. The URL is interpolated into |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Sep 17, 2026
Authenticated Browsertrix users who hold crawler or administrator permission on an org can execute arbitrary operating-system commands inside the backend pod by submitting a crafted Git URL to the Custom Behaviors validation endpoint, affecting versions 1.15.0 through 1.22.7. The pre-fix code built a shell command string by interpolating the user-supplied repository URL into 'git ls-remote', so shell metacharacters in that URL were interpreted by the shell and ran with the backend pod's privileges; the vendor advisory notes that open registration or hosted free-trial access can make the required role broadly obtainable, materially lowering the barrier. No public exploit code has been identified at time of analysis, and the issue is remediated in the vendor-released version 1.22.8, which switches to argument-list subprocess execution, adds a 30-second timeout, disables git credential prompts, and drops privileges to nobody (uid/gid 65534).
RemediationAI
Upgrade Browsertrix to version 1.22.8 or later; the vendor-released patch is documented in advisory GHSA-47vv-v544-r985 (https://github.com/webrecorder/browsertrix/security/advisories/GHSA-47vv-v544-r985), shipped in release tag v1.22.8 (https://github.com/webrecorder/browsertrix/releases/tag/v1.22.8), and implemented by commit a306afc3893a74ed0ec2407bdf0515ed52da8e46. Where immediate upgrade is not feasible, the highest-value compensating control is to shrink the population that holds crawler or administrator roles: disable open registration and free-trial provisioning that would otherwise hand out that permission to untrusted parties, since the attacker must already be authenticated with that role. As a second control, block POST requests to the /api/orgs/*/crawlconfigs/validate/custom-behavior path at the reverse proxy or API gateway for all but trusted administrators - the trade-off is that legitimate users can no longer validate a Custom Behaviors Git URL before saving it, and any bypass of the proxy reintroduces exposure. Running the backend pod with a least-privilege service account, no host mounts, and restricted network egress limits what injected commands can reach, but over-restricting egress or storage access will break normal crawling, archiving, and proxy authentication, so it should be scoped carefully. Edge filtering of shell metacharacters in the Git URL parameter adds defense in depth but is routinely evadable and must not be treated as a substitute for installing 1.22.8.
Affected VersionsENISA
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 1 package in euvd
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
Browsertrix is a high-fidelity, browser-based crawling service for web archiving, distributed by Webrecorder and deployable either self-hosted or through the hosted instance; the vulnerable component is the Python 'btrixcloud' backend that manages crawl configurations and Custom Behaviors. In backend/btrixcloud/crawlconfigs.py the custom-behavior validation routine constructed a shell command such as f'git ls-remote {repo_url} HEAD' and executed it via asyncio.create_subprocess_shell, and a second branch-check invocation ('git ls-remote --exit-code --heads {repo_url} refs/heads/{branch}') was equally exposed. Because repo_url came straight from the caller and was never neutralized, any shell metacharacter sequence appended to a Git URL (command separators, pipes, command substitution) was interpreted by the shell and executed inside the backend pod - a textbook OS command injection arising from improper input validation in the CWE-20 class. The fix commit a306afc3893a74ed0ec2407bdf0515ed52da8e46 replaces the shell-string calls with create_subprocess_exec passing discrete argv elements, sets GIT_TERMINAL_PROMPT=0 so git cannot prompt for credentials, wraps execution in an asyncio 30-second timeout, and adds a drop_privileges preexec_fn that calls os.setgroups([]), os.setgid(65534), and os.setuid(65534) so the spawned git process runs as nobody. The vulnerable route is reachable over the network at /api/orgs/*/crawlconfigs/validate/custom-behavior and requires an authenticated principal with crawler or administrator rights on the target org, which is why the assessed vector carries PR:L even though the injection itself is trivial once that role is held.
Know when Browsertrix gets its next vulnerability
- Watch products and get an email when something new is published
- Check this CVE against your own stack and servers
- Exploit and PoC references, threat intelligence from 22 sources
No credit card · 7-day full trial
Severity by source
CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:H/VI:H/VA:H/SC:H/SI:H/SA:H
Network endpoint, low complexity, but a crawler/admin role is required so PR:L not PR:N; command execution in the backend pod yields full C/I/A:H; S:U as impact stays within the application's authority.
Primary rating from Vendor (GitHub_M).
CVSS VectorVendor: GitHub_M
Lifecycle Timeline
2DescriptionCVE.org
Browsertrix is a high-fidelity, browser-based crawling service for web archiving that can be self-hosted or used through Webrecorder's hosted instance. From 1.15.0 until 1.22.8, Browsertrix improperly sanitizes Git URLs specified as Custom Behaviors, allowing command injection through /api/orgs/*/crawlconfigs/validate/custom-behavior. A user with crawler or administrator permission on the specific instance can supply a crafted Git URL that executes arbitrary operating-system commands in the backend pod. Open registration or hosted free-trial access can make the required role broadly obtainable. Successful exploitation can expose, modify, or delete application database records, archived items, browser profiles, storage data, proxy credentials, and other configured service data. This issue is fixed in version 1.22.8.
Technical POC Analysis
The core bug is OS command injection / argument injection through improper neutralization of shell metacharacters.
Full technical POC analysis - root cause, step-by-step exploitation and patch breakdown - is part of the Pro and Business plans.
Executive ViewAI
A command-injection flaw in Browsertrix versions 1.15.0 through 1.22.7 allows a user holding a crawler or administrator role - a role that the vendor notes can be broadly obtainable through open registration or hosted free-trial access - to run arbitrary operating-system commands inside the platform's backend pod. Because those commands execute with the pod's own privileges, one low-trust account could compromise shared archiving infrastructure and any credentials or data it can reach, affecting both self-hosted deployments and hosted or trial environments. No public exploit code has been identified at time of analysis, and the vendor has released a fix in version 1.22.8.
Apply vendor patch.
Threat Intelligence Overview
How this decision was reached
The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
OS command injection occurs when an application passes unsanitized user input directly into system shell commands.
EUVD-2026-82422
NVD
CVE.org
EPSS
Vulnrichment
GitHub
Exploit-DB