Vulnerability · Published May 7, 2024 · Assigned by PSF
CVE-2024-4030tempfile.mkdtemp() may be readable and writeable by all users on Windows
High 7.1
In plain English
A high-severity incorrect default permissions in CPython from Python Software Foundation. There are no confirmed reports of exploitation so far. The chance it is exploited in the next 30 days is estimated at 0.3% (higher than 23% of all known vulnerabilities).
Official description
On Windows a directory returned by tempfile.mkdtemp() would not always have permissions set to restrict reading and writing to the temporary directory by other users, instead usually inheriting the correct permissions from the default location. Alternate configurations or users without a profile directory may not have the intended permissions. If you’re not using Windows or haven’t changed the temporary directory location then you aren’t affected by this vulnerability. On other platforms the returned directory is consistently readable and writable only by the current user. This issue was caused by Python not supporting Unix permissions on Windows. The fix adds support for Unix “700” for the mkdir function on Windows which is used by mkdtemp() to ensure the newly created directory has the proper permissions.
Affected products (as reported)
| Vendor | Product | Versions |
|---|---|---|
| Python Software Foundation | CPython | 0 – before 3.8.203.9.0 – before 3.9.203.10.0 – before 3.10.153.11.0 – before 3.11.103.12.0 – before 3.12.43.13.0a1 – before 3.13.0b1 |
Weakness: CWE-276 · Vector: CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:N
References
- https://mail.python.org/archives/list/security-announce@python.org/thread/PRGS5OR3N3PNPT4BMV2VAGN5GMUI5636/ vendor-advisory
- https://github.com/python/cpython/issues/118486 issue-tracking
- https://github.com/python/cpython/commit/81939dad77001556c527485d31a2d0f4a759033e patch
- https://github.com/python/cpython/commit/8ed546679524140d8282175411fd141fe7df070d patch
- https://github.com/python/cpython/commit/35c799d79177b962ddace2fa068101465570a29a patch
- https://github.com/python/cpython/commit/5130731c9e779b97d00a24f54cdce73ce9975dfd patch
- https://github.com/python/cpython/commit/66f8bb76a15e64a1bb7688b177ed29e26230fdee patch
- https://github.com/python/cpython/commit/6d0850c4c8188035643586ab4d8ec2468abd699e patch
- https://github.com/python/cpython/commit/91e3669e01245185569d09e9e6e11641282971ee patch
- https://github.com/python/cpython/commit/94591dca510c796c7d40e9b4167ea56f2fdf28ca patch
- https://github.com/python/cpython/commit/c8f868dc52f98011d0f9b459b6487920bfb0ac4d patch
- https://github.com/python/cpython/commit/d86b49411753bf2c83291e3a14ae43fefded2f84 patch
- https://github.com/python/cpython/commit/e1dfa978b1ad210d551385ad8073ec6154f53763 patch
- https://github.com/python/cpython/commit/eb29e2f5905da93333d1ce78bc98b151e763ff46 patch
- https://security.netapp.com/advisory/ntap-20240705-0005/