Medium, CVSS 5.4PyPIAmendedPublished
Pylint: Arbitrary code execution via pickle deserialization of the stats cache in PYLINT_HOME
CVE-2026-114608 · GHSA-22qq-2fwx-7p67
- Affected
- PyPI pylint < 4.0.9
- Fixed in
- 4.0.9· Vendor fix available
- Issue
- Impact Since 2006 / pylint 0.15.2, pylint caches its stats as pickles in `PYLINT_HOME` and reload them on the next run with `pickle.load`. Someone without access to the configuration or linted code, but with access to the cache directory (predictable `PYLINT_HOME` on a multi-user host) can write a crafted pickle that will runs arbitrary code when pylint access its stat cache. Patches From pylint 4.0.9, the result cache is now stored as JSON instead of pickle, preventing code-execution. Workarounds Until upgrading do not point `PYLINT_HOME` to an untrusted, shared, or group-writable directory. The default value, `~/.cache/pylint`, is writable only by the user running pylint. Credits - Reported privately via Tidelift coordinated disclosure (Dan Lenz).
Recommended action: Upgrade to 4.0.9 or later, then redeploy and verify.A vendor fix does not resolve your finding until you verify it in your own systems.