Ecosyste.ms: Advisories
An open API service providing security vulnerability metadata for many open source software ecosystems.
Security Advisories: GSA_kwCzR0hTQS05dzJwLXJoOGMtdjlnNc4AA3pj
Local Privilege Escalation in Windows
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:
- The user runs an application containing either
matplotlib
orwin32com
. - The application is ran as administrator (or at least a user with higher privileges than the attacker).
- The user's temporary directory is not locked to that specific user (most likely due to
TMP
/TEMP
environment variables pointing to an unprotected, arbitrary, non default location). - Either:
- The attacker is able to very carefully time the replacement of a temporary file with a symlink. This switch must occur exactly between
shutil.rmtree()
's builtin symlink check and the deletion itself - The application was built with Python 3.7.x or earlier which has no protection against Directory Junctions links
- The attacker is able to very carefully time the replacement of a temporary file with a symlink. This switch must occur exactly between
Patches
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.
Permalink: https://github.com/advisories/GHSA-9w2p-rh8c-v9g5JSON: https://advisories.ecosyste.ms/api/v1/advisories/GSA_kwCzR0hTQS05dzJwLXJoOGMtdjlnNc4AA3pj
Source: GitHub Advisory Database
Origin: Unspecified
Severity: High
Classification: General
Published: 12 months ago
Updated: 10 days ago
CVSS Score: 8.8
CVSS vector: CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:H
Identifiers: GHSA-9w2p-rh8c-v9g5, CVE-2023-49797
References:
- https://github.com/pyinstaller/pyinstaller/security/advisories/GHSA-9w2p-rh8c-v9g5
- https://nvd.nist.gov/vuln/detail/CVE-2023-49797
- https://github.com/pyinstaller/pyinstaller/pull/7827
- https://github.com/python/cpython/blob/0fb18b02c8ad56299d6a2910be0bab8ad601ef24/Lib/shutil.py#L623
- https://github.com/pypa/advisory-database/tree/main/vulns/pyinstaller/PYSEC-2023-292.yaml
- https://lists.fedoraproject.org/archives/list/[email protected]/message/2K2XIQLEMZIKUQUOWNDYWTEWYQTKMAN7
- https://lists.fedoraproject.org/archives/list/[email protected]/message/ISRWT34FAF23PUOLVZ7RVWBZMWPDR5U7
- https://github.com/advisories/GHSA-9w2p-rh8c-v9g5
Blast Radius: 34.2
Affected Packages
pypi:pyinstaller
Dependent packages: 331Dependent repositories: 7,678
Downloads: 3,870,898 last month
Affected Version Ranges: < 5.13.1
Fixed in: 5.13.1
All affected versions: 1.5.1, 3.1.1, 3.2.1, 3.3.1, 4.5.1, 5.0.1, 5.4.1, 5.6.1, 5.6.2, 5.7.0, 5.8.0, 5.9.0, 5.10.0, 5.10.1, 5.11.0, 5.12.0, 5.13.0
All unaffected versions: 5.13.1, 5.13.2, 6.0.0, 6.1.0, 6.2.0, 6.3.0, 6.4.0, 6.5.0, 6.6.0, 6.7.0, 6.8.0, 6.9.0, 6.10.0, 6.11.0, 6.11.1