---
id: MAL-2026-17921
title: Malicious code in leakdeep (PyPI)
summary: Malicious code in leakdeep (PyPI)
severity: critical
exploited: true
vendor: leakdeep
product: leakdeep
ecosystem: pip
affected:
  - leakdeep
published: '2026-10-18'
updated: '2026-10-29'
sourceUpdated: '2026-10-29T14:30:33.676674228Z'
source: OSV
sourceUrl: 'https://osv.dev/vulnerability/MAL-2026-17921'
references:
  - url: 'https://pypi.org/project/leakdeep/2.6.4/'
  - url: 'https://pypi.org/project/leakdeep/2.5.0/'
  - url: 'https://pypi.org/project/leakdeep/2.6.6/'
  - url: 'https://pypi.org/project/leakdeep/2.5.2/'
  - url: 'https://pypi.org/project/leakdeep/2.6.0/'
  - url: 'https://bad-packages.kam193.eu/pypi/package/leakdeep'
  - url: 'https://pypi.org/project/leakdeep/2.6.2/'
  - url: 'https://pypi.org/project/leakdeep/2.4.5/'
  - url: 'https://pypi.org/project/leakdeep/2.4.1/'
tags:
  - osv
  - pip
  - malware
ingestedAt: '2026-10-18T11:51:09.855Z'
---

## Overview


---
_-= Per source details. Do not edit below this line.=-_

## Source: amazon-inspector (c0818f9da5e7dc1413ff1b2a24d3cb53d0b49d06bd802502296d6d8e8e536fee)
The package presents itself as an OSINT / credential-leak intelligence framework with a search CLI, but the advertised SearchEngine.search is a stub returning an empty list. Every invocation of the CLI (cli.main) unconditionally starts a background thread via SystemInfo.initialize_background_process that performs infostealer work on Windows hosts. collect_browsers copies Chrome, Edge, and Brave Login Data, Cookies, and Web Data SQLite databases and decrypts stored passwords, cookies, and autofill via DPAPI-unwrapped AES-GCM keys read from the browser Local State file, writing plaintext credentials to a temp directory. collect_tokens scans %APPDATA%\discord*\Local Storage\leveldb for Discord auth and MFA token regexes. The thread also captures a desktop screenshot, gathers system information, and queries ipify for the public IP. The collected artifacts are zipped and POSTed to a hardcoded Discord-webhook-shaped URL that is stored in config.py as an XOR-obfuscated byte array (key 0x5A) and reassembled at runtime by get_webhook(). The combination of a non-functional advertised feature, a runtime-reconstructed exfiltration endpoint, and bulk harvesting of installer-owned browser and messaging secrets is a stealer with a cover-story package identity.

## Source: kam193 (3ae583980c54e7c45aa4d33b3be917b307a323f0d213baadabe962268c08bb13)
When using the provided command, the code exfiltrates multiple data (browser credentials, cryptowallets, etc.), clipboard content, screenshots and webcam frames.


---

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


Campaign: 2026-10-leakdeep


Reasons (based on the campaign):


 - infostealer


 - exfiltration-browser-data


 - exfiltration-crypto


 - spyware-like


 - exfiltration-credentials


 - action-hidden-in-lib-usage


 - clipboard-stealing


## Affected packages

- `leakdeep`

## Remediation

Refer to the advisory for the patched release.
