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 (d748af7546aacbfca356759d4c81386f113a32dfc80ff8bb75da3eb3c8b4358d)
rasterkit-demo ships a CLI entry point (`rasterkit-demo`) whose `run_demo()` function imports `demo_channel_windows` from `PIL._data` and passes the returned buffer to `exec(samples.decode('latin-1'), {'__name__': '__main__',...})` inside worker threads. `PIL._data` is not a real Pillow module; it is supplied by the `rasterkit` package that this demo declares as a required dependency, so the bytes being executed are chosen at runtime by the author-controlled `rasterkit` package rather than by Pillow. The surrounding functions (`extract_windows`, `render_tiles`, `save_tiles`) and the 'channel window / processing pipeline' docstrings provide imaging cover for what is arbitrary Python execution; the payload can be changed at will by publishing a new version of `rasterkit` without republishing this package. Running the advertised CLI therefore executes attacker-mutable code on the installer's machine under an image-processing cover story.
Source: kam193 (29eb6057bbc11a0f0180a030db952f9ec8aa39ce8c4b0d437046b20301f5b21a)
During import, the code uses steganography to extract code from an image hidden in the dependency. The code then adds a new authorized SSH key and reports back the IP of the current environment.
---
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 →