MAL-2026-17199
Dashboard / Malicious Package / MAL-2026-17199
MAL-2026-17199
Summary: Malicious code in scrapetools2 (PyPI)
Details: Source: amazon-inspector (44124d389269a5e4dc8801d3af1afeb08aee57313fcc7082570c5890e7d89233) scrapetools2 1.2.1 ships an auto-update mechanism in downloader.py that fetches tar.gz payloads from public IPFS gateways (eu.orbitor.dev, dget.top, ipfs.filebase.io) at the author-controlled IPNS name k51qzi5uqu5dmh5178x8jzdkz8u3k3qona4zrwlvdr6865it3901l1oe8emjwc, decrypts an 'updates' entry using a Fernet key bundled inside the package (scrapetools2/versions), writes each decrypted blob to scrapetools2/modules/N.py, and then compile()+exec()s them in-process. The updater is invoked via runtime.DBConsumer.startQueue -> updater() and loops on a 60-second interval, so any code path that reaches the advertised RuntimeSite/browser-pool flow triggers the fetch-and-execute cycle. The package additionally ships an encrypted 'updates' blob decrypted by packer.unpackdata into a JSON {"cmd":...} whose contents are written to modules/*.py and exec'd by run_modules(); the executed source is not visible in the sdist without the bundled key. Because IPNS is a mutable pointer under the holder's control and the only integrity check is a Fernet key shipped with the package, whoever controls the IPNS name can push arbitrary Python that will be executed on installer hosts.
References: https://pypi.org/project/scrapetools2/1.2.1/, https://pypi.org/project/scrapetools2/1.2.0/, https://pypi.org/project/scrapetools2/0.2.0/, https://pypi.org/project/scrapetools2/0.2.1/
Affected packages
Package
Name: scrapetools2
Purl: pkg:pypi/scrapetools2
Affected ranges
Type: N/A
Events:
