CVE-2026-12003
CPython >3.11 Insecure Input Validation resulting in privilege escalation
To allow builds of Python to be run from an in-tree layout (rather than an installed file layout), the VPATH variable is defined at build time and used to locate certain landmarks - specifically, Modules/setup.local. When this landmark is found relative to VPATH relative to the executable, Python assumes it is running in a source tree and generates a different default sys.path. This code remains in release builds, so that release-ready builds can be built in-tree.
On Windows, since builds are written to 'PCbuild/', the value of
VPATH is set to '....', which results in a landmark of
'....\Modules\setup.local'. This path is outside the install directory
of Python, and may have different permissions, potentially allowing a
low-privilege user to create the landmark and an alternative Lib
folder that will be discovered by an otherwise restricted install.
Such a setup occurs with the legacy default install location for all users (in the now superseded EXE installer), due to how Windows allows all users to create folders in the root directory of their OS drive.
Our recommended mitigation on Windows is to migrate away from the
legacy installer and use the new Python install
manager to install
for the current user. Installs where the directory two levels above the
Python installation directory have equivalent permissions are unaffected
(in general, a per-user install cannot be modified at all by other
users, removing any escalation of privilege risk, and could be directly
modified by a privileged user, making the potential tampering
irrelevant). Alternative mitigations might include preemptively creating
and restricting access to a Modules directory. Be aware that only 3.13
and 3.14 will receive updated legacy installers - earlier fixes are only
provided as sources.
Platforms other than Windows allow VPATH to be overridden, but as they don't usually use a separated directory in the build for binaries, are unlikely to have a landmark reference outside of the install directory.
The landmark detection involving VPATH is a fallback for when a more specific landmark - .\pybuilddir.txt - is absent, and was included for compatibility. Future releases of Python will no longer include the fallback, and so builds will need to generate or preserve the pybuilddir.txt file in order to work in-tree. This landmark file has been generated on Windows since 3.11, and on other platforms for longer.
Attack profile
How easy it is to exploit
- Attack vector
- Local
- Complexity
- Low
- Privileges needed
- Low
- User interaction
- Active
What an attacker can affect
- Confidentiality
- High
- Integrity
- High
- Availability
- None
Exploit likelihood
What each source reports
CVE List Score used
5.3
CPython >3.11 Insecure Input Validation resulting in privilege escalation
To allow builds of Python to be run from an in-tree layout (rather than an installed file layout), the VPATH variable is defined at build time and used to locate certain landmarks - specifically, Modules/setup.local. When this landmark is found relative to VPATH relative to the executable, Python assumes it is running in a source tree and generates a different default sys.path. This code remains in release builds, so that release-ready builds can be built in-tree.
On Windows, since builds are written to 'PCbuild/', the value of
VPATH is set to '....', which results in a landmark of
'....\Modules\setup.local'. This path is outside the install directory
of Python, and may have different permissions, potentially allowing a
low-privilege user to create the landmark and an alternative Lib
folder that will be discovered by an otherwise restricted install.
Such a setup occurs with the legacy default install location for all users (in the now superseded EXE installer), due to how Windows allows all users to create folders in the root directory of their OS drive.
Our recommended mitigation on Windows is to migrate away from the
legacy installer and use the new Python install
manager to install
for the current user. Installs where the directory two levels above the
Python installation directory have equivalent permissions are unaffected
(in general, a per-user install cannot be modified at all by other
users, removing any escalation of privilege risk, and could be directly
modified by a privileged user, making the potential tampering
irrelevant). Alternative mitigations might include preemptively creating
and restricting access to a Modules directory. Be aware that only 3.13
and 3.14 will receive updated legacy installers - earlier fixes are only
provided as sources.
Platforms other than Windows allow VPATH to be overridden, but as they don't usually use a separated directory in the build for binaries, are unlikely to have a landmark reference outside of the install directory.
The landmark detection involving VPATH is a fallback for when a more specific landmark - .\pybuilddir.txt - is absent, and was included for compatibility. Future releases of Python will no longer include the fallback, and so builds will need to generate or preserve the pybuilddir.txt file in order to work in-tree. This landmark file has been generated on Windows since 3.11, and on other platforms for longer.
- Record
CVE-2026-12003- CVSS 4.0
- 5.3 Medium
CVSS:4.0/AV:L/AC:L/AT:P/PR:L/UI:A/VC:H/VI:H/VA:N/SC:N/SI:N/SA:N - Weakness
- CWE-427
- Updated
- 2026-11-02
EUVDEUVD-2026-37125
5.3
To allow builds of Python to be run from an in-tree layout (rather than an installed file layout), the VPATH variable is defined at build time and used to locate certain landmarks - specifically, Modules/setup.local. When this landmark is found relative to VPATH relative to the executable, Python assumes it is running in a source tree and generates a different default sys.path. This code remains in release builds, so that release-ready builds can be built in-tree.
On Windows, since builds are written to 'PCbuild/', the value of
VPATH is set to '....', which results in a landmark of
'....\Modules\setup.local'. This path is outside the install directory
of Python, and may have different permissions, potentially allowing a
low-privilege user to create the landmark and an alternative Lib
folder that will be discovered by an otherwise restricted install.
Such a setup occurs with the legacy default install location for all users (in the now superseded EXE installer), due to how Windows allows all users to create folders in the root directory of their OS drive.
Our recommended mitigation on Windows is to migrate away from the
legacy installer and use the new Python install
manager to install
for the current user. Installs where the directory two levels above the
Python installation directory have equivalent permissions are unaffected
(in general, a per-user install cannot be modified at all by other
users, removing any escalation of privilege risk, and could be directly
modified by a privileged user, making the potential tampering
irrelevant). Alternative mitigations might include preemptively creating
and restricting access to a Modules directory. Be aware that only 3.13
and 3.14 will receive updated legacy installers - earlier fixes are only
provided as sources.
Platforms other than Windows allow VPATH to be overridden, but as they don't usually use a separated directory in the build for binaries, are unlikely to have a landmark reference outside of the install directory.
The landmark detection involving VPATH is a fallback for when a more specific landmark - .\pybuilddir.txt - is absent, and was included for compatibility. Future releases of Python will no longer include the fallback, and so builds will need to generate or preserve the pybuilddir.txt file in order to work in-tree. This landmark file has been generated on Windows since 3.11, and on other platforms for longer.
- Record
EUVD-2026-37125- CVSS 4.0
- 5.3 Medium
CVSS:4.0/AV:L/AC:L/AT:P/PR:L/UI:A/VC:H/VI:H/VA:N/SC:N/SI:N/SA:N - Updated
- 2026-11-02
GitHub AdvisoriesGHSA-2wqx-fp26-qh5v
5.3
To allow builds of Python to be run from an in-tree layout (rather than an installed file layout)...
To allow builds of Python to be run from an in-tree layout (rather than an installed file layout), the VPATH variable is defined at build time and used to locate certain landmarks - specifically, Modules/setup.local. When this landmark is found relative to VPATH relative to the executable, Python assumes it is running in a source tree and generates a different default sys.path. This code remains in release builds, so that release-ready builds can be built in-tree.
On Windows, since builds are written to 'PCbuild/', the value of
VPATH is set to '....', which results in a landmark of
'....\Modules\setup.local'. This path is outside the install directory
of Python, and may have different permissions, potentially allowing a
low-privilege user to create the landmark and an alternative Lib
folder that will be discovered by an otherwise restricted install.
Such a setup occurs with the legacy default install location for all users (in the now superseded EXE installer), due to how Windows allows all users to create folders in the root directory of their OS drive.
Our recommended mitigation on Windows is to migrate away from the
legacy installer and use the new Python install
manager to install
for the current user. Installs where the directory two levels above the
Python installation directory have equivalent permissions are unaffected
(in general, a per-user install cannot be modified at all by other
users, removing any escalation of privilege risk, and could be directly
modified by a privileged user, making the potential tampering
irrelevant). Alternative mitigations might include preemptively creating
and restricting access to a Modules directory. Be aware that only 3.13
and 3.14 will receive updated legacy installers - earlier fixes are only
provided as sources.
Platforms other than Windows allow VPATH to be overridden, but as they don't usually use a separated directory in the build for binaries, are unlikely to have a landmark reference outside of the install directory.
The landmark detection involving VPATH is a fallback for when a more specific landmark - .\pybuilddir.txt - is absent, and was included for compatibility. Future releases of Python will no longer include the fallback, and so builds will need to generate or preserve the pybuilddir.txt file in order to work in-tree. This landmark file has been generated on Windows since 3.11, and on other platforms for longer.
- Record
GHSA-2wqx-fp26-qh5v- CVSS 4.0
- 5.3 Medium
CVSS:4.0/AV:L/AC:L/AT:P/PR:L/UI:A/VC:H/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 - Weakness
- CWE-427
- Updated
- 2026-11-02
NVD
5.3
To allow builds of Python to be run from an in-tree layout (rather than an installed file layout), the VPATH variable is defined at build time and used to locate certain landmarks - specifically, Modules/setup.local. When this landmark is found relative to VPATH relative to the executable, Python assumes it is running in a source tree and generates a different default sys.path. This code remains in release builds, so that release-ready builds can be built in-tree.
On Windows, since builds are written to 'PCbuild/', the value of
VPATH is set to '....', which results in a landmark of
'....\Modules\setup.local'. This path is outside the install directory
of Python, and may have different permissions, potentially allowing a
low-privilege user to create the landmark and an alternative Lib
folder that will be discovered by an otherwise restricted install.
Such a setup occurs with the legacy default install location for all users (in the now superseded EXE installer), due to how Windows allows all users to create folders in the root directory of their OS drive.
Our recommended mitigation on Windows is to migrate away from the
legacy installer and use the new Python install
manager to install
for the current user. Installs where the directory two levels above the
Python installation directory have equivalent permissions are unaffected
(in general, a per-user install cannot be modified at all by other
users, removing any escalation of privilege risk, and could be directly
modified by a privileged user, making the potential tampering
irrelevant). Alternative mitigations might include preemptively creating
and restricting access to a Modules directory. Be aware that only 3.13
and 3.14 will receive updated legacy installers - earlier fixes are only
provided as sources.
Platforms other than Windows allow VPATH to be overridden, but as they don't usually use a separated directory in the build for binaries, are unlikely to have a landmark reference outside of the install directory.
The landmark detection involving VPATH is a fallback for when a more specific landmark - .\pybuilddir.txt - is absent, and was included for compatibility. Future releases of Python will no longer include the fallback, and so builds will need to generate or preserve the pybuilddir.txt file in order to work in-tree. This landmark file has been generated on Windows since 3.11, and on other platforms for longer.
- Record
CVE-2026-12003- CVSS 4.0
- 5.3 Medium
CVSS:4.0/AV:L/AC:L/AT:P/PR:L/UI:A/VC:H/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 - Weakness
- CWE-427
- Updated
- 2026-11-02
OSV
5.3
CPython >3.11 Insecure Input Validation resulting in privilege escalation
To allow builds of Python to be run from an in-tree layout (rather than an installed file layout), the VPATH variable is defined at build time and used to locate certain landmarks - specifically, Modules/setup.local. When this landmark is found relative to VPATH relative to the executable, Python assumes it is running in a source tree and generates a different default sys.path. This code remains in release builds, so that release-ready builds can be built in-tree.
On Windows, since builds are written to 'PCbuild/', the value of
VPATH is set to '....', which results in a landmark of
'....\Modules\setup.local'. This path is outside the install directory
of Python, and may have different permissions, potentially allowing a
low-privilege user to create the landmark and an alternative Lib
folder that will be discovered by an otherwise restricted install.
Such a setup occurs with the legacy default install location for all users (in the now superseded EXE installer), due to how Windows allows all users to create folders in the root directory of their OS drive.
Our recommended mitigation on Windows is to migrate away from the
legacy installer and use the new Python install
manager to install
for the current user. Installs where the directory two levels above the
Python installation directory have equivalent permissions are unaffected
(in general, a per-user install cannot be modified at all by other
users, removing any escalation of privilege risk, and could be directly
modified by a privileged user, making the potential tampering
irrelevant). Alternative mitigations might include preemptively creating
and restricting access to a Modules directory. Be aware that only 3.13
and 3.14 will receive updated legacy installers - earlier fixes are only
provided as sources.
Platforms other than Windows allow VPATH to be overridden, but as they don't usually use a separated directory in the build for binaries, are unlikely to have a landmark reference outside of the install directory.
The landmark detection involving VPATH is a fallback for when a more specific landmark - .\pybuilddir.txt - is absent, and was included for compatibility. Future releases of Python will no longer include the fallback, and so builds will need to generate or preserve the pybuilddir.txt file in order to work in-tree. This landmark file has been generated on Windows since 3.11, and on other platforms for longer.
- Record
CVE-2026-12003- CVSS 4.0
- 5.3 Medium
CVSS:4.0/AV:L/AC:L/AT:P/PR:L/UI:A/VC:H/VI:H/VA:N/SC:N/SI:N/SA:N - Weakness
- CWE-427
- Updated
- 2026-11-04
OSVDEBIAN-CVE-2026-12003
5.3
To allow builds of Python to be run from an in-tree layout (rather than an installed file layout), the VPATH variable is defined at build time and used to locate certain landmarks - specifically, Modules/setup.local. When this landmark is found relative to VPATH relative to the executable, Python assumes it is running in a source tree and generates a different default sys.path. This code remains in release builds, so that release-ready builds can be built in-tree. On Windows, since builds are written to 'PCbuild/', the value of VPATH is set to '....', which results in a landmark of '....\Modules\setup.local'. This path is outside the install directory of Python, and may have different permissions, potentially allowing a low-privilege user to create the landmark and an alternative Lib folder that will be discovered by an otherwise restricted install. Such a setup occurs with the legacy default install location for all users (in the now superseded EXE installer), due to how Windows allows all users to create folders in the root directory of their OS drive. Our recommended mitigation on Windows is to migrate away from the legacy installer and use the new Python install manager to install for the current user. Installs where the directory two levels above the Python installation directory have equivalent permissions are unaffected (in general, a per-user install cannot be modified at all by other users, removing any escalation of privilege risk, and could be directly modified by a privileged user, making the potential tampering irrelevant). Alternative mitigations might include preemptively creating and restricting access to a Modules directory. Be aware that only 3.13 and 3.14 will receive updated legacy installers - earlier fixes are only provided as sources. Platforms other than Windows allow VPATH to be overridden, but as they don't usually use a separated directory in the build for binaries, are unlikely to have a landmark reference outside of the install directory. The landmark detection involving VPATH is a fallback for when a more specific landmark - .\pybuilddir.txt - is absent, and was included for compatibility. Future releases of Python will no longer include the fallback, and so builds will need to generate or preserve the pybuilddir.txt file in order to work in-tree. This landmark file has been generated on Windows since 3.11, and on other platforms for longer.
- Record
DEBIAN-CVE-2026-12003- CVSS 4.0
- 5.3 Medium
CVSS:4.0/AV:L/AC:L/AT:P/PR:L/UI:A/VC:H/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 - Updated
- 2026-11-02
Show 14 moreShow less
OSVOESA-2026-3070
6.3
python3 security update
Python combines remarkable power with very clear syntax. It has modules, classes, exceptions, very high level dynamic data types, and dynamic typing. There are interfaces to many system calls and libraries, as well as to various windowing systems. New built-in modules are easily written in C or C++ (or other languages, depending on the chosen implementation). Python is also usable as an extension language for applications written in other languages that need easy-to-use scripting or automation interfaces.
Security Fix(es):
When using the "configparser" module to write configuration files containing multi-line text values with carriage return characters (\r) the resulting file could be injected with unexpected keys and values if the attacker controls the written value.(CVE-2026-0864)
To allow builds of Python to be run from an in-tree layout (rather than an installed file layout), the VPATH variable is defined at build time and used to locate certain landmarks - specifically, Modules/setup.local. When this landmark is found relative to VPATH relative to the executable, Python assumes it is running in a source tree and generates a different default sys.path. This code remains in release builds, so that release-ready builds can be built in-tree.
On Windows, since builds are written to 'PCbuild/', the value of
VPATH is set to '....', which results in a landmark of
'....\Modules\setup.local'. This path is outside the install directory
of Python, and may have different permissions, potentially allowing a
low-privilege user to create the landmark and an alternative Lib
folder that will be discovered by an otherwise restricted install.
Such a setup occurs with the legacy default install location for all users (in the now superseded EXE installer), due to how Windows allows all users to create folders in the root directory of their OS drive.
Our recommended mitigation on Windows is to migrate away from the
legacy installer and use the new Python install
manager to install
for the current user. Installs where the directory two levels above the
Python installation directory have equivalent permissions are unaffected
(in general, a per-user install cannot be modified at all by other
users, removing any escalation of privilege risk, and could be directly
modified by a privileged user, making the potential tampering
irrelevant). Alternative mitigations might include preemptively creating
and restricting access to a Modules directory. Be aware that only 3.13
and 3.14 will receive updated legacy installers - earlier fixes are only
provided as sources.
Platforms other than Windows allow VPATH to be overridden, but as they don't usually use a separated directory in the build for binaries, are unlikely to have a landmark reference outside of the install directory.
The landmark detection involving VPATH is a fallback for when a more specific landmark - .\pybuilddir.txt - is absent, and was included for compatibility. Future releases of Python will no longer include the fallback, and so builds will need to generate or preserve the pybuilddir.txt file in order to work in-tree. This landmark file has been generated on Windows since 3.11, and on other platforms for longer.(CVE-2026-12003)
unicodedata.normalize() can take excessive CPU time when processing specially crafted Unicode input containing long runs of combining characters with alternating Canonical Combining Class values. This affects all normalization forms.(CVE-2026-3276)
- Record
OESA-2026-3070- CVSS 4.0
- 6.3 Medium
CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:N/VI:N/VA:L/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 - Updated
- 2026-11-02
OSVOESA-2026-3071
6.3
python3 security update
Python combines remarkable power with very clear syntax. It has modules, classes, exceptions, very high level dynamic data types, and dynamic typing. There are interfaces to many system calls and libraries, as well as to various windowing systems. New built-in modules are easily written in C or C++ (or other languages, depending on the chosen implementation). Python is also usable as an extension language for applications written in other languages that need easy-to-use scripting or automation interfaces.
Security Fix(es):
When using the "configparser" module to write configuration files containing multi-line text values with carriage return characters (\r) the resulting file could be injected with unexpected keys and values if the attacker controls the written value.(CVE-2026-0864)
To allow builds of Python to be run from an in-tree layout (rather than an installed file layout), the VPATH variable is defined at build time and used to locate certain landmarks - specifically, Modules/setup.local. When this landmark is found relative to VPATH relative to the executable, Python assumes it is running in a source tree and generates a different default sys.path. This code remains in release builds, so that release-ready builds can be built in-tree.
On Windows, since builds are written to 'PCbuild/', the value of
VPATH is set to '....', which results in a landmark of
'....\Modules\setup.local'. This path is outside the install directory
of Python, and may have different permissions, potentially allowing a
low-privilege user to create the landmark and an alternative Lib
folder that will be discovered by an otherwise restricted install.
Such a setup occurs with the legacy default install location for all users (in the now superseded EXE installer), due to how Windows allows all users to create folders in the root directory of their OS drive.
Our recommended mitigation on Windows is to migrate away from the
legacy installer and use the new Python install
manager to install
for the current user. Installs where the directory two levels above the
Python installation directory have equivalent permissions are unaffected
(in general, a per-user install cannot be modified at all by other
users, removing any escalation of privilege risk, and could be directly
modified by a privileged user, making the potential tampering
irrelevant). Alternative mitigations might include preemptively creating
and restricting access to a Modules directory. Be aware that only 3.13
and 3.14 will receive updated legacy installers - earlier fixes are only
provided as sources.
Platforms other than Windows allow VPATH to be overridden, but as they don't usually use a separated directory in the build for binaries, are unlikely to have a landmark reference outside of the install directory.
The landmark detection involving VPATH is a fallback for when a more specific landmark - .\pybuilddir.txt - is absent, and was included for compatibility. Future releases of Python will no longer include the fallback, and so builds will need to generate or preserve the pybuilddir.txt file in order to work in-tree. This landmark file has been generated on Windows since 3.11, and on other platforms for longer.(CVE-2026-12003)
unicodedata.normalize() can take excessive CPU time when processing specially crafted Unicode input containing long runs of combining characters with alternating Canonical Combining Class values. This affects all normalization forms.(CVE-2026-3276)
- Record
OESA-2026-3071- CVSS 4.0
- 6.3 Medium
CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:N/VI:N/VA:L/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 - Updated
- 2026-11-02
OSVOESA-2026-3072
8.2
python3 security update
Python combines remarkable power with very clear syntax. It has modules, classes, exceptions, very high level dynamic data types, and dynamic typing. There are interfaces to many system calls and libraries, as well as to various windowing systems. New built-in modules are easily written in C or C++ (or other languages, depending on the chosen implementation). Python is also usable as an extension language for applications written in other languages that need easy-to-use scripting or automation interfaces.
Security Fix(es):
When using the "configparser" module to write configuration files containing multi-line text values with carriage return characters (\r) the resulting file could be injected with unexpected keys and values if the attacker controls the written value.(CVE-2026-0864)
tarfile.extractall() with the 'data' or 'tar' filter could be bypassed by a crafted archive where a hardlink references a symlink stored at a deeper name than the hardlink itself. The extraction fallback validated the symlink at it's archived location but recreated it at the hardlink's shallower path, letting a relative target the filter judged contained escape the destination directory. This allowed a malicious tar archive to create a symlink pointing outside the destination, enabling out-of-destination file reads or writes. This was an incomplete fix of CVE-2025-4330.(CVE-2026-11940)
When using the "tarfile" module with a file opened in "streaming mode" (mode="r|") the tarfile module did not properly handle EOF, making archive parsing take exponentially longer.(CVE-2026-11972)
To allow builds of Python to be run from an in-tree layout (rather than an installed file layout), the VPATH variable is defined at build time and used to locate certain landmarks - specifically, Modules/setup.local. When this landmark is found relative to VPATH relative to the executable, Python assumes it is running in a source tree and generates a different default sys.path. This code remains in release builds, so that release-ready builds can be built in-tree.
On Windows, since builds are written to 'PCbuild/', the value of
VPATH is set to '....', which results in a landmark of
'....\Modules\setup.local'. This path is outside the install directory
of Python, and may have different permissions, potentially allowing a
low-privilege user to create the landmark and an alternative Lib
folder that will be discovered by an otherwise restricted install.
Such a setup occurs with the legacy default install location for all users (in the now superseded EXE installer), due to how Windows allows all users to create folders in the root directory of their OS drive.
Our recommended mitigation on Windows is to migrate away from the
legacy installer and use the new Python install
manager to install
for the current user. Installs where the directory two levels above the
Python installation directory have equivalent permissions are unaffected
(in general, a per-user install cannot be modified at all by other
users, removing any escalation of privilege risk, and could be directly
modified by a privileged user, making the potential tampering
irrelevant). Alternative mitigations might include preemptively creating
and restricting access to a Modules directory. Be aware that only 3.13
and 3.14 will receive updated legacy installers - earlier fixes are only
provided as sources.
Platforms other than Windows allow VPATH to be overridden, but as they don't usually use a separated directory in the build for binaries, are unlikely to have a landmark reference outside of the install directory.
The landmark detection involving VPATH is a fallback for when a more specific landmark - .\pybuilddir.txt - is absent, and was included for compatibility. Future releases of Python will no longer include the fallback, and so…
- Record
OESA-2026-3072- CVSS 4.0
- 8.2 High
CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:N/VI:N/VA:H/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 - Updated
- 2026-11-02
OSVRHSA-2026:67572
7.8
Red Hat Security Advisory: Red Hat Hardened Images RPMs Security Update
- Record
RHSA-2026:67572- CVSS 3.1
- 7.8 High
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H - Updated
- 2026-11-02
OSVRHSA-2026:68135
7.8
Red Hat Security Advisory: Red Hat Hardened Images RPMs Security Update
- Record
RHSA-2026:68135- CVSS 3.1
- 7.8 High
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H - Updated
- 2026-11-02
OSVRHSA-2026:68154
7.8
Red Hat Security Advisory: Red Hat Hardened Images RPMs Security Update
- Record
RHSA-2026:68154- CVSS 3.1
- 7.8 High
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H - Updated
- 2026-11-02
OSVRHSA-2026:68309
7.8
Red Hat Security Advisory: Red Hat Hardened Images RPMs Security Update
- Record
RHSA-2026:68309- CVSS 3.1
- 7.8 High
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H - Updated
- 2026-11-02
OSVUBUNTU-CVE-2026-12003
5.3
To allow builds of Python to be run from an in-tree layout (rather than an installed file layout), the VPATH variable is defined at build time and used to locate certain landmarks - specifically, Modules/setup.local. When this landmark is found relative to VPATH relative to the executable, Python assumes it is running in a source tree and generates a different default sys.path. This code remains in release builds, so that release-ready builds can be built in-tree. On Windows, since builds are written to 'PCbuild/', the value of VPATH is set to '....', which results in a landmark of '....\Modules\setup.local'. This path is outside the install directory of Python, and may have different permissions, potentially allowing a low-privilege user to create the landmark and an alternative Lib folder that will be discovered by an otherwise restricted install. Such a setup occurs with the legacy default install location for all users (in the now superseded EXE installer), due to how Windows allows all users to create folders in the root directory of their OS drive. Our recommended mitigation on Windows is to migrate away from the legacy installer and use the new Python install manager to install for the current user. Installs where the directory two levels above the Python installation directory have equivalent permissions are unaffected (in general, a per-user install cannot be modified at all by other users, removing any escalation of privilege risk, and could be directly modified by a privileged user, making the potential tampering irrelevant). Alternative mitigations might include preemptively creating and restricting access to a Modules directory. Be aware that only 3.13 and 3.14 will receive updated legacy installers - earlier fixes are only provided as sources. Platforms other than Windows allow VPATH to be overridden, but as they don't usually use a separated directory in the build for binaries, are unlikely to have a landmark reference outside of the install directory. The landmark detection involving VPATH is a fallback for when a more specific landmark - .\pybuilddir.txt - is absent, and was included for compatibility. Future releases of Python will no longer include the fallback, and so builds will need to generate or preserve the pybuilddir.txt file in order to work in-tree. This landmark file has been generated on Windows since 3.11, and on other platforms for longer.
- Record
UBUNTU-CVE-2026-12003- CVSS 4.0
- 5.3 Medium
CVSS:4.0/AV:L/AC:L/AT:P/PR:L/UI:A/VC:H/VI:H/VA:N/SC:N/SI:N/SA:N - Updated
- 2026-11-02
OSVAZL-90182 No score
CVE-2026-12003 affecting package python3 for versions less than 3.12.9-14
To allow builds of Python to be run from an in-tree layout (rather than an installed file layout), the VPATH variable is defined at build time and used to locate certain landmarks - specifically, Modules/setup.local. When this landmark is found relative to VPATH relative to the executable, Python assumes it is running in a source tree and generates a different default sys.path. This code remains in release builds, so that release-ready builds can be built in-tree.
On Windows, since builds are written to 'PCbuild/', the value of
VPATH is set to '....', which results in a landmark of
'....\Modules\setup.local'. This path is outside the install directory
of Python, and may have different permissions, potentially allowing a
low-privilege user to create the landmark and an alternative Lib
folder that will be discovered by an otherwise restricted install.
Such a setup occurs with the legacy default install location for all users (in the now superseded EXE installer), due to how Windows allows all users to create folders in the root directory of their OS drive.
Our recommended mitigation on Windows is to migrate away from the
legacy installer and use the new Python install
manager to install
for the current user. Installs where the directory two levels above the
Python installation directory have equivalent permissions are unaffected
(in general, a per-user install cannot be modified at all by other
users, removing any escalation of privilege risk, and could be directly
modified by a privileged user, making the potential tampering
irrelevant). Alternative mitigations might include preemptively creating
and restricting access to a Modules directory. Be aware that only 3.13
and 3.14 will receive updated legacy installers - earlier fixes are only
provided as sources.
Platforms other than Windows allow VPATH to be overridden, but as they don't usually use a separated directory in the build for binaries, are unlikely to have a landmark reference outside of the install directory.
The landmark detection involving VPATH is a fallback for when a more specific landmark - .\pybuilddir.txt - is absent, and was included for compatibility. Future releases of Python will no longer include the fallback, and so builds will need to generate or preserve the pybuilddir.txt file in order to work in-tree. This landmark file has been generated on Windows since 3.11, and on other platforms for longer.
- Record
AZL-90182- Updated
- 2026-11-02
OSVBIT-libpython-2026-12003 No score
CPython >3.11 Insecure Input Validation resulting in privilege escalation
To allow builds of Python to be run from an in-tree layout (rather than an installed file layout), the VPATH variable is defined at build time and used to locate certain landmarks - specifically, Modules/setup.local. When this landmark is found relative to VPATH relative to the executable, Python assumes it is running in a source tree and generates a different default sys.path. This code remains in release builds, so that release-ready builds can be built in-tree.
On Windows, since builds are written to 'PCbuild/', the value of
VPATH is set to '....', which results in a landmark of
'....\Modules\setup.local'. This path is outside the install directory
of Python, and may have different permissions, potentially allowing a
low-privilege user to create the landmark and an alternative Lib
folder that will be discovered by an otherwise restricted install.
Such a setup occurs with the legacy default install location for all users (in the now superseded EXE installer), due to how Windows allows all users to create folders in the root directory of their OS drive.
Our recommended mitigation on Windows is to migrate away from the
legacy installer and use the new Python install
manager to install
for the current user. Installs where the directory two levels above the
Python installation directory have equivalent permissions are unaffected
(in general, a per-user install cannot be modified at all by other
users, removing any escalation of privilege risk, and could be directly
modified by a privileged user, making the potential tampering
irrelevant). Alternative mitigations might include preemptively creating
and restricting access to a Modules directory. Be aware that only 3.13
and 3.14 will receive updated legacy installers - earlier fixes are only
provided as sources.
Platforms other than Windows allow VPATH to be overridden, but as they don't usually use a separated directory in the build for binaries, are unlikely to have a landmark reference outside of the install directory.
The landmark detection involving VPATH is a fallback for when a more specific landmark - .\pybuilddir.txt - is absent, and was included for compatibility. Future releases of Python will no longer include the fallback, and so builds will need to generate or preserve the pybuilddir.txt file in order to work in-tree. This landmark file has been generated on Windows since 3.11, and on other platforms for longer.
- Record
BIT-libpython-2026-12003- Updated
- 2026-11-02
OSVBIT-python-2026-12003 No score
CPython >3.11 Insecure Input Validation resulting in privilege escalation
To allow builds of Python to be run from an in-tree layout (rather than an installed file layout), the VPATH variable is defined at build time and used to locate certain landmarks - specifically, Modules/setup.local. When this landmark is found relative to VPATH relative to the executable, Python assumes it is running in a source tree and generates a different default sys.path. This code remains in release builds, so that release-ready builds can be built in-tree.
On Windows, since builds are written to 'PCbuild/', the value of
VPATH is set to '....', which results in a landmark of
'....\Modules\setup.local'. This path is outside the install directory
of Python, and may have different permissions, potentially allowing a
low-privilege user to create the landmark and an alternative Lib
folder that will be discovered by an otherwise restricted install.
Such a setup occurs with the legacy default install location for all users (in the now superseded EXE installer), due to how Windows allows all users to create folders in the root directory of their OS drive.
Our recommended mitigation on Windows is to migrate away from the
legacy installer and use the new Python install
manager to install
for the current user. Installs where the directory two levels above the
Python installation directory have equivalent permissions are unaffected
(in general, a per-user install cannot be modified at all by other
users, removing any escalation of privilege risk, and could be directly
modified by a privileged user, making the potential tampering
irrelevant). Alternative mitigations might include preemptively creating
and restricting access to a Modules directory. Be aware that only 3.13
and 3.14 will receive updated legacy installers - earlier fixes are only
provided as sources.
Platforms other than Windows allow VPATH to be overridden, but as they don't usually use a separated directory in the build for binaries, are unlikely to have a landmark reference outside of the install directory.
The landmark detection involving VPATH is a fallback for when a more specific landmark - .\pybuilddir.txt - is absent, and was included for compatibility. Future releases of Python will no longer include the fallback, and so builds will need to generate or preserve the pybuilddir.txt file in order to work in-tree. This landmark file has been generated on Windows since 3.11, and on other platforms for longer.
- Record
BIT-python-2026-12003- Updated
- 2026-11-02
OSVBIT-python-min-2026-12003 No score
CPython >3.11 Insecure Input Validation resulting in privilege escalation
To allow builds of Python to be run from an in-tree layout (rather than an installed file layout), the VPATH variable is defined at build time and used to locate certain landmarks - specifically, Modules/setup.local. When this landmark is found relative to VPATH relative to the executable, Python assumes it is running in a source tree and generates a different default sys.path. This code remains in release builds, so that release-ready builds can be built in-tree.
On Windows, since builds are written to 'PCbuild/', the value of
VPATH is set to '....', which results in a landmark of
'....\Modules\setup.local'. This path is outside the install directory
of Python, and may have different permissions, potentially allowing a
low-privilege user to create the landmark and an alternative Lib
folder that will be discovered by an otherwise restricted install.
Such a setup occurs with the legacy default install location for all users (in the now superseded EXE installer), due to how Windows allows all users to create folders in the root directory of their OS drive.
Our recommended mitigation on Windows is to migrate away from the
legacy installer and use the new Python install
manager to install
for the current user. Installs where the directory two levels above the
Python installation directory have equivalent permissions are unaffected
(in general, a per-user install cannot be modified at all by other
users, removing any escalation of privilege risk, and could be directly
modified by a privileged user, making the potential tampering
irrelevant). Alternative mitigations might include preemptively creating
and restricting access to a Modules directory. Be aware that only 3.13
and 3.14 will receive updated legacy installers - earlier fixes are only
provided as sources.
Platforms other than Windows allow VPATH to be overridden, but as they don't usually use a separated directory in the build for binaries, are unlikely to have a landmark reference outside of the install directory.
The landmark detection involving VPATH is a fallback for when a more specific landmark - .\pybuilddir.txt - is absent, and was included for compatibility. Future releases of Python will no longer include the fallback, and so builds will need to generate or preserve the pybuilddir.txt file in order to work in-tree. This landmark file has been generated on Windows since 3.11, and on other platforms for longer.
- Record
BIT-python-min-2026-12003- Updated
- 2026-11-02
OSVCLSA-2026-1790155146 No score
python3.11: Fix of 4 CVEs
- CVE-2026-17084: use the Unicode 3.2.0 codepoint attributes required by RFC 3454 for the stringprep B.2/B.3 mappings instead of the running interpreter's, so IDNA 2003 encodes domain names consistently
- CVE-2026-87910: skip the member in tarfile's link-extraction fallback when either filter call returns None, instead of discarding the first call's result
- CVE-2026-19672: normalize '..' components in tarfile member names so the tar and data extraction filters no longer create intermediate directories outside the destination
- CVE-2026-12003: remove the VPATH-relative Modules/Setup.local build landmark fallback from getpath, making pybuilddir.txt the sole source-tree indicator
- Record
CLSA-2026-1790155146- Updated
- 2026-11-02
OSVPSF-2026-28 No score
To allow builds of Python to be run from an in-tree layout (rather than an installed file layout), the VPATH variable is defined at build time and used to locate certain landmarks - specifically, Modules/setup.local. When this landmark is found relative to VPATH relative to the executable, Python assumes it is running in a source tree and generates a different default sys.path. This code remains in release builds, so that release-ready builds can be built in-tree.
On Windows, since builds are written to 'PCbuild/', the value of
VPATH is set to '....', which results in a landmark of
'....\Modules\setup.local'. This path is outside the install directory
of Python, and may have different permissions, potentially allowing a
low-privilege user to create the landmark and an alternative Lib
folder that will be discovered by an otherwise restricted install.
Such a setup occurs with the legacy default install location for all users (in the now superseded EXE installer), due to how Windows allows all users to create folders in the root directory of their OS drive.
Our recommended mitigation on Windows is to migrate away from the
legacy installer and use the new Python install
manager to install
for the current user. Installs where the directory two levels above the
Python installation directory have equivalent permissions are unaffected
(in general, a per-user install cannot be modified at all by other
users, removing any escalation of privilege risk, and could be directly
modified by a privileged user, making the potential tampering
irrelevant). Alternative mitigations might include preemptively creating
and restricting access to a Modules directory. Be aware that only 3.13
and 3.14 will receive updated legacy installers - earlier fixes are only
provided as sources.
Platforms other than Windows allow VPATH to be overridden, but as they don't usually use a separated directory in the build for binaries, are unlikely to have a landmark reference outside of the install directory.
The landmark detection involving VPATH is a fallback for when a more specific landmark - .\pybuilddir.txt - is absent, and was included for compatibility. Future releases of Python will no longer include the fallback, and so builds will need to generate or preserve the pybuilddir.txt file in order to work in-tree. This landmark file has been generated on Windows since 3.11, and on other platforms for longer.
- Record
PSF-2026-28- Updated
- 2026-11-02
Affected products
Affected packages
| Package | Affected | Fixed |
|---|---|---|
python3Azure Linux:3 |
before 3.12.9-14 | 3.12.9-14 |
libpythonBitnami |
before 3.11.16, 3.12.0 up to 3.12.14, 3.13.0 up to 3.13.15, 3.14.0 up to 3.14.7 | 3.11.163.12.143.13.153.14.7 |
pythonBitnami |
before 3.11.16, 3.12.0 up to 3.12.14, 3.13.0 up to 3.13.15, 3.14.0 up to 3.14.7 | 3.11.163.12.143.13.153.14.7 |
python-minBitnami |
before 3.11.16, 3.12.0 up to 3.12.14, 3.13.0 up to 3.13.15, 3.14.0 up to 3.14.7 | 3.11.163.12.143.13.153.14.7 |
python3.11TuxCare:AlmaLinux:9.2 From an advisory covering 4 CVEs |
before 3.11.2-2.el9_2.2.tuxcare.els34 | 3.11.2-2.el9_2.2.tuxcare.els34 |
python3.11-debugTuxCare:AlmaLinux:9.2 From an advisory covering 4 CVEs |
before 3.11.2-2.el9_2.2.tuxcare.els34 | 3.11.2-2.el9_2.2.tuxcare.els34 |
python3.11-develTuxCare:AlmaLinux:9.2 From an advisory covering 4 CVEs |
before 3.11.2-2.el9_2.2.tuxcare.els34 | 3.11.2-2.el9_2.2.tuxcare.els34 |
python3.11-idleTuxCare:AlmaLinux:9.2 From an advisory covering 4 CVEs |
before 3.11.2-2.el9_2.2.tuxcare.els34 | 3.11.2-2.el9_2.2.tuxcare.els34 |
python3.11-libsTuxCare:AlmaLinux:9.2 From an advisory covering 4 CVEs |
before 3.11.2-2.el9_2.2.tuxcare.els34 | 3.11.2-2.el9_2.2.tuxcare.els34 |
python3.11-testTuxCare:AlmaLinux:9.2 From an advisory covering 4 CVEs |
before 3.11.2-2.el9_2.2.tuxcare.els34 | 3.11.2-2.el9_2.2.tuxcare.els34 |
Show 54 moreShow less
| Package | Affected | Fixed |
|---|---|---|
python3.11-tkinterTuxCare:AlmaLinux:9.2 From an advisory covering 4 CVEs |
before 3.11.2-2.el9_2.2.tuxcare.els34 | 3.11.2-2.el9_2.2.tuxcare.els34 |
python3.11Debian:12 |
All versions, plus listed versions 3.11.2-63.11.2-6+deb12u13.11.2-6+deb12u23.11.2-6+deb12u33.11.2-6+deb12u4 Show 24 moreShow less3.11.2-6+deb12u53.11.2-6+deb12u63.11.2-6+deb12u73.11.2-6+deb12u83.11.2-6+deb12u93.11.3-13.11.3-23.11.4-13.11.5-13.11.5-23.11.5-33.11.6-13.11.6-23.11.6-33.11.6-3~hurd.23.11.7-13.11.7-23.11.8-13.11.8-1.1~exp13.11.8-1.1~exp23.11.8-23.11.8-33.11.8-3+hurd.13.11.9-1 |
None known |
python3.13Debian:13 |
All versions, plus listed versions 3.13.11-13.13.12-13.13.14-13.13.15-13.13.18-1 Show 10 moreShow less3.13.5-23.13.5-2+deb13u13.13.5-2+deb13u23.13.5-2+deb13u33.13.5-2+deb13u43.13.5-2+deb13u53.13.6-13.13.7-13.13.8-13.13.9-1 |
None known |
python3.14Debian:14 |
before 3.14.9-1, plus listed versions 3.14.0-13.14.0-23.14.0-33.14.0-43.14.0-5 Show 25 moreShow less3.14.0~a7-13.14.0~b1-13.14.0~b2-13.14.0~b3-13.14.0~b4-13.14.0~rc1-13.14.0~rc2-13.14.0~rc3-13.14.2-13.14.3-13.14.3-23.14.3-33.14.3-43.14.3-53.14.4-13.14.4-23.14.5-13.14.5~rc1-13.14.6-13.14.7-13.14.7-23.14.7-33.14.7-43.14.7-53.14.8-1 |
3.14.9-1 |
python3openEuler:24.03-LTS-SP1 From an advisory covering 3 CVEs |
before 3.11.6-37.oe2403sp1 | 3.11.6-37.oe2403sp1 |
python3openEuler:24.03-LTS-SP3 From an advisory covering 3 CVEs |
before 3.11.6-37.oe2403sp3 | 3.11.6-37.oe2403sp3 |
python3openEuler:24.03-LTS-SP4 From an advisory covering 6 CVEs |
before 3.11.6-39.oe2403sp4 | 3.11.6-39.oe2403sp4 |
python-unversioned-commandRed Hat:hummingbird:1 From an advisory covering 6 CVEs |
before 0:3.14.7-1.2.hum1 | 0:3.14.7-1.2.hum1 |
python3Red Hat:hummingbird:1 From an advisory covering 6 CVEs |
before 0:3.14.7-1.2.hum1 | 0:3.14.7-1.2.hum1 |
python3-debugRed Hat:hummingbird:1 From an advisory covering 6 CVEs |
before 0:3.14.7-1.2.hum1 | 0:3.14.7-1.2.hum1 |
python3-develRed Hat:hummingbird:1 From an advisory covering 6 CVEs |
before 0:3.14.7-1.2.hum1 | 0:3.14.7-1.2.hum1 |
python3-idleRed Hat:hummingbird:1 From an advisory covering 6 CVEs |
before 0:3.14.7-1.2.hum1 | 0:3.14.7-1.2.hum1 |
python3-libsRed Hat:hummingbird:1 From an advisory covering 6 CVEs |
before 0:3.14.7-1.2.hum1 | 0:3.14.7-1.2.hum1 |
python3-testRed Hat:hummingbird:1 From an advisory covering 6 CVEs |
before 0:3.14.7-1.2.hum1 | 0:3.14.7-1.2.hum1 |
python3-tkinterRed Hat:hummingbird:1 From an advisory covering 6 CVEs |
before 0:3.14.7-1.2.hum1 | 0:3.14.7-1.2.hum1 |
python3.14Red Hat:hummingbird:1 From an advisory covering 6 CVEs |
before 0:3.14.7-1.2.hum1 | 0:3.14.7-1.2.hum1 |
python3.14-freethreadingRed Hat:hummingbird:1 From an advisory covering 6 CVEs |
before 0:3.14.7-1.2.hum1 | 0:3.14.7-1.2.hum1 |
python3.14-freethreading-debugRed Hat:hummingbird:1 From an advisory covering 6 CVEs |
before 0:3.14.7-1.2.hum1 | 0:3.14.7-1.2.hum1 |
python3.14-freethreading-develRed Hat:hummingbird:1 From an advisory covering 6 CVEs |
before 0:3.14.7-1.2.hum1 | 0:3.14.7-1.2.hum1 |
python3.14-freethreading-idleRed Hat:hummingbird:1 From an advisory covering 6 CVEs |
before 0:3.14.7-1.2.hum1 | 0:3.14.7-1.2.hum1 |
python3.14-freethreading-libsRed Hat:hummingbird:1 From an advisory covering 6 CVEs |
before 0:3.14.7-1.2.hum1 | 0:3.14.7-1.2.hum1 |
python3.14-freethreading-testRed Hat:hummingbird:1 From an advisory covering 6 CVEs |
before 0:3.14.7-1.2.hum1 | 0:3.14.7-1.2.hum1 |
python3.14-freethreading-tkinterRed Hat:hummingbird:1 From an advisory covering 6 CVEs |
before 0:3.14.7-1.2.hum1 | 0:3.14.7-1.2.hum1 |
python3.11Red Hat:hummingbird:1 From an advisory covering 6 CVEs |
before 0:3.11.16-1.4.hum1 | 0:3.11.16-1.4.hum1 |
python3.11-debugRed Hat:hummingbird:1 From an advisory covering 6 CVEs |
before 0:3.11.16-1.4.hum1 | 0:3.11.16-1.4.hum1 |
python3.11-develRed Hat:hummingbird:1 From an advisory covering 6 CVEs |
before 0:3.11.16-1.4.hum1 | 0:3.11.16-1.4.hum1 |
python3.11-idleRed Hat:hummingbird:1 From an advisory covering 6 CVEs |
before 0:3.11.16-1.4.hum1 | 0:3.11.16-1.4.hum1 |
python3.11-libsRed Hat:hummingbird:1 From an advisory covering 6 CVEs |
before 0:3.11.16-1.4.hum1 | 0:3.11.16-1.4.hum1 |
python3.11-testRed Hat:hummingbird:1 From an advisory covering 6 CVEs |
before 0:3.11.16-1.4.hum1 | 0:3.11.16-1.4.hum1 |
python3.11-tkinterRed Hat:hummingbird:1 From an advisory covering 6 CVEs |
before 0:3.11.16-1.4.hum1 | 0:3.11.16-1.4.hum1 |
python3.12Red Hat:hummingbird:1 From an advisory covering 6 CVEs |
before 0:3.12.14-1.3.hum1 | 0:3.12.14-1.3.hum1 |
python3.12-debugRed Hat:hummingbird:1 From an advisory covering 6 CVEs |
before 0:3.12.14-1.3.hum1 | 0:3.12.14-1.3.hum1 |
python3.12-develRed Hat:hummingbird:1 From an advisory covering 6 CVEs |
before 0:3.12.14-1.3.hum1 | 0:3.12.14-1.3.hum1 |
python3.12-idleRed Hat:hummingbird:1 From an advisory covering 6 CVEs |
before 0:3.12.14-1.3.hum1 | 0:3.12.14-1.3.hum1 |
python3.12-libsRed Hat:hummingbird:1 From an advisory covering 6 CVEs |
before 0:3.12.14-1.3.hum1 | 0:3.12.14-1.3.hum1 |
python3.12-testRed Hat:hummingbird:1 From an advisory covering 6 CVEs |
before 0:3.12.14-1.3.hum1 | 0:3.12.14-1.3.hum1 |
python3.12-tkinterRed Hat:hummingbird:1 From an advisory covering 6 CVEs |
before 0:3.12.14-1.3.hum1 | 0:3.12.14-1.3.hum1 |
python3.13Red Hat:hummingbird:1 From an advisory covering 6 CVEs |
before 0:3.13.15-1.3.hum1 | 0:3.13.15-1.3.hum1 |
python3.13-debugRed Hat:hummingbird:1 From an advisory covering 6 CVEs |
before 0:3.13.15-1.3.hum1 | 0:3.13.15-1.3.hum1 |
python3.13-develRed Hat:hummingbird:1 From an advisory covering 6 CVEs |
before 0:3.13.15-1.3.hum1 | 0:3.13.15-1.3.hum1 |
python3.13-freethreadingRed Hat:hummingbird:1 From an advisory covering 6 CVEs |
before 0:3.13.15-1.3.hum1 | 0:3.13.15-1.3.hum1 |
python3.13-freethreading-debugRed Hat:hummingbird:1 From an advisory covering 6 CVEs |
before 0:3.13.15-1.3.hum1 | 0:3.13.15-1.3.hum1 |
python3.13-idleRed Hat:hummingbird:1 From an advisory covering 6 CVEs |
before 0:3.13.15-1.3.hum1 | 0:3.13.15-1.3.hum1 |
python3.13-libsRed Hat:hummingbird:1 From an advisory covering 6 CVEs |
before 0:3.13.15-1.3.hum1 | 0:3.13.15-1.3.hum1 |
python3.13-testRed Hat:hummingbird:1 From an advisory covering 6 CVEs |
before 0:3.13.15-1.3.hum1 | 0:3.13.15-1.3.hum1 |
python3.13-tkinterRed Hat:hummingbird:1 From an advisory covering 6 CVEs |
before 0:3.13.15-1.3.hum1 | 0:3.13.15-1.3.hum1 |
cythonUbuntu:16.04:LTS |
All versions, plus listed versions 0.23.3-0ubuntu10.23.4-0ubuntu20.23.4-0ubuntu30.23.4-0ubuntu40.23.4-0ubuntu5 |
None known |
cythonUbuntu:18.04:LTS |
All versions, plus listed versions 0.25.2-2build30.26.1-0.3ubuntu10.26.1-0.4 |
None known |
cythonUbuntu:20.04:LTS |
All versions, plus listed versions 0.29.10-0ubuntu10.29.13-0ubuntu20.29.13-0.10.29.14-0.10.29.14-0.1ubuntu20.29.14-0.1ubuntu3 |
None known |
cythonUbuntu:22.04:LTS |
All versions, plus listed versions 0.29.21-1ubuntu30.29.21-1ubuntu40.29.24-0ubuntu30.29.24-2ubuntu10.29.28-1ubuntu10.29.28-1ubuntu3 |
None known |
cythonUbuntu:24.04:LTS |
All versions, plus listed versions 0.29.36-1ubuntu10.29.36-1ubuntu20.29.36-2ubuntu10.29.36-3ubuntu10.29.36-3.1ubuntu23.0.7-2ubuntu13.0.8-1ubuntu13.0.8-1ubuntu3 |
None known |
cythonUbuntu:25.10 |
All versions, plus listed versions 3.0.11+dfsg-2ubuntu2 |
None known |
cythonUbuntu:26.10 |
All versions, plus listed versions 3.1.6+dfsg-1ubuntu2 |
None known |
cythonUbuntu:26.04:LTS |
All versions, plus listed versions 3.0.11+dfsg-2ubuntu23.0.11+dfsg-2ubuntu43.0.11+dfsg-2ubuntu53.1.6+dfsg-1ubuntu13.1.6+dfsg-1ubuntu2 |
None known |
History
| Recorded | Changed | Sources |
|---|---|---|
| affected | ||
| facts | OSV | |
| first indexed | CVE List, EUVD, GitHub Advisories, NVD, OSV |
Dates are when Every CVE recorded each change. Upstream dates may differ.
In short
CVE-2026-12003 is a medium vulnerability (CVSS 5.3) in Python Software Foundation Cpython, published June 16, 2026. No source lists public exploit code. EPSS puts the chance of exploitation in the next 30 days at 0.14%, the 3rd percentile. Fixed in python3 3.12.9-14.
References
github.com/python/cpython/pull/151545
github.com/python/cpython/issues/151544
https//mail.python.org/archives/list/[email protected]/thread/JIFOBO7UX3LY4VJKJUOKYJV62CFR2IRH
github.com/python/cpython/commit/16c40f944b7bff724a403cf4902763d095bb4b2a
github.com/python/cpython/commit/9e863fab283eddca9c2a8f9d1ee30f4dc243e314
github.com/python/cpython/commit/a86de0bc236fbb9452f98998fc8437e9fca35700
Show 75 moreShow less
github.com/python/cpython/commit/b93d6d3399adbd3a5037b6b92fc3587c85ac5d56
github.com/python/cpython/commit/03ab7b44788bfd6b8927e16bcdbd025aa08dce06
github.com/python/cpython/commit/872038377db2e170e0e140b5f8aaedf636b3fbf5
openwall.com/lists/oss-security/2026/06/16/8
nvd.nist.gov/vuln/detail/CVE-2026-12003
github.com/advisories/GHSA-2wqx-fp26-qh5v
errata.tuxcare.com/els_os/almalinux9.2esu/CLSA-2026-1790155146.html
nvd.nist.gov/vuln/detail/CVE-2026-17084
nvd.nist.gov/vuln/detail/CVE-2026-19672
nvd.nist.gov/vuln/detail/CVE-2026-87910
github.com/CVEProject/cvelistV5/tree/main/cves/2026/12xxx/CVE-2026-12003.json
github.com/python/cpython
security-tracker.debian.org/tracker/CVE-2026-12003
openeuler.org/zh/security/security-bulletins/detail?id=openEuler-SA-2026-3070
nvd.nist.gov/vuln/detail/CVE-2026-0864
nvd.nist.gov/vuln/detail/CVE-2026-3276
openeuler.org/zh/security/security-bulletins/detail?id=openEuler-SA-2026-3071
openeuler.org/zh/security/security-bulletins/detail?id=openEuler-SA-2026-3072
nvd.nist.gov/vuln/detail/CVE-2026-11940
nvd.nist.gov/vuln/detail/CVE-2026-11972
nvd.nist.gov/vuln/detail/CVE-2026-8328
access.redhat.com/errata/RHSA-2026:67572
access.redhat.com/security/cve/CVE-2026-87910
access.redhat.com/security/updates/classification
images.redhat.com
access.redhat.com/security/cve/CVE-2026-12003
access.redhat.com/security/cve/CVE-2026-9669
access.redhat.com/security/cve/CVE-2026-3276
access.redhat.com/security/cve/CVE-2026-7210
access.redhat.com/security/cve/CVE-2026-8328
security.access.redhat.com/data/csaf/v2/advisories/2026/rhsa-2026_67572.json
bugzilla.redhat.com/show_bug.cgi?id=2484424
cve.org/CVERecord?id=CVE-2026-3276
github.com/python/cpython/issues/149079
github.com/python/cpython/pull/149080
mail.python.org/archives/list/[email protected]/thread/PP5HB4K7727OBBM76KA2ILID76K3OZGZ
bugzilla.redhat.com/show_bug.cgi?id=2469216
cve.org/CVERecord?id=CVE-2026-7210
nvd.nist.gov/vuln/detail/CVE-2026-7210
github.com/python/cpython/issues/149018
github.com/python/cpython/pull/149023
mail.python.org/archives/list/[email protected]/thread/PNY5OMBDPM2FRUZTWFFPJ6LISWKV627K
bugzilla.redhat.com/show_bug.cgi?id=2477300
cve.org/CVERecord?id=CVE-2026-8328
github.com/python/cpython/issues/87451
github.com/python/cpython/pull/149648
mail.python.org/archives/list/[email protected]/thread/ITF2BAPBQEPYK3LDMPRSY435JGNHYNDP
bugzilla.redhat.com/show_bug.cgi?id=2486590
cve.org/CVERecord?id=CVE-2026-9669
nvd.nist.gov/vuln/detail/CVE-2026-9669
github.com/python/cpython/issues/150599
github.com/python/cpython/pull/150600
mail.python.org/archives/list/[email protected]/thread/DBJZETMGUIFK7DVUWMOXHD3Z6IX2QPSX
bugzilla.redhat.com/show_bug.cgi?id=2489322
cve.org/CVERecord?id=CVE-2026-12003
bugzilla.redhat.com/show_bug.cgi?id=2531985
cve.org/CVERecord?id=CVE-2026-87910
github.com/python/cpython/issues/157265
github.com/python/cpython/pull/157266
mail.python.org/archives/list/[email protected]/thread/57TBTLL2W6APMZR3A25B2YV7GL3EPTDJ
access.redhat.com/errata/RHSA-2026:68135
access.redhat.com/security/cve/CVE-2026-82049
security.access.redhat.com/data/csaf/v2/advisories/2026/rhsa-2026_68135.json
bugzilla.redhat.com/show_bug.cgi?id=2533296
cve.org/CVERecord?id=CVE-2026-82049
nvd.nist.gov/vuln/detail/CVE-2026-82049
github.com/python/cpython/commit/5a57248b22ad3b9aafcaaadae2c304a1923daeca
github.com/python/cpython/issues/157190
github.com/python/cpython/pull/157191
mail.python.org/archives/list/[email protected]/thread/EFJWGAZJA56AKSBR2WHMHQZO7RRLZPRH
access.redhat.com/errata/RHSA-2026:68154
security.access.redhat.com/data/csaf/v2/advisories/2026/rhsa-2026_68154.json
access.redhat.com/errata/RHSA-2026:68309
security.access.redhat.com/data/csaf/v2/advisories/2026/rhsa-2026_68309.json
ubuntu.com/security/CVE-2026-12003
Left out here: the rest of 1 source description. The JSON record has them.