CVE-2026-24049 wheel Allows Arbitrary File Permission Modification via Path Traversal

High 7.1 Published Updated

Attackers can exploit path traversal in the wheel unpack function to modify permissions of critical system files, leading to privilege escalation or code execution.

Exploited in the wild
Not known
Login needed
Not needed
Attackable
Local or same network only
Victim action needed
A user has to click or open something
Fix
Available

What is CVE-2026-24049?

CVE-2026-24049 is a high-severity path traversal vulnerability in pypa wheel, published on 22 Jan 2026. It can only be exploited from the same machine or local network, and only if a user opens a file or follows a link.

Official description

wheel is a command line tool for manipulating Python wheel files, as defined in PEP 427. In versions 0.40.0 through 0.46.1, the unpack function is vulnerable to file permission modification through mishandling of file permissions after extraction. The logic blindly trusts the filename from the archive header for the chmod operation, even though the extraction process itself might have sanitized the path. Attackers can craft a malicious wheel file that, when unpacked, changes the permissions of critical system files (e.g., /etc/passwd, SSH keys, config files), allowing for Privilege Escalation or arbitrary code execution by modifying now-writable scripts. This issue has been fixed in version 0.46.2.

Weakness: CWE-732, CWE-22

Which versions are affected by CVE-2026-24049?

3 open source packages ship an affected version, including wheel. It affects 1 product.

PackageAffectedFixed in
wheel PyPIFrom 0.40.00.46.2
wheel PyPIFrom 0.40.00.46.2
wheel PyPIFrom 0.40.00.46.2
Linux distribution packages (37)
python3-wheel AlmaLinux:10All versions1:0.41.2-5.el10_1.1
python3-wheel-wheel AlmaLinux:10All versions1:0.41.2-5.el10_1.1
python3.12-wheel AlmaLinux:8All versions0.41.2-4.el8_10
python3.12-wheel-wheel AlmaLinux:8All versions0.41.2-4.el8_10
python3.12-wheel AlmaLinux:9All versions0.41.2-3.el9_7.1
python3.12-wheel-wheel AlmaLinux:9All versions0.41.2-3.el9_7.1
discovery-cli Red Hat:discovery:2::el10All versions0:2.4.3-2.el10
discovery-cli Red Hat:discovery:2::el8All versions0:2.4.3-2.el8
discovery-cli Red Hat:discovery:2::el9All versions0:2.4.3-2.el9
python-wheel Red Hat:enterprise_linux:10.1All versions1:0.41.2-5.el10_1.1
python3-wheel Red Hat:enterprise_linux:10.1All versions1:0.41.2-5.el10_1.1
python3-wheel-wheel Red Hat:enterprise_linux:10.1All versions1:0.41.2-5.el10_1.1
python3.12-wheel Red Hat:enterprise_linux:8::appstreamAll versions0:0.41.2-4.el8_10
python3.12-wheel-wheel Red Hat:enterprise_linux:8::crbAll versions0:0.41.2-4.el8_10
python3.12-wheel Red Hat:enterprise_linux:9::appstreamAll versions0:0.41.2-3.el9_7.1
python3.12-wheel-wheel Red Hat:enterprise_linux:9::crbAll versions0:0.41.2-3.el9_7.1
python-wheel Red Hat:enterprise_linux_eus:10.0All versions1:0.41.2-5.el10_0.1
python3-wheel Red Hat:enterprise_linux_eus:10.0All versions1:0.41.2-5.el10_0.1
python3-wheel-wheel Red Hat:enterprise_linux_eus:10.0All versions1:0.41.2-5.el10_0.1
python3.12-wheel Red Hat:rhel_eus:9.4::appstreamAll versions0:0.41.2-3.el9_4.1
python3.12-wheel-wheel Red Hat:rhel_eus:9.4::crbAll versions0:0.41.2-3.el9_4.1
python3.12-wheel Red Hat:rhel_eus:9.6::appstreamAll versions0:0.41.2-3.el9_6.1
python3.12-wheel-wheel Red Hat:rhel_eus:9.6::crbAll versions0:0.41.2-3.el9_6.1
python-wheel Rocky Linux:10All versions1:0.41.2-5.el10_1.1
python3.12-wheel Rocky Linux:8All versions0:0.41.2-4.el8_10
python3.12-wheel Rocky Linux:9All versions0:0.41.2-3.el9_7.1
python-wheel SUSE:Linux Enterprise High Performance Computing 15 SP4-ESPOSAll versions0.40.0-150400.13.10.1
python-wheel SUSE:Linux Enterprise High Performance Computing 15 SP4-LTSSAll versions0.40.0-150400.13.10.1
python-wheel SUSE:Linux Enterprise High Performance Computing 15 SP5-ESPOSAll versions0.40.0-150400.13.10.1
python-wheel SUSE:Linux Enterprise High Performance Computing 15 SP5-LTSSAll versions0.40.0-150400.13.10.1
python-wheel SUSE:Linux Enterprise Module for Public Cloud 15 SP4All versions0.40.0-150400.13.10.1
python-wheel SUSE:Linux Enterprise Module for Python 3 15 SP7All versions0.42.0-150600.3.3.1
python313-wheel SUSE:Linux Enterprise Module for Python 3 15 SP7All versions0.44.0-150700.3.3.1
python-wheel SUSE:Linux Enterprise Server 15 SP4-LTSSAll versions0.40.0-150400.13.10.1
python-wheel SUSE:Linux Enterprise Server 15 SP5-LTSSAll versions0.40.0-150400.13.10.1
python-wheel SUSE:Linux Enterprise Server 15 SP6-LTSSAll versions0.42.0-150600.3.3.1
python-wheel SUSE:Linux Enterprise Server 16.0All versions0.45.1-160000.3.1

Products include Wheel Project Wheel.

How do I fix CVE-2026-24049?

Upgrade wheel to 0.46.2 or later.

Upgrade, and resolve every user-supplied path against an allowed base folder before opening it. More about Path traversal.

Is CVE-2026-24049 being exploited?

It is not confirmed as exploited in the wild, but public exploit code for CVE-2026-24049 exists.

Public exploit code: 1 proofs of concept on GitHub.

Sources

Also known as ALPINE-CVE-2026-24049, ALSA-2026:1902, ALSA-2026:1939, ALSA-2026:2090, AZL-75192, AZL-75195 and 44 more.

Is CVE-2026-24049 in your software?

Upload an SBOM and sbomify checks it against every vulnerability here, every day.

Check your SBOMs for free