LiveActive security incident?Get immediate response
CVE Record

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().

MediumCVSS 6Not KEV-listedUpdated
Glexia's TakeAutomated analysismoderate

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.
Prepared
Confidence
medium
Sources
5

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.

Open ATT&CK lookup
cwe · low confidence lookup

CWE-20: Exact CWE lookup

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.

Open ATT&CK lookup
cve · low confidence lookup

CVE-2026-3644 mapping review

Open the CVE-to-ATT&CK bridge for reviewed, inferred, or future official mappings tied to this CVE.

Open ATT&CK lookup
Vulnerability profileCVE Program record
Severity
Medium
CVSS
6 (4.0)
Known Exploited
No
Published

Vector: 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

Official CVE source material

CNA and ADP enrichment extracted from CVE v5

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.

1CVSS vectors
3Timeline events
1ADP providers
10Source links

SSVC decision data

CISA-ADPCISA Coordinator
Timestamp
Version
2.0.3
Exploitation: noneAutomatable: noTechnical Impact: partial

CVSS vector scores

1 official score

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.

ScoreVersionSeverityVectorExploitImpactSource
6CVSS 4.0MediumCVSS:4.0/AV:N/AC:L/AT:P/PR:L/UI:N/VC:L/VI:H/VA:N/SC:N/SI:N/SA:N——PSF

Vulnerability scoring details

Base CVSS 4.0 score

6Medium
CVSS 4.0 vector shape for CVE-2026-3644Attack VectorAttack ComplexityAttack RequirementsPrivileges RequiredUser InteractionVS ConfidentialityVS IntegrityVS AvailabilitySS ConfidentialitySS IntegritySS Availability

Vector: 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

Attack Vector
NetworkAdjacentLocalPhysical
Attack Complexity
LowHigh
Attack Requirements
NonePresent
Privileges Required
NoneLowHigh
User Interaction
NonePassiveActive
VS Confidentiality
HighLowNone
VS Integrity
HighLowNone
VS Availability
HighLowNone
SS Confidentiality
HighLowNone
SS Integrity
HighLowNone
SS Availability
HighLowNone

Vulnerability timeline

Timeline events are normalized from CVE metadata, CNA source timelines, ADP timelines, and KEV metadata when present.

  1. CVE reservedCVE Program

    The CVE ID was reserved by the assigning CNA.

  2. CVE publishedCVE Program

    The CVE record was published.

  3. CVE updatedCVE Program

    The CVE record metadata indicates this as the latest update time.

ADP provider summaries

CISA-ADPCISA ADP Vulnrichment
other:ssvc
Affected products

Products and packages named in the record

VendorProductVersion / packageStatus
Python Software FoundationCPython0, 3.11.0, 3.12.0, 3.13.0, 3.14.0, 3.15.0a1unaffected
Weakness

CWE details

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.

CWE-20 · source CWE mapping

Improper Input Validation

Improper Input Validation represents a recurring weakness pattern that can create exploitable paths when design, validation, or implementation controls are missing.