-
Notifications
You must be signed in to change notification settings - Fork 3
Update dependency pyinstaller to v6 [SECURITY] #244
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Open
renovate
wants to merge
1
commit into
develop
Choose a base branch
from
renovate/pypi-pyinstaller-vulnerability
base: develop
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
|
8e912ce
to
599a572
Compare
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Labels
None yet
0 participants
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Coming soon: The Renovate bot (GitHub App) will be renamed to Mend. PRs from Renovate will soon appear from 'Mend'. Learn more here.
This PR contains the following updates:
^4.1
->^6.0.0
GitHub Vulnerability Alerts
CVE-2023-49797
Impact
A PyInstaller built application, elevated as a privileged process, may be tricked by an unprivileged attacker into deleting files the unprivileged user does not otherwise have access to.
A user is affected if all the following are satisfied:
matplotlib
orwin32com
.TMP
/TEMP
environment variables pointing to an unprotected, arbitrary, non default location).shutil.rmtree()
's builtin symlink check and the deletion itselfPatches
The vulnerability has been addressed in https://github.com/pyinstaller/pyinstaller/pull/7827 which corresponds to
pyinstaller >= 5.13.1
Workarounds
Is there a way for users to fix or remediate the vulnerability without upgrading?
No workaround, although the attack complexity becomes much higher if the application is built with Python >= 3.8.0.
CVE-2025-59042
Impact
Due to a special entry being appended to
sys.path
during the bootstrap process of a PyInstaller-frozen application, and due to the bootstrap script attempting to load an optional module for bytecode decryption while this entry is still present insys.path
, an application built with PyInstaller < 6.0.0 may be tricked by an unprivileged attacker into executing arbitrary python code when all of the following conditions are met:?
in their name (i.e., non-Windows systems).The attacker can create a directory (or a zip archive) next to the executable, with the name that matches the format used by PyInstaller's bootloader to transmit information about the location of PYZ archive to the bootstrap script. If this directory (or zip archive) contains a python module whose name matches the name used by the optional bytecode encryption feature, this module will be loaded and executed by the bootstrap script (in the absence of the real, built-in module that is available when the bytecode-encryption feature is enabled). This results in arbitrary code execution that requires no modification of the executable itself.
If the executable is running with elevated privileges (for example, due to having the
setuid
bit set), the code in the injected module is also executed with the said elevated privileges, resulting in a local privilege escalation.Patches
PyInstaller 6.0.0 (f5adf291c8b832d5aff7632844f7e3ddf7ad4923) removed support for bytecode encryption; this effectively removes the described attack vector, due to the bootstrap script not attempting to load the optional module for bytecode-decryption anymore.
PyInstaller 6.10.0 (cfd60b510f95f92cb81fc42735c399bb781a4739) reworked the bootstrap process to avoid (ab)using
sys.path
for transmitting location of the PYZ archive, which further eliminates the possibility of described injection procedure.Workarounds
If upgrading PyInstaller is no feasible, this issue can be worked around by ensuring proper permissions on directories containing security-sensitive executables (i.e., executables with
setuid
bit set) should mitigate the issue.Release Notes
pyinstaller/pyinstaller (pyinstaller)
v6.0.0
Compare Source
Please see the v6.0.0 section of the changelog for a list of the changes since v5.13.2.
v5.13.2
Compare Source
Please see the v5.13.2 section of the changelog for a list of the changes since v5.13.1.
v5.13.1
Compare Source
Please see the v5.13.1 section of the changelog for a list of the changes since v5.13.0. Note that this is a bugfix only release. It's primary purpose is to publish #7827.
v5.13.0
Compare Source
Please see the v5.13.0 section of the changelog for a list of the changes since v5.12.0.
Note that this is intended to be the last
v5.x
release.v6.0
will contain breaking changes from #7619, #7713 and #6999. If you want to avoid unexpected disruption, you may wish to pin pyinstaller (e.g.pip install "pyinstaller<6"
).v5.12.0
Compare Source
Please see the v5.12.0 section of the changelog for a list of the changes since v5.11.0.
v5.11.0
Compare Source
Please see the v5.11.0 section of the changelog for a list of the changes since v5.10.1.
v5.10.1
Compare Source
Please see the v5.10.1 section of the changelog for a list of the changes since v5.10.0.
v5.10.0
Compare Source
Please see the v5.10.0 section of the changelog for a list of the changes since v5.9.0.
v5.9.0
Compare Source
Please see the v5.9.0 section of the changelog for a list of the changes since v5.8.0.
v5.8.0
Compare Source
Please see the v5.8.0 section of the changelog for a list of the changes since v5.7.0.
v5.7.0
Compare Source
Please see the v5.7.0 section of the changelog for a list of the changes since v5.6.2.
v5.6.2
Compare Source
Please see the v5.6.2 section of the changelog for a list of the changes since v5.6.1.
v5.6.1
Compare Source
Please see the v5.6.1 section of the changelog for a list of the changes since v5.6.
v5.6
Compare Source
Please see the v5.6 section of the changelog for a list of the changes since v5.5.
v5.5
Compare Source
Please see the v5.5 section of the changelog for a list of the changes since v5.4.1.
v5.4.1
Compare Source
Please see the v5.4.1 section of the changelog for a list of the changes since v5.4.
v5.4
Compare Source
Please see the v5.4 section of the changelog for a list of the changes since v5.3.
v5.3
Compare Source
Please see the v5.3 section of the changelog for a list of the changes since v5.2.
v5.2
Compare Source
Please see the v5.2 section of the changelog for a list of the changes since v5.1.
v5.1
Compare Source
Please see the v5.1 section of the changelog for a list of the changes.
v5.0.1
Compare Source
v5.0
Compare Source
Please see the v5.0 section of the changelog for a list of the changes since v4.10.
v4.10
Compare Source
Please see the v4.10 section of the changelog for a list of the changes since v4.9.
v4.9
Compare Source
Please see the v4.9 section of the changelog for a list of the changes since v4.8.
v4.8
Compare Source
Please see the v4.8 section of the changelog for a list of the changes since v4.7.
v4.7
Compare Source
Please see the v4.7 section of the changelog for a list of the changes since v4.6.
v4.6
Compare Source
Please see the v4.6 section of the changelog for a list of the changes since v4.5.1.
Configuration
📅 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.