Description
The webbrowser.open() API would accept leading dashes in the URL which
could be handled as command line options for certain web browsers. New
behavior rejects leading dashes. Users are recommended to sanitize URLs
prior to passing to webbrowser.open().
Published: 2026-03-20
Score: 7 High
EPSS: < 1% Very Low
KEV: No
Impact: Command Injection via webbrowser.open()
Action: Apply Patch
AI Analysis

Impact

The webbrowser.open() function in CPython accepts URLs that begin with a hyphen. Certain web browsers interpret such leading dashes as command‑line options, allowing an attacker to influence the browser’s behavior or execute arbitrary commands. This lack of input validation is a classic command‑injection issue that can compromise confidentiality, integrity, or availability of the victim system.

Affected Systems

Python software, specifically the CPython interpreter’s standard library webbrowser module, is affected. The vulnerability applies to any CPython installation that has not incorporated the patches referenced in the advisory; version numbers are not explicitly provided, so all pre‑patch releases are potentially vulnerable.

Risk and Exploitability

With a CVSS score of 7, the vulnerability is of medium‑to‑high severity, yet an EPSS score of less than 1% indicates a low probability of exploitation. It is not listed in the CISA KEV catalog. Exploitation requires an attacker to supply a crafted URL to webbrowser.open() – typically in applications that accept user input – making the attack vector local to the user’s code execution environment. The risk level is therefore contingent on the application's exposure to untrusted URLs.

Generated by OpenCVE AI on March 25, 2026 at 16:41 UTC.

Remediation

No vendor fix or workaround currently provided.

OpenCVE Recommended Actions

  • Update CPython to a version that includes the fix referenced in the advisory.
  • Sanitize all URLs before passing them to webbrowser.open(); strip leading dashes or validate against a strict regex for allowed URL schemes.
  • Restrict user input or whitelist approved URLs in applications that use webbrowser.open().
  • If an immediate update is not feasible, consider rewriting the code to use alternative mechanisms that validate URLs before invoking the browser.

Generated by OpenCVE AI on March 25, 2026 at 16:41 UTC.

Tracking

Sign in to view the affected projects.

Advisories
Source ID Title
Debian DLA Debian DLA DLA-4583-1 python3.9 security update
Ubuntu USN Ubuntu USN USN-8509-1 Python vulnerabilities
References
Link Providers
http://www.openwall.com/lists/oss-security/2026/03/20/1 cve-icon
https://access.redhat.com/errata/RHSA-2026:10065 cve-icon
https://access.redhat.com/errata/RHSA-2026:10101 cve-icon
https://access.redhat.com/errata/RHSA-2026:10102 cve-icon
https://access.redhat.com/errata/RHSA-2026:10111 cve-icon
https://access.redhat.com/errata/RHSA-2026:10140 cve-icon
https://access.redhat.com/errata/RHSA-2026:10141 cve-icon
https://access.redhat.com/errata/RHSA-2026:13812 cve-icon
https://access.redhat.com/errata/RHSA-2026:16008 cve-icon
https://access.redhat.com/errata/RHSA-2026:16009 cve-icon
https://access.redhat.com/errata/RHSA-2026:16030 cve-icon
https://access.redhat.com/errata/RHSA-2026:16174 cve-icon
https://access.redhat.com/errata/RHSA-2026:19019 cve-icon
https://access.redhat.com/errata/RHSA-2026:19064 cve-icon
https://access.redhat.com/errata/RHSA-2026:19175 cve-icon
https://access.redhat.com/errata/RHSA-2026:19176 cve-icon
https://access.redhat.com/errata/RHSA-2026:19177 cve-icon
https://access.redhat.com/errata/RHSA-2026:19216 cve-icon
https://access.redhat.com/errata/RHSA-2026:19724 cve-icon
https://access.redhat.com/errata/RHSA-2026:19725 cve-icon
https://access.redhat.com/errata/RHSA-2026:21275 cve-icon
https://access.redhat.com/errata/RHSA-2026:25096 cve-icon
https://access.redhat.com/errata/RHSA-2026:6016 cve-icon
https://access.redhat.com/errata/RHSA-2026:6035 cve-icon
https://access.redhat.com/errata/RHSA-2026:6256 cve-icon
https://access.redhat.com/errata/RHSA-2026:6281 cve-icon
https://access.redhat.com/errata/RHSA-2026:6283 cve-icon
https://access.redhat.com/errata/RHSA-2026:6285 cve-icon
https://access.redhat.com/errata/RHSA-2026:6286 cve-icon
https://access.redhat.com/errata/RHSA-2026:6473 cve-icon
https://access.redhat.com/errata/RHSA-2026:6766 cve-icon
https://access.redhat.com/errata/RHSA-2026:7010 cve-icon
https://access.redhat.com/errata/RHSA-2026:7244 cve-icon
https://access.redhat.com/errata/RHSA-2026:7329 cve-icon
https://access.redhat.com/errata/RHSA-2026:7335 cve-icon
https://access.redhat.com/errata/RHSA-2026:7443 cve-icon
https://access.redhat.com/errata/RHSA-2026:7661 cve-icon
https://access.redhat.com/errata/RHSA-2026:8746 cve-icon
https://access.redhat.com/errata/RHSA-2026:8747 cve-icon
https://access.redhat.com/errata/RHSA-2026:8748 cve-icon
https://access.redhat.com/errata/RHSA-2026:9042 cve-icon
https://access.redhat.com/errata/RHSA-2026:9260 cve-icon
https://access.redhat.com/errata/RHSA-2026:9261 cve-icon
https://access.redhat.com/errata/RHSA-2026:9262 cve-icon
https://access.redhat.com/errata/RHSA-2026:9289 cve-icon
https://access.redhat.com/errata/RHSA-2026:9354 cve-icon
https://access.redhat.com/errata/RHSA-2026:9386 cve-icon
https://access.redhat.com/errata/RHSA-2026:9387 cve-icon
https://access.redhat.com/errata/RHSA-2026:9591 cve-icon
https://access.redhat.com/errata/RHSA-2026:9614 cve-icon
https://access.redhat.com/errata/RHSA-2026:9621 cve-icon
https://access.redhat.com/errata/RHSA-2026:9705 cve-icon
https://access.redhat.com/errata/RHSA-2026:9745 cve-icon
https://access.redhat.com/security/cve/CVE-2026-4519 cve-icon
https://bugzilla.redhat.com/show_bug.cgi?id=2449649 cve-icon
https://github.com/python/cpython/commit/3681d47a440865aead912a054d4599087b4270dd cve-icon cve-icon
https://github.com/python/cpython/commit/43fe06b96f6a6cf5cfd5bdab20b8649374956866 cve-icon cve-icon
https://github.com/python/cpython/commit/591ed890270c5697b013bf637029fb3e6cd2d73e cve-icon cve-icon
https://github.com/python/cpython/commit/594b5a05dc9913880ac92eded440defbf32a28d1 cve-icon cve-icon
https://github.com/python/cpython/commit/82a24a4442312bdcfc4c799885e8b3e00990f02b cve-icon cve-icon
https://github.com/python/cpython/commit/89bfb8e5ed3c7caa241028f1a4eac5f6275a46a4 cve-icon cve-icon
https://github.com/python/cpython/commit/9669a912a0e329c094e992204d6bdb8787024d76 cve-icon cve-icon
https://github.com/python/cpython/commit/96fc5048605863c7b6fd6289643feb0e97edd96c cve-icon cve-icon
https://github.com/python/cpython/commit/ad4d5ba32af4d80b0dfa2ba9d8203bfb219e60a5 cve-icon cve-icon
https://github.com/python/cpython/commit/cbba6119391112aba9c5aebf7b94aea447922c48 cve-icon cve-icon
https://github.com/python/cpython/commit/cc023511238ad93ecc8796157c6f9139a2bb2932 cve-icon cve-icon
https://github.com/python/cpython/commit/ceac1efc66516ac387eef2c9a0ce671895b44f03 cve-icon cve-icon
https://github.com/python/cpython/issues/143930 cve-icon cve-icon cve-icon
https://github.com/python/cpython/pull/143931 cve-icon cve-icon cve-icon
https://mail.python.org/archives/list/security-announce@python.org/thread/AY5NDSS433JK56Q7Q5IS7B37QFZVVOUS/ cve-icon cve-icon cve-icon
https://nvd.nist.gov/vuln/detail/CVE-2026-4519 cve-icon
https://security.access.redhat.com/data/csaf/v2/vex/2026/cve-2026-4519.json cve-icon
https://www.cve.org/CVERecord?id=CVE-2026-4519 cve-icon
History

Thu, 16 Apr 2026 15:00:00 +0000

Type Values Removed Values Added
First Time appeared Python python
CPEs cpe:2.3:a:python:python:*:*:*:*:*:*:*:*
cpe:2.3:a:python:python:3.15.0:alpha1:*:*:*:*:*:*
cpe:2.3:a:python:python:3.15.0:alpha2:*:*:*:*:*:*
cpe:2.3:a:python:python:3.15.0:alpha3:*:*:*:*:*:*
cpe:2.3:a:python:python:3.15.0:alpha4:*:*:*:*:*:*
cpe:2.3:a:python:python:3.15.0:alpha5:*:*:*:*:*:*
cpe:2.3:a:python:python:3.15.0:alpha6:*:*:*:*:*:*
cpe:2.3:a:python:python:3.15.0:alpha7:*:*:*:*:*:*
Vendors & Products Python python
Metrics cvssV3_1

{'score': 7.1, 'vector': 'CVSS:3.1/AV:N/AC:H/PR:N/UI:R/S:U/C:H/I:H/A:L'}

cvssV3_1

{'score': 3.3, 'vector': 'CVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:U/C:N/I:L/A:N'}


Tue, 07 Apr 2026 20:45:00 +0000


Wed, 25 Mar 2026 17:45:00 +0000


Wed, 25 Mar 2026 15:15:00 +0000

Type Values Removed Values Added
Weaknesses CWE-20
Metrics ssvc

{'options': {'Automatable': 'no', 'Exploitation': 'none', 'Technical Impact': 'total'}, 'version': '2.0.3'}


Tue, 24 Mar 2026 19:30:00 +0000


Mon, 23 Mar 2026 10:00:00 +0000

Type Values Removed Values Added
First Time appeared Python
Python cpython
Vendors & Products Python
Python cpython

Sat, 21 Mar 2026 05:30:00 +0000

Type Values Removed Values Added
Weaknesses CWE-88
References
Metrics threat_severity

None

cvssV3_1

{'score': 7.1, 'vector': 'CVSS:3.1/AV:N/AC:H/PR:N/UI:R/S:U/C:H/I:H/A:L'}

threat_severity

Important


Fri, 20 Mar 2026 21:30:00 +0000

Type Values Removed Values Added
References

Fri, 20 Mar 2026 18:45:00 +0000

Type Values Removed Values Added
Metrics cvssV4_0

{'score': 5.7, 'vector': 'CVSS:4.0/AV:L/AC:H/AT:P/PR:L/UI:N/VC:N/VI:H/VA:N/SC:N/SI:N/SA:N'}

cvssV4_0

{'score': 7, 'vector': 'CVSS:4.0/AV:L/AC:L/AT:P/PR:N/UI:A/VC:H/VI:H/VA:N/SC:N/SI:N/SA:N'}


Fri, 20 Mar 2026 15:15:00 +0000

Type Values Removed Values Added
Description The webbrowser.open() API would accept leading dashes in the URL which could be handled as command line options for certain web browsers. New behavior rejects leading dashes. Users are recommended to sanitize URLs prior to passing to webbrowser.open().
Title webbrowser.open() allows leading dashes in URLs
References
Metrics cvssV4_0

{'score': 5.7, 'vector': 'CVSS:4.0/AV:L/AC:H/AT:P/PR:L/UI:N/VC:N/VI:H/VA:N/SC:N/SI:N/SA:N'}


cve-icon MITRE

Status: PUBLISHED

Assigner: PSF

Published:

Updated: 2026-08-13T00:27:28.648Z

Reserved: 2026-03-20T15:01:11.126Z

Link: CVE-2026-4519

cve-icon Vulnrichment

Updated: 2026-03-20T20:07:08.244Z

cve-icon NVD

Status : Modified

Published: 2026-03-20T15:16:24.057

Modified: 2026-08-13T01:16:53.580

Link: CVE-2026-4519

cve-icon Redhat

Severity : Important

Publid Date: 2026-03-20T15:08:32Z

Links: CVE-2026-4519 - Bugzilla

cve-icon OpenCVE Enrichment

Updated: 2026-03-25T21:28:16Z

Weaknesses
  • CWE-20

    Improper Input Validation

  • CWE-88

    Improper Neutralization of Argument Delimiters in a Command ('Argument Injection')