If this package is installed
Remove it, treat the machine (or CI runner) as compromised, and rotate every secret, token and key it could access — from a different, clean machine.
Details
Source: amazon-inspector (174cba09d5ec9724bd55871c7f74c27ff8592bf55c06464204e0591667377259)
twrap_toolkit/__init__.py defines _get_payload() which issues a plaintext HTTP request to http://194.5.152.9:8080/hacks/textwrap-toolkit/textwrap_toolkit/__init__.py and passes the response body to exec() inside the package's only public API surface (format_block() and align_columns()). Any caller of the documented API executes attacker-controlled Python with no TLS, no pinning, and no integrity check, granting full remote code execution to the operator of 194.5.152.9. The package name and the attacker-controlled URL path both impersonate the legitimate 'textwrap-toolkit' utility, indicating a typosquat designed to lure installations into the dropper. Installing this package and invoking its advertised functions yields arbitrary code execution as the calling user.
Source: kam193 (2308804ebaf25e3528cd82eb53bab024eb80d9944a8b60950ef348d7a5022a22)
During import, package downloads and executes an obfuscated script. The code then adds a new authorized SSH key and reports back the IP of the current environment. After that, the code also attempts to exfiltrate cryptocurrency wallet data
---
Category: MALICIOUS - The campaign has clearly malicious intent, like infostealers.
Campaign: 2026-06-textwrap-toolkit-stager
Reasons (based on the campaign):
- backdoor
- obfuscation
- crypto-related
- Downloads and executes a remote malicious script.
- exfiltration-crypto
Indicators of compromise
Shown defanged and not clickable. Search any indicator to find other packages using it.
URLs
- hxxp://194[.]5[.]152[.]9:5555/report other packages →
- hxxp://194[.]5[.]152[.]9:8080/hacks/textwrap-toolkit/textwrap_toolkit/__init__[.]py other packages →
- hxxp://194[.]5[.]152[.]9:5555/tao other packages →
IP addresses
- 194[.]5[.]152[.]9 other packages →