Skip to main content

Browsertrix CVE-2026-54501

| EUVDEUVD-2026-82422 CRITICAL
Improper Input Validation (CWE-20)
2026-09-17 GitHub_M
9.4
CVSS 4.0 · Vendor: GitHub_M
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Obtain crawler/admin role via open registration
  2. Delivery
    Submit crafted Git URL to custom-behavior validate endpoint
  3. Exploit
    Shell interpolates URL into git ls-remote
  4. Execution
    Execute arbitrary OS commands in backend pod
  5. Impact
    Exfiltrate/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 git ls-remote {repo_url} HEAD and passed it to asyncio.create_subprocess_shell, so attacker-controlled repo_url is interpolated directly into a shell command line - a textbook OS command injection (the CWE-20 label understates this; CWE-78 is the precise weakness). The fix replaces this with create_subprocess_exec (argument list, no shell) plus drop_privileges, confirming both the injection and that the process previously ran with elevated privileges in the backend pod. The main limiting factor is PR:L: the attacker needs crawler or administrator role on the instance, but the advisory notes open registration or hosted free-trial access can make that role broadly obtainable, effectively lowering the real-world barrier. No EPSS score, KEV listing, POC, or SSVC data was provided, so exploitation likelihood signals are absent - however the patch commit is public and the injection point is trivially reachable, so an exploit is easy to derive even without published code. Net: treat as a real priority for any self-hosted or hosted Browsertrix instance, especially those with open registration.

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 git ls-remote {repo_url} and executed by a shell in the backend pod, running arbitrary OS commands with the pod's privileges. No public POC was provided, but the fix commit makes the injection point and payload shape self-evident.

Act Now Prioritize within 24-48h. Why: CRITICAL severity.
Patch available 1.2% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – 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

browsertrix 1.15.0, < 1.22.8

Affected Packages

euvd browsertrix_1_15_0 fix: 1.22.8

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

Vendor (GitHub_M) PRIMARY 9.4 CRITICAL
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
vuln.today AI 8.8 HIGH

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.

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

Primary rating from Vendor (GitHub_M).

CVSS VectorVendor: GitHub_M

Attack Vector
Network
Attack Complexity
Low
Attack Requirements
None
Privileges Required
Low
User Interaction
None
Vulnerable system: Confidentiality
High
Vulnerable system: Integrity
High
Vulnerable system: Availability
High
Subsequent system: Confidentiality
High
Subsequent system: Integrity
High
Subsequent system: Availability
High

Lifecycle Timeline

2
Patch available
Sep 17, 2026 - 21:19 EUVD
CVE Published
Sep 17, 2026 - 20:15 cve.org
CRITICAL 9.4

DescriptionCVE.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

Why It Matters

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.

Business Impact: High
Compensating Controls

Apply vendor patch.

Threat Intelligence Overview

EPSS Score
1.2%
Top 33% exploitable
Prevalence
Low
niche self-hosted/hosted web-archiving crawler, limited enterprise footprint
Data Quality
6 sources
Confidence: High

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.

SignalValue
Severity CRITICAL
CISA KEV No
Public POC No
EPSS 1.2%
Patch available Yes
Active threat No
Deciding rule
CRITICAL severity
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision
Scheduled
Exploitation
None
System Exposure· derived
Open
Automatable
No
Human Impact
High
Technical Impact
Total

Priority Score

48
Low Medium High Critical
KEV: 0
EPSS: +1
CVSS: +47
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

OS command injection occurs when an application passes unsanitized user input directly into system shell commands.

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