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

airflow-provider-spiritPyPI

airflow-provider-spirit is a confirmed malicious PyPI package (MAL-2026-10754) that steals credentials and exfiltrates sensitive data (malicious versions 0.0.1, 8.5.3, 8.5.4). Do not install it — remove it immediately and rotate any exposed credentials.

Malicious code in airflow-provider-spirit (PyPI)

MAL-2026-10754
Immediate action
Remove the package, then rotate any secrets the build/runtime could reach.
pip uninstall airflow-provider-spirit

What this malware does

The package is published as an Airflow provider but ships no provider code. setup.py installs telemetry.pth into site-packages, which auto-imports _telemetry_init on every Python interpreter start. _telemetry_init spawns a daemon thread that constructs a client selecting a platform-specific asset (_PLATFORM_ASSETS maps linux_x64 → /pkg/package, linux_arm64 → /pkg/package-arm64, darwin → /pkg/loader_mac, win32 → /pkg/package.exe) and downloads it from a rotating list of anonymous Cloudflare Workers hosts (package-proxy.cf5oobworker.workers.dev, package-proxy.cf8oobworker.workers.dev, package-proxy.cf12oobworker.workers.dev, package-proxy.cf17-ddb.workers.dev, package-proxy.cf25-6eb.workers.dev). _telemetry_transport.py writes the downloaded bytes to disk, sets 0o755 with os.chmod, and executes them — on Windows via ctypes.windll.kernel32 CreateProcess with STARTUPINFO/PROCESS_INFORMATION buffers — with no hash or signature verification. A second delivery channel issues raw UDP DNS queries to 8.8.8.8/1.1.1.1 for TXT records at tin.dl.wel1.ru, tina.dl.wel1.ru, ldr.dl.wel1.ru, and win.dl.wel1.ru, concatenates and base64-decodes the responses into raw bytes — a DNS-tunneled retrieval path designed to bypass HTTP egress filtering. Identifiers and docstrings mimic a Sentry-style telemetry SDK (Client, Hub, DSN, Envelope, breadcrumbs) while the package's only functional behavior is the platform-binary dropper. Because the trigger is a.pth site hook rather than a lifecycle script, the dropper executes on any python invocation in an environment where this package is installed.

Package presents little functionality, but excessive fake 'telemetry' module. This fake telemetry is used to download and run malicious executables. Code is designed to survive different blocks: first, there is an attempt to download the executable from one of five Cloudflare Workers. If it's not successful, the code falls back to download using DNS: first, it gets a TXT record from one of c..dl.well1[.]site domains, depending on the system. This record returns a number, which is then used to iterate over domains in the form <0...n>..dl.well1[.]site and reconstruct the encoded executable from their TXT records. The downloaded binary is then executed and removed afterward. Using a PTH file ensures persistence and runs on every Python start. In this campaign, versions 0.0.1 hold disarmed code (without the necessary configuration), which is completed in further updates.

This is a continuation of the 2026-07-haproxy-config-client campaign.

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

Campaign: 2026-07-andreiiiiiii_i

Reasons (based on the campaign):

  • The package contains code to exfiltrate basic data from the system, like IP or username. It has a limited risk.

  • The package overrides the install command in setup.py to execute malicious code during installation.

  • Downloads and executes a remote executable.

  • covering-tracks

  • persistence

  • abuses-pth

  • data-stored-in-dns

Malicious versions

3 flagged
0.0.18.5.38.5.4

Indicators of compromise (SHA-256)

b565bd72c6acb3adb077ac7923ddf40d12a4922cb8bea5d22a43590e7c57d8e6
de30b355725bbb3e2266ac42ee2b911a0bc4f646d3c26125b5447108cf545dd0
9b34b2a0cc52321dd89abbfd0036061560a1c0fa08f2a494a6a2a13566a8d84b
4ec5dbf4eb9341a2e18a4a36b0af67cd70e2438ba476e8a7a86d51458d42141e
84edc3b5fdf650aec875a1381b60bf2bb811f0c813ca6841052730fcee025bc3

Detection & response playbook

Credential / info stealer
  1. Find it

    Scan your lockfiles (package-lock.json, pnpm-lock.yaml, yarn.lock, requirements.txt, poetry.lock, etc.) and build artifacts for airflow-provider-spirit (3 malicious versions). O3 Security's supply-chain scanner checks every dependency against known-malicious package intelligence at install time and in CI, flagging airflow-provider-spirit across your stack and pipelines.

  2. If you installed it — respond

    airflow-provider-spirit 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 airflow-provider-spirit was ever installed, its post-install/runtime payload may have already executed. O3's L7 egress monitoring and runtime eBPF sensors detect the credential exfiltration or command-and-control callback after install and block the malicious outbound channel, so you catch and contain the actual compromise — not just the presence of the package.

  4. How O3 protects you

    O3 blocks airflow-provider-spirit before install through its supply-chain scanner, and if it has already run, detects and severs the exfiltration or C2 callback at runtime through L7 egress monitoring and eBPF.

Frequently asked questions

No. airflow-provider-spirit on PyPI has been identified as a malicious package (versions 0.0.1, 8.5.3, 8.5.4 flagged). It should be removed immediately — do not install or keep it in your dependency tree.

Campaign

IN-MAL-2026-0107502026-07-andreiiiiiii_iIN-MAL-2026-010873IN-MAL-2026-010875

References

Credits

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

Detect & block this

O3 blocks airflow-provider-spirit-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

airflow-provider-spirit (PyPI) malicious package — MAL-2026-10754 | O3 Security