CVE-2026-3644: Incomplete control character validation in http.cookies
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().
Security readout for executives and security teams
Plain-English summary
CPython’s cookie-handling library can accept control characters through several paths missed by an earlier fix. In applications that let a low-privileged or otherwise positioned attacker influence cookie objects, this could corrupt generated cookie or JavaScript output and materially affect integrity. Impact depends on how the application constructs, updates, restores, and emits cookies.
Executive priority
Treat this as a moderate-priority integrity issue. Prioritize internet-facing applications that generate cookies from user-controlled data, deserialize cookie objects, or use JavaScript cookie output. Patch during the next expedited maintenance window after confirming affected versions; accelerate remediation where cookies influence authentication, authorization, or other security-sensitive behavior.
Technical view
The CVE-2026-0672 fix did not cover Morsel.update(), the |= operator, or unpickling. BaseCookie.js_output() also lacked BaseCookie.output() validation. These gaps permit control characters to bypass expected validation. CVSS 4.0 is 6.0, reflecting network reachability, low complexity, a prerequisite condition, low privileges, and potentially high integrity impact.
Likely exposure
Exposure is most likely where affected CPython versions process attacker-influenced cookie values through Morsel updates, merge operators, deserialization, or js_output(). The bundle lists CPython 3.11 through 3.15.0a1, but does not provide precise affected ranges or fixed release numbers; confirm applicability against the vendor advisory.
Exploitation context
The bundle does not identify known active exploitation, and the CVE is not listed as KEV. Exploitation requires a prerequisite condition and low privileges according to the supplied CVSS vector. Practical risk depends on whether an attacker can influence the vulnerable cookie-processing paths and whether their output reaches a security-sensitive response.
Researcher notes
This is an incomplete-fix vulnerability spanning multiple alternate mutation and output paths. Review each path independently because testing only direct Morsel assignment or BaseCookie.output() may produce false assurance. The supplied version data is ambiguous and defaults unspecified versions to unaffected, so branch-specific vendor confirmation is necessary before declaring exposure or remediation complete.
Mitigation direction
Upgrade to a vendor-confirmed fixed CPython release for the deployed branch.
Follow the Python security advisory for branch-specific remediation guidance.
Avoid deserializing untrusted cookie or Morsel pickle data.
Validate cookie names and values before update, merge, or JavaScript output paths.
Validation and detection
Inventory deployed CPython versions and compare them with the vendor advisory.
Search application code for Morsel.update(), |=, unpickling, and BaseCookie.js_output() usage.
Trace whether untrusted input can reach identified cookie-processing paths.
Confirm patched deployments reject control characters across every affected path.
Run relevant application regression tests after updating CPython.
Generated from the cited source records. This long-tail analysis has not been individually reviewed by a named human.
Potential ATT&CK relevance
Conservative CVE-to-ATT&CK context
These mappings and lookup hints may be relevant to the vulnerability behavior, CWE, affected product, or exposure path. Glexia-inferred context is not an official MITRE, ATT&CK, CWE, or CVE Program mapping.
ATT&CK lookup starting points
Use these exact CWE pages and searches to review the Glexia ATT&CK library from this CVE's weakness and description context.
cwe · medium confidence lookup
CWE-116: User-session and phishing behavior lookup
Client-side and session-facing weaknesses should be reviewed alongside initial-access and user-execution behaviors. Open the exact CWE lookup page first, then review the ATT&CK searches from that MITRE weakness context. This is a Glexia lookup hint, not an official ATT&CK mapping.
Use the exact CWE identifier as the starting point before reviewing related ATT&CK behavior. Open the exact CWE lookup page first, then review the ATT&CK searches from that MITRE weakness context. This is a Glexia lookup hint, not an official ATT&CK mapping.
These fields come from the CVE record and ADP containers, not from Glexia's Take. They preserve time-varying source decisions such as CISA SSVC, KEV status, CVSS metrics, and provider references.
We collect every scored CVSS vector available in the official CNA and ADP containers. When more than one version is present, the table keeps the source vectors side by side instead of collapsing them into the highest score.
CWE links open Glexia weakness intelligence pages with official CWE context, developer remediation guidance, and related CVE mappings.
CWE-116 · source CWE mapping
Improper Encoding or Escaping of Output
Improper Encoding or Escaping of Output represents a recurring weakness pattern that can create exploitable paths when design, validation, or implementation controls are missing.
Improper Input Validation represents a recurring weakness pattern that can create exploitable paths when design, validation, or implementation controls are missing.