chore(deps): update dependency wheel to v0.46.2 [security] - autoclosed#812
chore(deps): update dependency wheel to v0.46.2 [security] - autoclosed#812renovate-bot wants to merge 1 commit intogoogleapis:mainfrom
Conversation
Summary of ChangesHello @renovate-bot, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed! This pull request upgrades the Highlights
Using Gemini Code AssistThe full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips. Invoking Gemini You can request assistance from Gemini at any point by creating a comment using either
Customization To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a Limitations & Feedback Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for Github and other Google products, sign up here. You can also get AI-powered code generation, chat, as well as code reviews directly in the IDE at no cost with the Gemini Code Assist IDE Extension. Footnotes
|
There was a problem hiding this comment.
Code Review
This pull request updates the wheel dependency from version 0.45.1 to 0.46.2. This is an important security update to address a path traversal vulnerability (GHSA-8rrh-rw8j-w5fx) in the wheel package's unpack functionality. A malicious wheel file could exploit this to alter file permissions outside of the intended destination directory. The update to version 0.46.2 contains the patch for this vulnerability. The version change and the updated hashes in requirements.txt are correct. This is a necessary update to mitigate the security risk.
This PR contains the following updates:
==0.45.1→==0.46.2GitHub Vulnerability Alerts
CVE-2026-24049
Summary
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.
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.
Step 2: Run the Exploit (exploit.py)
result:

Impact
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) to 777. This allows for Privilege Escalation or arbitrary code execution by modifying now-writable scripts.
Recommended Fix
The unpack function must not use zinfo.filename for post-extraction operations. It should use the sanitized path returned by wf.extract().
Suggested Patch:
Release Notes
pypa/wheel (wheel)
v0.46.2Compare Source
bdist_wheelcommand for compatibility withsetuptoolsolder than v70.1wheel.bdist_wheelnow emits aFutureWarninginstead of aDeprecationWarningwheel unpackpotentially altering the permissions of files outside of the destination tree with maliciously crafted wheels (CVE-2026-24049)v0.46.1Compare Source
wheel.macosx_libfilemodule (#659)v0.46.0Compare Source
bdist_wheelsetuptools command implementation and entry point. Thewheel.bdist_wheelmodule is now just an alias tosetuptools.command.bdist_wheel, emitting a deprecation warning on import.packagingin favor of a run-time dependency on itwheel.metadatamodule private (with a deprecation warning if it's importedwheel.clipackage private (no deprecation warning)convertcommand with an empty description fieldConfiguration
📅 Schedule: Branch creation - "" (UTC), Automerge - At any time (no schedule defined).
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.
This PR was generated by Mend Renovate. View the repository job log.