Skip to main content

Cpython EUVDEUVD-2026-21545

| CVE-2026-3446 MEDIUM
Insufficient Verification of Data Authenticity (CWE-345)
2026-04-10 PSF GHSA-8r9f-h969-mm4m
6.0
CVSS 4.0 · Vendor: PSF
View

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A08:2025 - Software or Data Integrity Failures
ASVS 5.0
V15 - Secure Coding and Architecture Data authenticity verification
Impact

The CVSS 6.0 score reflects a network-accessible vulnerability requiring high attack complexity and low privileges (PR:L from the vector), with confidentiality impact (VI:H) but no integrity or availability impact. The authentication requirement is significant-PR:L indicates the attacker must possess valid credentials. EPSS scoring would likely be moderate given the authentication gate and high complexity requirement. This is not a remote code execution or denial-of-service risk; the threat model is data integrity across implementations. The tag 'Information Disclosure' aligns with the VI:H (confidentiality impact) flag, suggesting the vulnerability enables attackers to extract or infer information by exploiting divergent parsing behavior. Real-world risk depends on application context: if an application uses CPython to validate base64 signatures or cryptographic material and trusts the decoded output without re-validation, a malicious actor with authenticated access could craft base64 payloads that CPython accepts but a backend system processes differently, leading to authorization bypass or data leakage. Conversely, if base64 decoding is purely informational and not security-critical, risk is minimal. The high attack complexity (AC:H) and low prevalence of base64 in attack chains suggest this is a secondary vector rather than a primary exploitation target. The availability of a vendor patch further reduces real-world exposure.

Exploit ScenarioDerived

An authenticated attacker on a network with high complexity constraints (e.g., requiring timing-based or state-dependent conditions) crafts a malformed base64 string that CPython's b64decode() accepts by truncating at the first padded quad, while a backend system (such as a Java or Node.js application) processes the full string according to RFC 4648. The attacker uploads the malformed base64-encoded payload as a signature or credential, exploiting the divergent parsing to bypass validation checks that rely on CPython's decoding and cause downstream systems to interpret the data differently, potentially disclosing sensitive information or allowing unauthorized access. Patching to CPython 3.13.13+ or enabling validate=True immediately blocks this attack vector.

This Month Plan within 30 days. Why: MEDIUM severity (CVSS 4.0-6.9).
Patch available 0.1% exploitation probability (EPSS)

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

Alert me

AnalysisAIv1 – Apr 10, 2026

CPython's base64.b64decode() function prematurely stops processing after encountering the first padded quad, allowing malformed base64 data to be accepted that may be interpreted differently by other implementations. This affects CPython 3.13.x before 3.13.13, 3.14.x before 3.14.4, and 3.15.0a1 before 3.15.0a8, with authenticated remote attackers on high-complexity networks potentially inducing information disclosure (CVSS 6.0, EPSS risk level moderate). Upstream fixes are available in tagged commits; users should upgrade to patched versions or enable validate=True parameter for stricter base64 validation.

RemediationAI

Users should upgrade to CPython 3.13.13, 3.14.4, or 3.15.0a8 (or later stable releases) where the base64 decoding logic has been corrected. The upstream fixes are available in commits 1f9958f909c1b41a4ffc0b613ef8ec8fa5e7c474, 4561f6418a691b3e89aef0901f53fe0dfb7f7c0e, and e31c55121620189a0d1a07b689762d8ca9c1b7fa within the CPython repository (https://github.com/python/cpython). As an immediate workaround, developers should explicitly call base64.b64decode(input_string, validate=True) to enforce stricter base64 validation and reject malformed sequences before the decoding process terminates prematurely. This parameter enables rejection of base64 input that does not strictly comply with RFC 4648. The Python security advisory and pull request #145267 provide additional implementation details and guidance.

Affected VersionsENISA

CPython 3.14.0 <3.14.4
CPython 3.15.0a1 <3.15.0a8
CPython 0 <3.13.13

Affected Packages

euvd cpython fix: 3.13.13, 3.14.4, 3.15.0a8

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

The vulnerability resides in CPython's base64 module, specifically the b64decode() function and related decoding routines. Base64 encoding uses padding characters ('=') to signal the end of encoded data; RFC 4648 mandates that padding only appears at the end of a properly formatted base64 string. The defect causes the decoder to terminate immediately upon finding the first padded quad (a sequence ending with '=' characters), ignoring any subsequent valid base64 data in the input stream. This creates an interoperability issue where CPython accepts truncated or malformed base64 sequences that strictly compliant implementations would reject. The root cause is improper termination logic in the decoding state machine, allowing incomplete or deliberately crafted payloads to bypass validation. The CPE (cpe:2.3:a:python_software_foundation:cpython:*:*:*:*:*:*:*:*) identifies all CPython versions as potentially affected, with specific version ranges confirmed vulnerable.

Know when Cpython 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 (PSF) PRIMARY 6.0 MEDIUM
CVSS:4.0/AV:N/AC:H/AT:P/PR:L/UI:N/VC:N/VI:H/VA:N/SC:N/SI:N/SA:N
SUSE 5.3 MEDIUM
AV:N/AC:H/PR:L/UI:N/S:U/C:N/I:H/A:N
Red Hat 5.3 MEDIUM

Primary rating from Vendor (PSF).

CVSS VectorVendor: PSF

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

Lifecycle Timeline

2
Patch released
Apr 10, 2026 - 18:45 nvd
Patch available
CVE Published
Apr 10, 2026 - 18:17 nvd
MEDIUM 6.0

DescriptionCVE.org

When calling base64.b64decode() or related functions the decoding process would stop after encountering the first padded quad regardless of whether there was more information to be processed. This can lead to data being accepted which may be processed differently by other implementations. Use "validate=True" to enable stricter processing of base64 data.

Threat Intelligence Overview

EPSS Score
0.1%
Top 84% exploitable
Data Quality
8 sources
Confidence: High
EUVD NVD CVE.org EPSS Vulnrichment Vendor GitHub VulDB

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 MEDIUM
CISA KEV No
Public POC No
EPSS 0.1%
Patch available Yes
Active threat No
Deciding rule
MEDIUM severity (CVSS 4.0-6.9)
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· derived
Scheduled
Exploitation
None
System Exposure· derived
Open
Automatable
No
Human Impact· derived
Medium
Technical Impact
Partial

Priority Score

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

Attack Technique

Information disclosure occurs when an application unintentionally exposes sensitive data that aids attackers in reconnaissance or directly compromises security.

CVE-2026-17084 MEDIUM POC
6.0 Aug 18

Integrity bypass in CPython's stringprep module causes divergent domain name normalization when processing international

CVE-2026-115557 CRITICAL
9.4 Oct 24

CPython's ssl module validates TLS certificate chains that anchor to known-compromised eMudhra CA certificates, so anyon

CVE-2026-19445 CRITICAL
9.2 Sep 30

A use-after-free in CPython's ssl module lets a remote, unauthenticated TLS client crash a Python TLS server process - o

CVE-2026-6100 CRITICAL
9.1 Apr 13

CPython decompression modules (lzma, bz2, gzip) allow memory corruption via use-after-free when decompressor instances a

CVE-2026-3298 HIGH
8.8 Apr 21

Out-of-bounds buffer write in CPython's asyncio.ProactorEventLoop (Windows only) allows remote attackers to trigger memo

CVE-2026-11972 HIGH
8.2 Jun 23

Denial of service in CPython's tarfile module allows remote attackers to trigger an infinite loop by supplying a crafted

CVE-2026-9669 HIGH
8.2 Jun 08

Stack-based buffer overflow in CPython's bz2.BZ2Decompressor allows remote attackers to crash Python applications by sen

CVE-2026-119170 HIGH
8.2 Nov 06

FIPS algorithm enforcement in CPython 3.14.10's hashlib module can fail for hash requests made with usedforsecurity=True

CVE-2026-11940 HIGH
7.8 Jun 23

Path traversal in CPython's tarfile module allows a crafted tar archive to bypass the 'data' and 'tar' extraction filter

CVE-2026-19553 HIGH
7.6 Sep 30

Certificate hostname verification is silently skipped in CPython's TLS stack when an application enables SSLContext.chec

CVE-2026-4786 HIGH
7.0 Apr 13

Command injection in CPython's webbrowser.open() API bypasses previous CVE-2026-4519 mitigation via specially crafted UR

CVE-2026-4519 HIGH
7.0 Mar 20

The webbrowser.open() API in CPython accepts URLs with leading dashes, which certain web browsers interpret as command-l

Vendor StatusVendor

SUSE

Severity: Medium
Product Status
SLES15-SP5-CHOST-BYOS-SAP-CCloud Fixed
SLES15-SP6-CHOST-BYOS Fixed
SLES15-SP6-CHOST-BYOS-Aliyun Fixed
SLES15-SP6-CHOST-BYOS-Azure Fixed
SLES15-SP6-CHOST-BYOS-EC2 Fixed

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