FKIE_CVE-2026-3644
Vulnerability from fkie_nvd - Published: 2026-03-16 18:16 - Updated: 2026-06-04 19:30
Severity
Summary
The fix for CVE-2026-0672, which rejected control characters in http.cookies.Morsel, was incomplete. The Morsel.update(), |= operator, and unpickling paths were not patched, allowing control characters to bypass input validation. Additionally, BaseCookie.js_output() lacked the output validation applied to BaseCookie.output().
References
{
"configurations": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:a:python:python:*:*:*:*:*:*:*:*",
"matchCriteriaId": "74460139-CF2A-457B-82B4-7B655FB576B1",
"versionEndExcluding": "3.13.13",
"vulnerable": true
},
{
"criteria": "cpe:2.3:a:python:python:*:*:*:*:*:*:*:*",
"matchCriteriaId": "AA3B34C3-1E02-4674-8370-0DD4D24DBE58",
"versionEndExcluding": "3.14.4",
"versionStartIncluding": "3.14.0",
"vulnerable": true
},
{
"criteria": "cpe:2.3:a:python:python:3.15.0:alpha1:*:*:*:*:*:*",
"matchCriteriaId": "A3327507-0B1D-4F28-A983-D07A2C8A7696",
"vulnerable": true
},
{
"criteria": "cpe:2.3:a:python:python:3.15.0:alpha2:*:*:*:*:*:*",
"matchCriteriaId": "C8AF17F1-A27F-4C98-BA5A-B4319710E8D1",
"vulnerable": true
},
{
"criteria": "cpe:2.3:a:python:python:3.15.0:alpha3:*:*:*:*:*:*",
"matchCriteriaId": "24CF56B0-2F4E-42A2-B655-F493AA0A4815",
"vulnerable": true
},
{
"criteria": "cpe:2.3:a:python:python:3.15.0:alpha4:*:*:*:*:*:*",
"matchCriteriaId": "7184ABBA-B100-489E-B5C1-1C9EEC0546CA",
"vulnerable": true
},
{
"criteria": "cpe:2.3:a:python:python:3.15.0:alpha5:*:*:*:*:*:*",
"matchCriteriaId": "B6D4181B-3E1B-499B-AAB1-50868A6A6AD3",
"vulnerable": true
},
{
"criteria": "cpe:2.3:a:python:python:3.15.0:alpha6:*:*:*:*:*:*",
"matchCriteriaId": "A52F6DD2-717D-4E8C-8DB7-00890BC1ABAE",
"vulnerable": true
},
{
"criteria": "cpe:2.3:a:python:python:3.15.0:alpha7:*:*:*:*:*:*",
"matchCriteriaId": "8C46C55C-801E-4F86-B669-8E6A12B4AB6F",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"cveTags": [],
"descriptions": [
{
"lang": "en",
"value": "The fix for CVE-2026-0672, which rejected control characters in http.cookies.Morsel, was incomplete. The Morsel.update(), |= operator, and unpickling paths were not patched, allowing control characters to bypass input validation. Additionally, BaseCookie.js_output() lacked the output validation applied to BaseCookie.output()."
},
{
"lang": "es",
"value": "La soluci\u00f3n para CVE-2026-0672, que rechazaba caracteres de control en http.cookies.Morsel, era incompleta. Los m\u00e9todos Morsel.update(), el operador |= y las rutas de deserializaci\u00f3n no fueron parcheados, permitiendo que los caracteres de control eludieran la validaci\u00f3n de entrada. Adem\u00e1s, BaseCookie.js_output() carec\u00eda de la validaci\u00f3n de salida aplicada a BaseCookie.output()."
}
],
"id": "CVE-2026-3644",
"lastModified": "2026-06-04T19:30:28.423",
"metrics": {
"cvssMetricV31": [
{
"cvssData": {
"attackComplexity": "LOW",
"attackVector": "NETWORK",
"availabilityImpact": "NONE",
"baseScore": 7.5,
"baseSeverity": "HIGH",
"confidentialityImpact": "NONE",
"integrityImpact": "HIGH",
"privilegesRequired": "NONE",
"scope": "UNCHANGED",
"userInteraction": "NONE",
"vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:N",
"version": "3.1"
},
"exploitabilityScore": 3.9,
"impactScore": 3.6,
"source": "nvd@nist.gov",
"type": "Primary"
}
],
"cvssMetricV40": [
{
"cvssData": {
"Automatable": "NOT_DEFINED",
"Recovery": "NOT_DEFINED",
"Safety": "NOT_DEFINED",
"attackComplexity": "LOW",
"attackRequirements": "PRESENT",
"attackVector": "NETWORK",
"availabilityRequirement": "NOT_DEFINED",
"baseScore": 6.0,
"baseSeverity": "MEDIUM",
"confidentialityRequirement": "NOT_DEFINED",
"exploitMaturity": "NOT_DEFINED",
"integrityRequirement": "NOT_DEFINED",
"modifiedAttackComplexity": "NOT_DEFINED",
"modifiedAttackRequirements": "NOT_DEFINED",
"modifiedAttackVector": "NOT_DEFINED",
"modifiedPrivilegesRequired": "NOT_DEFINED",
"modifiedSubAvailabilityImpact": "NOT_DEFINED",
"modifiedSubConfidentialityImpact": "NOT_DEFINED",
"modifiedSubIntegrityImpact": "NOT_DEFINED",
"modifiedUserInteraction": "NOT_DEFINED",
"modifiedVulnAvailabilityImpact": "NOT_DEFINED",
"modifiedVulnConfidentialityImpact": "NOT_DEFINED",
"modifiedVulnIntegrityImpact": "NOT_DEFINED",
"privilegesRequired": "LOW",
"providerUrgency": "NOT_DEFINED",
"subAvailabilityImpact": "NONE",
"subConfidentialityImpact": "NONE",
"subIntegrityImpact": "NONE",
"userInteraction": "NONE",
"valueDensity": "NOT_DEFINED",
"vectorString": "CVSS:4.0/AV:N/AC:L/AT:P/PR:L/UI:N/VC:L/VI:H/VA:N/SC:N/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X",
"version": "4.0",
"vulnAvailabilityImpact": "NONE",
"vulnConfidentialityImpact": "LOW",
"vulnIntegrityImpact": "HIGH",
"vulnerabilityResponseEffort": "NOT_DEFINED"
},
"source": "cna@python.org",
"type": "Secondary"
}
]
},
"published": "2026-03-16T18:16:09.907",
"references": [
{
"source": "cna@python.org",
"tags": [
"Patch"
],
"url": "https://github.com/python/cpython/commit/57e88c1cf95e1481b94ae57abe1010469d47a6b4"
},
{
"source": "cna@python.org",
"tags": [
"Patch"
],
"url": "https://github.com/python/cpython/commit/62ceb396fcbe69da1ded3702de586f4072b590dd"
},
{
"source": "cna@python.org",
"tags": [
"Patch"
],
"url": "https://github.com/python/cpython/commit/d16ecc6c3626f0e2cc8f08c309c83934e8a979dd"
},
{
"source": "cna@python.org",
"tags": [
"Issue Tracking"
],
"url": "https://github.com/python/cpython/issues/145599"
},
{
"source": "cna@python.org",
"tags": [
"Patch"
],
"url": "https://github.com/python/cpython/pull/145600"
},
{
"source": "cna@python.org",
"tags": [
"Third Party Advisory"
],
"url": "https://mail.python.org/archives/list/security-announce@python.org/thread/H6CADMBCDRFGWCMOXWUIHFJNV43GABJ7/"
}
],
"sourceIdentifier": "cna@python.org",
"vulnStatus": "Analyzed",
"weaknesses": [
{
"description": [
{
"lang": "en",
"value": "CWE-20"
},
{
"lang": "en",
"value": "CWE-116"
}
],
"source": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"type": "Secondary"
}
]
}
Loading…
Loading…
Experimental. This forecast is provided for visualization only and may change without notice. Do not use it for operational decisions.
Forecast uses a logistic model when the trend is rising, or an exponential decay model when the trend is falling. Fitted via linearized least squares.
Sightings
| Author | Source | Type | Date | Other |
|---|
Nomenclature
- Seen: The vulnerability was mentioned, discussed, or observed by the user.
- Confirmed: The vulnerability has been validated from an analyst's perspective.
- Published Proof of Concept: A public proof of concept is available for this vulnerability.
- Exploited: The vulnerability was observed as exploited by the user who reported the sighting.
- Patched: The vulnerability was observed as successfully patched by the user who reported the sighting.
- Not exploited: The vulnerability was not observed as exploited by the user who reported the sighting.
- Not confirmed: The user expressed doubt about the validity of the vulnerability.
- Not patched: The vulnerability was not observed as successfully patched by the user who reported the sighting.
Loading…
Loading…