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 (d9903cc9163ada9951dee4ee1f364648cac0e492df9a32582ad3ed8303d29231)
twrap_tool/__init__.py defines two public functions, format_block and align_columns, whose real behavior is to fetch a Python file from raw.githubusercontent.com/TextStack-Devs/twrap-toolkit at v1.0.0 via urllib.request.urlopen, read the response body, and pass it directly to exec() in the caller's Python process. The advertised text-wrapping logic is a decoy (format_block only returns text[:width]). The fetch target is a mutable tag reference with no hash or signature verification, so the served payload can be changed by the repository owner at any time after publish. Any consumer that calls the library runs arbitrary attacker-controlled Python with the caller's privileges. The package name and generic 'advanced text wrapping' description are consistent with a typosquat of Python's stdlib textwrap.
Source: kam193 (aed9fa265dc6118c1b0e349063d65cb949ab7a7eccccdc9b56a69a487ff05365)
Package is a copy of a previous malicious package, but the remote code URL was not yet active during the analysis.
---
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 →