NIST deprecates RSA-2048 from 2030. Find every one of them before attackers do.
Part of a larger attack: 2026-06-easyaillm published 18 malicious packages. See the full campaign →
Malicious package

easyaillmPyPI

Advisory published Updated

easyaillm is a confirmed malicious PyPI package (MAL-2026-5756) that steals credentials and exfiltrates sensitive data (malicious versions 2.0.15, 2.0.16). Do not install it — remove it immediately and rotate any exposed credentials.

Malicious code in easyaillm (PyPI)

MAL-2026-5756
Immediate action
Remove the package, then rotate any secrets the build/runtime could reach.
pip uninstall easyaillm

What this malware does

On pip install easyaillm, setup.py runs exec(base64.b64decode(...)) which decodes to code that fetches https://pastebin.com/raw/hEF5HaFc, treats the response body as a second URL, downloads that URL's bytes to pkg_installer.exe, and executes it via os.system('cmd /c pkg_installer.exe'). The attack stages are concealed behind a base64 blob and exec() indirection, while the package metadata advertises an unrelated LLM/Roblox API purpose as cover. The pastebin source is mutable and anonymous, allowing the operator to swap the second-stage URL and ultimately the executed binary at any time. Installing this package on Windows results in arbitrary attacker-controlled code execution on the installer's machine.

During installation, the obfuscsted code attempts to download and start a malicious executable. The published versions contained issues preventing successful downloading, but it was possible to recover the intended executable during the analysis.

Category: MALICIOUS - The campaign has clearly malicious intent, like infostealers.

Campaign: 2026-06-easyaillm

Reasons (based on the campaign):

  • Downloads and executes a remote executable.

  • obfuscation

  • malware

  • tool:mshta

Malicious versions

2 flagged
2.0.152.0.16

Indicators of compromise (SHA-256)

8b2e19d96463fddff4bb8d7b73696ea1929c0cd8bb4948204e0913c77da0fbb7
b0cfcf55b6a8ee07ad52674f63dceafc20f70f4aa26e982055ab117caf492a1f
b6268f175708584b9c3de408c80de3dc1162f4d1ddedb1ce6201b90f409b0dea
49a89e2a264a57c1c5316080b20439b7b50b022db53db99efcce9b2bed887162
5862ce814dcb10eaca11b3835a7ca2f8a74b206c3e9696727fbd2316c7bafda1
f9f144a0f18c580e476d613e3a5224eb5966d44bab0c20880b0fe93e83de1ef2
a08d3871109fa50918608928ea7aaa533e5f99ac68cb20cbaa9558836f3d44bd

Detection & response playbook

Credential / info stealer
  1. Find it

    Search your lockfiles and build artifacts for easyaillm (2 malicious versions).

  2. If you installed it — respond

    easyaillm 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.

  3. Did it already run?

    If easyaillm 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

No. easyaillm on PyPI has been identified as a malicious package (versions 2.0.15, 2.0.16 flagged). It should be removed immediately — do not install or keep it in your dependency tree.

Campaign

2026-06-easyaillmIN-MAL-2026-006446IN-MAL-2026-006445

References

Credits

  • Amazon Inspector · finder
  • Kamil Mańkowski (kam193) · reporter

Detect & block this

O3 blocks easyaillm-class packages before install and in CI — and if it already ran, its runtime egress monitoring catches the credential exfiltration and severs the channel.

Explore

easyaillm (PyPI) malicious package — MAL-2026-5756 | O3 Security