python3.11: Fix of 5 CVEs
- CVE-2026-3276: sort each combining-character run in unicodedata.normalize() with a counting sort once the run exceeds a length threshold, instead of the quadratic insertion sort, so crafted input with long runs of alternating canonical combining classes can no longer burn CPU - CVE-2026-8328: apply the CVE-2021-4189 PASV fix to ftplib.ftpcp() as well, taking the data connection address from the source socket's peer instead of the host the server advertises, unless trust_server_pasv_ipv4_address opts back in - CVE-2026-15806: scope urllib.request HTTPPasswordMgr credentials by URL scheme, so credentials registered for an https:// URL are no longer sent over http://; a bare authority still matches any scheme, keeping proxy authentication working - CVE-2026-7774: validate the written link target in tarfile's data filter, rejecting a link member that resolves to the destination directory itself and resolving symlink targets against the stripped member name, so crafted link entries can no longer redirect later members outside the destination - CVE-2026-82049: resolve the hard-link source with os.path.realpath() in tarfile's makelink_with_filter, so an archive holding a hard link to a symlink can no longer duplicate that symlink to a shallower path whose relative target escapes the destination
- Products
- python3.11, python3.11-debug, python3.11-devel, python3.11-idle, python3.11-libs, python3.11-test, python3.11-tkinter
- Affected versions
- Not specified
- Fixed versions
- 3.11.2-2.el9_2.2.tuxcare.els35
- CVEs
- CVE-2021-4189, CVE-2026-15806, CVE-2026-3276, CVE-2026-7774, CVE-2026-82049, CVE-2026-8328
- Confirmed fixed CVEs
- Not specified
- Updated in this feed
- 1 Nov 2026, 11:48 UTC · Revision 1
Source evidence
- CVE-2026-3276: sort each combining-character run in unicodedata.normalize() with a counting sort once the run exceeds a length threshold, instead of the quadratic insertion sort, so crafted input with long runs of alternating canonical combining classes can no longer burn CPU - CVE-2026-8328: apply the CVE-2021-4189 PASV fix to ftplib.ftpcp() as well, taking the data connection address from the source socket's peer instead of the host the server advertises, unless trust_server_pasv_ipv4_address opts back in - CVE-2026-15806: scope urllib.request HTTPPasswordMgr credentials by URL scheme, so credentials registered for an https:// URL are no longer sent over http://; a bare authority still matches any scheme, keeping proxy authentication working - CVE-2026-7774: validate the written link target in tarfile's data filter, rejecting a link member that resolves to the destination directory itself and resolving symlink targets against the stripped member name, so crafted link entries can no longer redirect later members outside the destination - CVE-2026-82049: resolve the hard-link source with os.path.realpath() in tarfile's makelink_with_filter, so an archive holding a hard link to a symlink can no longer duplicate that symlink to a shallower path whose relative target escapes the destination
osv:CLSA-2026-1790238098
python3.11
Fixed versions: 3.11.2-2.el9_2.2.tuxcare.els35
python3.11-debug
Fixed versions: 3.11.2-2.el9_2.2.tuxcare.els35
python3.11-devel
Fixed versions: 3.11.2-2.el9_2.2.tuxcare.els35
python3.11-idle
Fixed versions: 3.11.2-2.el9_2.2.tuxcare.els35
python3.11-libs
Fixed versions: 3.11.2-2.el9_2.2.tuxcare.els35
python3.11-test
Fixed versions: 3.11.2-2.el9_2.2.tuxcare.els35
python3.11-tkinter
Fixed versions: 3.11.2-2.el9_2.2.tuxcare.els35
Complete source record
{
"id": "b0f913cda3a92955f0968c5772e9febaa8e7f480869a3774977ea5f650e60f51",
"url": "https://osv.dev/vulnerability/CLSA-2026-1790238098",
"method": "structured",
"payload": {
"kind": "advisory",
"title": "python3.11: Fix of 5 CVEs",
"summary": "- CVE-2026-3276: sort each combining-character run in unicodedata.normalize() with a counting sort once the run exceeds a length threshold, instead of the quadratic insertion sort, so crafted input with long runs of alternating canonical combining classes can no longer burn CPU - CVE-2026-8328: apply the CVE-2021-4189 PASV fix to ftplib.ftpcp() as well, taking the data connection address from the source socket's peer instead of the host the server advertises, unless trust_server_pasv_ipv4_address opts back in - CVE-2026-15806: scope urllib.request HTTPPasswordMgr credentials by URL scheme, so credentials registered for an https:// URL are no longer sent over http://; a bare authority still matches any scheme, keeping proxy authentication working - CVE-2026-7774: validate the written link target in tarfile's data filter, rejecting a link member that resolves to the destination directory itself and resolving symlink targets against the stripped member name, so crafted link entries can no longer redirect later members outside the destination - CVE-2026-82049: resolve the hard-link source with os.path.realpath() in tarfile's makelink_with_filter, so an archive holding a hard link to a symlink can no longer duplicate that symlink to a shallower path whose relative target escapes the destination",
"evidence": "osv:CLSA-2026-1790238098",
"products": [
{
"name": {
"value": "python3.11",
"evidence": "/affected/0/package/name"
},
"prerequisites": [],
"fixed_versions": [
{
"value": "3.11.2-2.el9_2.2.tuxcare.els35",
"evidence": "/affected/0/ranges"
}
],
"affected_versions": []
},
{
"name": {
"value": "python3.11-debug",
"evidence": "/affected/1/package/name"
},
"prerequisites": [],
"fixed_versions": [
{
"value": "3.11.2-2.el9_2.2.tuxcare.els35",
"evidence": "/affected/1/ranges"
}
],
"affected_versions": []
},
{
"name": {
"value": "python3.11-devel",
"evidence": "/affected/2/package/name"
},
"prerequisites": [],
"fixed_versions": [
{
"value": "3.11.2-2.el9_2.2.tuxcare.els35",
"evidence": "/affected/2/ranges"
}
],
"affected_versions": []
},
{
"name": {
"value": "python3.11-idle",
"evidence": "/affected/3/package/name"
},
"prerequisites": [],
"fixed_versions": [
{
"value": "3.11.2-2.el9_2.2.tuxcare.els35",
"evidence": "/affected/3/ranges"
}
],
"affected_versions": []
},
{
"name": {
"value": "python3.11-libs",
"evidence": "/affected/4/package/name"
},
"prerequisites": [],
"fixed_versions": [
{
"value": "3.11.2-2.el9_2.2.tuxcare.els35",
"evidence": "/affected/4/ranges"
}
],
"affected_versions": []
},
{
"name": {
"value": "python3.11-test",
"evidence": "/affected/5/package/name"
},
"prerequisites": [],
"fixed_versions": [
{
"value": "3.11.2-2.el9_2.2.tuxcare.els35",
"evidence": "/affected/5/ranges"
}
],
"affected_versions": []
},
{
"name": {
"value": "python3.11-tkinter",
"evidence": "/affected/6/package/name"
},
"prerequisites": [],
"fixed_versions": [
{
"value": "3.11.2-2.el9_2.2.tuxcare.els35",
"evidence": "/affected/6/ranges"
}
],
"affected_versions": []
}
],
"severity": "unknown",
"structured": {
"id": "CLSA-2026-1790238098",
"aliases": [
"CLSA-2026-1790238098"
],
"affected": [
{
"ranges": [
{
"type": "ECOSYSTEM",
"events": [
{
"introduced": "0"
},
{
"fixed": "3.11.2-2.el9_2.2.tuxcare.els35"
}
]
}
],
"package": {
"name": "python3.11",
"purl": "pkg:rpm/tuxcare/python3.11?distro=almalinux-9.2",
"ecosystem": "TuxCare:AlmaLinux:9.2"
},
"database_specific": {
"source": "https://github.com/cloudlinux/tuxcare-osv/tree/main/data/els_os/almalinux9.2esu/CLSA-2026-1790238098.json"
}
},
{
"ranges": [
{
"type": "ECOSYSTEM",
"events": [
{
"introduced": "0"
},
{
"fixed": "3.11.2-2.el9_2.2.tuxcare.els35"
}
]
}
],
"package": {
"name": "python3.11-debug",
"purl": "pkg:rpm/tuxcare/python3.11-debug?distro=almalinux-9.2",
"ecosystem": "TuxCare:AlmaLinux:9.2"
},
"database_specific": {
"source": "https://github.com/cloudlinux/tuxcare-osv/tree/main/data/els_os/almalinux9.2esu/CLSA-2026-1790238098.json"
}
},
{
"ranges": [
{
"type": "ECOSYSTEM",
"events": [
{
"introduced": "0"
},
{
"fixed": "3.11.2-2.el9_2.2.tuxcare.els35"
}
]
}
],
"package": {
"name": "python3.11-devel",
"purl": "pkg:rpm/tuxcare/python3.11-devel?distro=almalinux-9.2",
"ecosystem": "TuxCare:AlmaLinux:9.2"
},
"database_specific": {
"source": "https://github.com/cloudlinux/tuxcare-osv/tree/main/data/els_os/almalinux9.2esu/CLSA-2026-1790238098.json"
}
},
{
"ranges": [
{
"type": "ECOSYSTEM",
"events": [
{
"introduced": "0"
},
{
"fixed": "3.11.2-2.el9_2.2.tuxcare.els35"
}
]
}
],
"package": {
"name": "python3.11-idle",
"purl": "pkg:rpm/tuxcare/python3.11-idle?distro=almalinux-9.2",
"ecosystem": "TuxCare:AlmaLinux:9.2"
},
"database_specific": {
"source": "https://github.com/cloudlinux/tuxcare-osv/tree/main/data/els_os/almalinux9.2esu/CLSA-2026-1790238098.json"
}
},
{
"ranges": [
{
"type": "ECOSYSTEM",
"events": [
{
"introduced": "0"
},
{
"fixed": "3.11.2-2.el9_2.2.tuxcare.els35"
}
]
}
],
"package": {
"name": "python3.11-libs",
"purl": "pkg:rpm/tuxcare/python3.11-libs?distro=almalinux-9.2",
"ecosystem": "TuxCare:AlmaLinux:9.2"
},
"database_specific": {
"source": "https://github.com/cloudlinux/tuxcare-osv/tree/main/data/els_os/almalinux9.2esu/CLSA-2026-1790238098.json"
}
},
{
"ranges": [
{
"type": "ECOSYSTEM",
"events": [
{
"introduced": "0"
},
{
"fixed": "3.11.2-2.el9_2.2.tuxcare.els35"
}
]
}
],
"package": {
"name": "python3.11-test",
"purl": "pkg:rpm/tuxcare/python3.11-test?distro=almalinux-9.2",
"ecosystem": "TuxCare:AlmaLinux:9.2"
},
"database_specific": {
"source": "https://github.com/cloudlinux/tuxcare-osv/tree/main/data/els_os/almalinux9.2esu/CLSA-2026-1790238098.json"
}
},
{
"ranges": [
{
"type": "ECOSYSTEM",
"events": [
{
"introduced": "0"
},
{
"fixed": "3.11.2-2.el9_2.2.tuxcare.els35"
}
]
}
],
"package": {
"name": "python3.11-tkinter",
"purl": "pkg:rpm/tuxcare/python3.11-tkinter?distro=almalinux-9.2",
"ecosystem": "TuxCare:AlmaLinux:9.2"
},
"database_specific": {
"source": "https://github.com/cloudlinux/tuxcare-osv/tree/main/data/els_os/almalinux9.2esu/CLSA-2026-1790238098.json"
}
}
],
"modified": "2026-10-26T09:43:20.584878624Z",
"provider": "osv",
"upstream": [
"CVE-2021-4189",
"CVE-2026-15806",
"CVE-2026-3276",
"CVE-2026-7774",
"CVE-2026-82049",
"CVE-2026-8328"
],
"references": [
"https://errata.tuxcare.com/els_os/almalinux9.2esu/CLSA-2026-1790238098.html",
"https://nvd.nist.gov/vuln/detail/CVE-2026-15806",
"https://nvd.nist.gov/vuln/detail/CVE-2026-3276",
"https://nvd.nist.gov/vuln/detail/CVE-2026-7774",
"https://nvd.nist.gov/vuln/detail/CVE-2026-82049",
"https://nvd.nist.gov/vuln/detail/CVE-2026-8328"
]
},
"related_cves": [
{
"value": "CVE-2021-4189",
"evidence": "/upstream"
},
{
"value": "CVE-2026-15806",
"evidence": "/upstream"
},
{
"value": "CVE-2026-3276",
"evidence": "/upstream"
},
{
"value": "CVE-2026-7774",
"evidence": "/upstream"
},
{
"value": "CVE-2026-82049",
"evidence": "/upstream"
},
{
"value": "CVE-2026-8328",
"evidence": "/upstream"
}
],
"security_relevant": true,
"severity_evidence": null
},
"source_id": "core-osv",
"document_id": 449847,
"published_at": "2026-09-24T08:21:53+00:00"
}