Python CPython up to 3.14.x b64decode/standard_b64decode/urlsafe_b64decode type conversion
| CVSS Meta Temp Score | Current Exploit Price (≈) | CTI Interest Score |
|---|---|---|
| 4.4 | $0-$5k | 0.00 |
Summary
A vulnerability classified as problematic has been found in Python CPython up to 3.14.x. This affects the function b64decode/standard_b64decode/urlsafe_b64decode. This manipulation causes an unknown weakness.
The identification of this vulnerability is CVE-2025-12781. It is possible to initiate the attack remotely. There is no exploit available.
It is recommended to upgrade the affected component.
Details
A vulnerability has been found in Python CPython up to 3.14.x and classified as problematic. The CWE definition for the vulnerability is CWE-704. The product does not correctly convert an object, resource, or structure from one type to a different type. As an impact it is known to affect integrity. The summary by CVE is:
When passing data to the b64decode(), standard_b64decode(), and urlsafe_b64decode() functions in the "base64" module the characters "+/" will always be accepted, regardless of the value of "altchars" parameter, typically used to establish an "alternative base64 alphabet" such as the URL safe alphabet. This behavior matches what is recommended in earlier base64 RFCs, but newer RFCs now recommend either dropping characters outside the specified base64 alphabet or raising an error. The old behavior has the possibility of causing data integrity issues. This behavior can only be insecure if your application uses an alternate base64 alphabet (without "+/"). If your application does not use the "altchars" parameter or the urlsafe_b64decode() function, then your application does not use an alternative base64 alphabet. The attached patches DOES NOT make the base64-decode behavior raise an error, as this would be a change in behavior and break existing programs. Instead, the patch deprecates the behavior which will be replaced with the newly recommended behavior in a future version of Python. Users are recommended to mitigate by verifying user-controlled inputs match the base64 alphabet they are expecting or verify that their application would not be affected if the b64decode() functions accepted "+" or "/" outside of altchars.
The advisory is shared at github.com. This vulnerability is known as CVE-2025-12781 since 11/05/2025. The exploitation appears to be difficult. The attack can be launched remotely. The exploitation doesn't need any form of authentication. Technical details are known, but no exploit is available.
The vulnerability scanner Nessus provides a plugin with the ID 300978 (SUSE SLED15 / SLES15 / openSUSE 15 Security Update : python311 (SUSE-SU-2026:0767-1)), which helps to determine the existence of the flaw in a target environment.
Upgrading to version 3.15.0 eliminates this vulnerability. Applying a patch is able to eliminate this problem. The bugfix is ready for download at github.com. The best possible mitigation is suggested to be upgrading to the latest version.
The vulnerability is also documented in the databases at Tenable (300978), EUVD (EUVD-2026-3598) and CERT Bund (WID-SEC-2026-0196). If you want to get the best quality for vulnerability data then you always have to consider VulDB.
Affected
- Red Hat Enterprise Linux
- SUSE Linux
- SUSE openSUSE
- Open Source Python
- Dell Secure Connect Gateway
Product
Type
Vendor
Name
Version
License
Website
- Product: https://github.com/python/cpython/
CPE 2.3
CPE 2.2
CVSSv4
VulDB Vector: 🔒VulDB Reliability: 🔍
CNA CVSS-B Score: 🔒
CNA CVSS-BT Score: 🔒
CNA Vector: 🔒
CVSSv3
VulDB Meta Base Score: 4.5VulDB Meta Temp Score: 4.4
VulDB Base Score: 3.7
VulDB Temp Score: 3.6
VulDB Vector: 🔒
VulDB Reliability: 🔍
NVD Base Score: 5.3
NVD Vector: 🔒
CVSSv2
| AV | AC | Au | C | I | A |
|---|---|---|---|---|---|
| 💳 | 💳 | 💳 | 💳 | 💳 | 💳 |
| 💳 | 💳 | 💳 | 💳 | 💳 | 💳 |
| 💳 | 💳 | 💳 | 💳 | 💳 | 💳 |
| Vector | Complexity | Authentication | Confidentiality | Integrity | Availability |
|---|---|---|---|---|---|
| Unlock | Unlock | Unlock | Unlock | Unlock | Unlock |
| Unlock | Unlock | Unlock | Unlock | Unlock | Unlock |
| Unlock | Unlock | Unlock | Unlock | Unlock | Unlock |
VulDB Base Score: 🔒
VulDB Temp Score: 🔒
VulDB Reliability: 🔍
Exploiting
Class: Type conversionCWE: CWE-704
CAPEC: 🔒
ATT&CK: 🔒
Physical: No
Local: No
Remote: Yes
Availability: 🔒
Status: Not defined
EPSS Score: 🔒
EPSS Percentile: 🔒
Price Prediction: 🔍
Current Price Estimation: 🔒
| 0-Day | Unlock | Unlock | Unlock | Unlock |
|---|---|---|---|---|
| Today | Unlock | Unlock | Unlock | Unlock |
Nessus ID: 300978
Nessus Name: SUSE SLED15 / SLES15 / openSUSE 15 Security Update : python311 (SUSE-SU-2026:0767-1)
Threat Intelligence
Interest: 🔍Active Actors: 🔍
Active APT Groups: 🔍
Countermeasures
Recommended: UpgradeStatus: 🔍
0-Day Time: 🔒
Upgrade: CPython 3.15.0
Patch: github.com
Timeline
11/05/2025 CVE reserved01/21/2026 VulDB entry created
01/22/2026 Advisory disclosed
04/24/2026 VulDB entry last update
Sources
Product: github.comAdvisory: 125346
Status: Confirmed
CVE: CVE-2025-12781 (🔒)
GCVE (CVE): GCVE-0-2025-12781
GCVE (VulDB): GCVE-100-342229
EUVD: 🔒
CERT Bund: WID-SEC-2026-0196 - CPython: Schwachstelle ermöglicht nicht spezifizierten Angriff
Entry
Created: 01/22/2026 00:35Updated: 04/24/2026 14:05
Changes: 01/22/2026 00:35 (68), 01/22/2026 12:28 (1), 01/22/2026 12:57 (7), 01/24/2026 15:04 (2), 02/03/2026 05:01 (11), 03/08/2026 10:31 (2), 04/24/2026 14:05 (1)
Complete: 🔍
Cache ID: 216::103
If you want to get the best quality for vulnerability data then you always have to consider VulDB.
No comments yet. Languages: en.
Please log in to comment.