Fix CVE(s): CVE-2026-0672, CVE-2026-3644, CVE-2026-4224
* SECURITY UPDATE: Control characters not rejected in Cookie module (HTTP header injection) - debian/patches/CVE-2026-0672.patch: add _has_control_character() helper and reject control characters in Morsel.__setitem__(), Morsel.set() and BaseCookie.output() in Lib/Cookie.py, plus regression tests in Lib/test/test_cookie.py - CVE-2026-0672 * SECURITY UPDATE: Incomplete rejection of control characters in Cookie module - debian/patches/CVE-2026-3644.patch: add control character validation to Morsel.update() and Morsel.js_output() in Lib/Cookie.py - CVE-2026-3644 * SECURITY UPDATE: C stack overflow via deeply nested inline DTD content model in pyexpat - debian/patches/CVE-2026-4224.patch: add Py_EnterRecursiveCall/Py_LeaveRecursiveCall guards to conv_content_model() in Modules/pyexpat.c to prevent unbounded C recursion when ElementDeclHandler is registered - CVE-2026-4224
- Products
- idle-python2.7, libpython2.7, libpython2.7-dev, libpython2.7-minimal, libpython2.7-stdlib, libpython2.7-testsuite, python2.7, python2.7-dev, python2.7-doc, python2.7-examples, python2.7-minimal
- Affected versions
- Not specified
- Fixed versions
- 2.7.18-1~20.04.7+tuxcare.els3
- CVEs
- CVE-2026-0672, CVE-2026-3644, CVE-2026-4224
- Confirmed fixed CVEs
- Not specified
- Updated in this feed
- 1 Nov 2026, 11:44 UTC · Revision 1
Source evidence
Fix CVE(s): CVE-2026-0672, CVE-2026-3644, CVE-2026-4224
core-osv · Original sourcePublished 16 Jun 2026, 14:31 UTC
* SECURITY UPDATE: Control characters not rejected in Cookie module (HTTP header injection) - debian/patches/CVE-2026-0672.patch: add _has_control_character() helper and reject control characters in Morsel.__setitem__(), Morsel.set() and BaseCookie.output() in Lib/Cookie.py, plus regression tests in Lib/test/test_cookie.py - CVE-2026-0672 * SECURITY UPDATE: Incomplete rejection of control characters in Cookie module - debian/patches/CVE-2026-3644.patch: add control character validation to Morsel.update() and Morsel.js_output() in Lib/Cookie.py - CVE-2026-3644 * SECURITY UPDATE: C stack overflow via deeply nested inline DTD content model in pyexpat - debian/patches/CVE-2026-4224.patch: add Py_EnterRecursiveCall/Py_LeaveRecursiveCall guards to conv_content_model() in Modules/pyexpat.c to prevent unbounded C recursion when ElementDeclHandler is registered - CVE-2026-4224
osv:CLSA-2026-1781620276
idle-python2.7
Fixed versions: 2.7.18-1~20.04.7+tuxcare.els3
libpython2.7
Fixed versions: 2.7.18-1~20.04.7+tuxcare.els3
libpython2.7-dev
Fixed versions: 2.7.18-1~20.04.7+tuxcare.els3
libpython2.7-minimal
Fixed versions: 2.7.18-1~20.04.7+tuxcare.els3
libpython2.7-stdlib
Fixed versions: 2.7.18-1~20.04.7+tuxcare.els3
libpython2.7-testsuite
Fixed versions: 2.7.18-1~20.04.7+tuxcare.els3
python2.7
Fixed versions: 2.7.18-1~20.04.7+tuxcare.els3
python2.7-dev
Fixed versions: 2.7.18-1~20.04.7+tuxcare.els3
python2.7-doc
Fixed versions: 2.7.18-1~20.04.7+tuxcare.els3
python2.7-examples
Fixed versions: 2.7.18-1~20.04.7+tuxcare.els3
python2.7-minimal
Fixed versions: 2.7.18-1~20.04.7+tuxcare.els3
Complete source record
{
"id": "da7b517b8f3103300f24089f381a2d478841baa6f18710c273a80d527228c718",
"url": "https://osv.dev/vulnerability/CLSA-2026-1781620276",
"method": "structured",
"payload": {
"kind": "advisory",
"title": "Fix CVE(s): CVE-2026-0672, CVE-2026-3644, CVE-2026-4224",
"summary": "* SECURITY UPDATE: Control characters not rejected in Cookie module (HTTP header injection) - debian/patches/CVE-2026-0672.patch: add _has_control_character() helper and reject control characters in Morsel.__setitem__(), Morsel.set() and BaseCookie.output() in Lib/Cookie.py, plus regression tests in Lib/test/test_cookie.py - CVE-2026-0672 * SECURITY UPDATE: Incomplete rejection of control characters in Cookie module - debian/patches/CVE-2026-3644.patch: add control character validation to Morsel.update() and Morsel.js_output() in Lib/Cookie.py - CVE-2026-3644 * SECURITY UPDATE: C stack overflow via deeply nested inline DTD content model in pyexpat - debian/patches/CVE-2026-4224.patch: add Py_EnterRecursiveCall/Py_LeaveRecursiveCall guards to conv_content_model() in Modules/pyexpat.c to prevent unbounded C recursion when ElementDeclHandler is registered - CVE-2026-4224",
"evidence": "osv:CLSA-2026-1781620276",
"products": [
{
"name": {
"value": "idle-python2.7",
"evidence": "/affected/0/package/name"
},
"prerequisites": [],
"fixed_versions": [
{
"value": "2.7.18-1~20.04.7+tuxcare.els3",
"evidence": "/affected/0/ranges"
}
],
"affected_versions": []
},
{
"name": {
"value": "libpython2.7",
"evidence": "/affected/1/package/name"
},
"prerequisites": [],
"fixed_versions": [
{
"value": "2.7.18-1~20.04.7+tuxcare.els3",
"evidence": "/affected/1/ranges"
}
],
"affected_versions": []
},
{
"name": {
"value": "libpython2.7-dev",
"evidence": "/affected/2/package/name"
},
"prerequisites": [],
"fixed_versions": [
{
"value": "2.7.18-1~20.04.7+tuxcare.els3",
"evidence": "/affected/2/ranges"
}
],
"affected_versions": []
},
{
"name": {
"value": "libpython2.7-minimal",
"evidence": "/affected/3/package/name"
},
"prerequisites": [],
"fixed_versions": [
{
"value": "2.7.18-1~20.04.7+tuxcare.els3",
"evidence": "/affected/3/ranges"
}
],
"affected_versions": []
},
{
"name": {
"value": "libpython2.7-stdlib",
"evidence": "/affected/4/package/name"
},
"prerequisites": [],
"fixed_versions": [
{
"value": "2.7.18-1~20.04.7+tuxcare.els3",
"evidence": "/affected/4/ranges"
}
],
"affected_versions": []
},
{
"name": {
"value": "libpython2.7-testsuite",
"evidence": "/affected/5/package/name"
},
"prerequisites": [],
"fixed_versions": [
{
"value": "2.7.18-1~20.04.7+tuxcare.els3",
"evidence": "/affected/5/ranges"
}
],
"affected_versions": []
},
{
"name": {
"value": "python2.7",
"evidence": "/affected/6/package/name"
},
"prerequisites": [],
"fixed_versions": [
{
"value": "2.7.18-1~20.04.7+tuxcare.els3",
"evidence": "/affected/6/ranges"
}
],
"affected_versions": []
},
{
"name": {
"value": "python2.7-dev",
"evidence": "/affected/7/package/name"
},
"prerequisites": [],
"fixed_versions": [
{
"value": "2.7.18-1~20.04.7+tuxcare.els3",
"evidence": "/affected/7/ranges"
}
],
"affected_versions": []
},
{
"name": {
"value": "python2.7-doc",
"evidence": "/affected/8/package/name"
},
"prerequisites": [],
"fixed_versions": [
{
"value": "2.7.18-1~20.04.7+tuxcare.els3",
"evidence": "/affected/8/ranges"
}
],
"affected_versions": []
},
{
"name": {
"value": "python2.7-examples",
"evidence": "/affected/9/package/name"
},
"prerequisites": [],
"fixed_versions": [
{
"value": "2.7.18-1~20.04.7+tuxcare.els3",
"evidence": "/affected/9/ranges"
}
],
"affected_versions": []
},
{
"name": {
"value": "python2.7-minimal",
"evidence": "/affected/10/package/name"
},
"prerequisites": [],
"fixed_versions": [
{
"value": "2.7.18-1~20.04.7+tuxcare.els3",
"evidence": "/affected/10/ranges"
}
],
"affected_versions": []
}
],
"severity": "unknown",
"structured": {
"id": "CLSA-2026-1781620276",
"aliases": [
"CLSA-2026-1781620276"
],
"affected": [
{
"ranges": [
{
"type": "ECOSYSTEM",
"events": [
{
"introduced": "0"
},
{
"fixed": "2.7.18-1~20.04.7+tuxcare.els3"
}
]
}
],
"package": {
"name": "idle-python2.7",
"purl": "pkg:deb/tuxcare/idle-python2.7?distro=ubuntu-20.04",
"ecosystem": "TuxCare:Ubuntu:20.04"
},
"database_specific": {
"source": "https://github.com/cloudlinux/tuxcare-osv/tree/main/data/els_os/ubuntu20.04els/CLSA-2026-1781620276.json"
}
},
{
"ranges": [
{
"type": "ECOSYSTEM",
"events": [
{
"introduced": "0"
},
{
"fixed": "2.7.18-1~20.04.7+tuxcare.els3"
}
]
}
],
"package": {
"name": "libpython2.7",
"purl": "pkg:deb/tuxcare/libpython2.7?distro=ubuntu-20.04",
"ecosystem": "TuxCare:Ubuntu:20.04"
},
"database_specific": {
"source": "https://github.com/cloudlinux/tuxcare-osv/tree/main/data/els_os/ubuntu20.04els/CLSA-2026-1781620276.json"
}
},
{
"ranges": [
{
"type": "ECOSYSTEM",
"events": [
{
"introduced": "0"
},
{
"fixed": "2.7.18-1~20.04.7+tuxcare.els3"
}
]
}
],
"package": {
"name": "libpython2.7-dev",
"purl": "pkg:deb/tuxcare/libpython2.7-dev?distro=ubuntu-20.04",
"ecosystem": "TuxCare:Ubuntu:20.04"
},
"database_specific": {
"source": "https://github.com/cloudlinux/tuxcare-osv/tree/main/data/els_os/ubuntu20.04els/CLSA-2026-1781620276.json"
}
},
{
"ranges": [
{
"type": "ECOSYSTEM",
"events": [
{
"introduced": "0"
},
{
"fixed": "2.7.18-1~20.04.7+tuxcare.els3"
}
]
}
],
"package": {
"name": "libpython2.7-minimal",
"purl": "pkg:deb/tuxcare/libpython2.7-minimal?distro=ubuntu-20.04",
"ecosystem": "TuxCare:Ubuntu:20.04"
},
"database_specific": {
"source": "https://github.com/cloudlinux/tuxcare-osv/tree/main/data/els_os/ubuntu20.04els/CLSA-2026-1781620276.json"
}
},
{
"ranges": [
{
"type": "ECOSYSTEM",
"events": [
{
"introduced": "0"
},
{
"fixed": "2.7.18-1~20.04.7+tuxcare.els3"
}
]
}
],
"package": {
"name": "libpython2.7-stdlib",
"purl": "pkg:deb/tuxcare/libpython2.7-stdlib?distro=ubuntu-20.04",
"ecosystem": "TuxCare:Ubuntu:20.04"
},
"database_specific": {
"source": "https://github.com/cloudlinux/tuxcare-osv/tree/main/data/els_os/ubuntu20.04els/CLSA-2026-1781620276.json"
}
},
{
"ranges": [
{
"type": "ECOSYSTEM",
"events": [
{
"introduced": "0"
},
{
"fixed": "2.7.18-1~20.04.7+tuxcare.els3"
}
]
}
],
"package": {
"name": "libpython2.7-testsuite",
"purl": "pkg:deb/tuxcare/libpython2.7-testsuite?distro=ubuntu-20.04",
"ecosystem": "TuxCare:Ubuntu:20.04"
},
"database_specific": {
"source": "https://github.com/cloudlinux/tuxcare-osv/tree/main/data/els_os/ubuntu20.04els/CLSA-2026-1781620276.json"
}
},
{
"ranges": [
{
"type": "ECOSYSTEM",
"events": [
{
"introduced": "0"
},
{
"fixed": "2.7.18-1~20.04.7+tuxcare.els3"
}
]
}
],
"package": {
"name": "python2.7",
"purl": "pkg:deb/tuxcare/python2.7?distro=ubuntu-20.04",
"ecosystem": "TuxCare:Ubuntu:20.04"
},
"database_specific": {
"source": "https://github.com/cloudlinux/tuxcare-osv/tree/main/data/els_os/ubuntu20.04els/CLSA-2026-1781620276.json"
}
},
{
"ranges": [
{
"type": "ECOSYSTEM",
"events": [
{
"introduced": "0"
},
{
"fixed": "2.7.18-1~20.04.7+tuxcare.els3"
}
]
}
],
"package": {
"name": "python2.7-dev",
"purl": "pkg:deb/tuxcare/python2.7-dev?distro=ubuntu-20.04",
"ecosystem": "TuxCare:Ubuntu:20.04"
},
"database_specific": {
"source": "https://github.com/cloudlinux/tuxcare-osv/tree/main/data/els_os/ubuntu20.04els/CLSA-2026-1781620276.json"
}
},
{
"ranges": [
{
"type": "ECOSYSTEM",
"events": [
{
"introduced": "0"
},
{
"fixed": "2.7.18-1~20.04.7+tuxcare.els3"
}
]
}
],
"package": {
"name": "python2.7-doc",
"purl": "pkg:deb/tuxcare/python2.7-doc?distro=ubuntu-20.04",
"ecosystem": "TuxCare:Ubuntu:20.04"
},
"database_specific": {
"source": "https://github.com/cloudlinux/tuxcare-osv/tree/main/data/els_os/ubuntu20.04els/CLSA-2026-1781620276.json"
}
},
{
"ranges": [
{
"type": "ECOSYSTEM",
"events": [
{
"introduced": "0"
},
{
"fixed": "2.7.18-1~20.04.7+tuxcare.els3"
}
]
}
],
"package": {
"name": "python2.7-examples",
"purl": "pkg:deb/tuxcare/python2.7-examples?distro=ubuntu-20.04",
"ecosystem": "TuxCare:Ubuntu:20.04"
},
"database_specific": {
"source": "https://github.com/cloudlinux/tuxcare-osv/tree/main/data/els_os/ubuntu20.04els/CLSA-2026-1781620276.json"
}
},
{
"ranges": [
{
"type": "ECOSYSTEM",
"events": [
{
"introduced": "0"
},
{
"fixed": "2.7.18-1~20.04.7+tuxcare.els3"
}
]
}
],
"package": {
"name": "python2.7-minimal",
"purl": "pkg:deb/tuxcare/python2.7-minimal?distro=ubuntu-20.04",
"ecosystem": "TuxCare:Ubuntu:20.04"
},
"database_specific": {
"source": "https://github.com/cloudlinux/tuxcare-osv/tree/main/data/els_os/ubuntu20.04els/CLSA-2026-1781620276.json"
}
}
],
"modified": "2026-10-26T09:32:05.227518273Z",
"provider": "osv",
"upstream": [
"CVE-2026-0672",
"CVE-2026-3644",
"CVE-2026-4224"
],
"references": [
"https://errata.tuxcare.com/els_os/ubuntu20.04els/CLSA-2026-1781620276.html",
"https://nvd.nist.gov/vuln/detail/CVE-2026-0672",
"https://nvd.nist.gov/vuln/detail/CVE-2026-3644",
"https://nvd.nist.gov/vuln/detail/CVE-2026-4224"
]
},
"related_cves": [
{
"value": "CVE-2026-0672",
"evidence": "/upstream"
},
{
"value": "CVE-2026-3644",
"evidence": "/upstream"
},
{
"value": "CVE-2026-4224",
"evidence": "/upstream"
}
],
"security_relevant": true,
"severity_evidence": null
},
"source_id": "core-osv",
"document_id": 449669,
"published_at": "2026-06-16T14:31:34+00:00"
}