MAL-2026-17921
Vulnerability from ossf_malicious_packages
-= 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
- CWE-506 - The product contains code that appears to be malicious in nature.
- CWE-506 - The product contains code that appears to be malicious in nature.
- CWE-506 - The product contains code that appears to be malicious in nature.
- CWE-506 - The product contains code that appears to be malicious in nature.
- CWE-506 - The product contains code that appears to be malicious in nature.
{
"affected": [
{
"database_specific": {
"cwes": [
{
"cweId": "CWE-506",
"description": "The product contains code that appears to be malicious in nature.",
"name": "Embedded Malicious Code"
},
{
"cweId": "CWE-506",
"description": "The product contains code that appears to be malicious in nature.",
"name": "Embedded Malicious Code"
},
{
"cweId": "CWE-506",
"description": "The product contains code that appears to be malicious in nature.",
"name": "Embedded Malicious Code"
},
{
"cweId": "CWE-506",
"description": "The product contains code that appears to be malicious in nature.",
"name": "Embedded Malicious Code"
},
{
"cweId": "CWE-506",
"description": "The product contains code that appears to be malicious in nature.",
"name": "Embedded Malicious Code"
}
],
"indicators": {
"evidence_files": [
{
"path": "leakdeep/core/system.py",
"sha256": "0634ec699de39d30fdd902c9b64c4c1587b2ec6d063e071093d7ae206af10dc8",
"tlsh": "9941e0435866217182cbdae47d46c0f56315b97b8e02d820babc3fa49f446b117b92a9"
},
{
"path": "leakdeep/config.py",
"sha256": "fe0752ff79816a2f2150da9ba2458e761e49019cfa4c421b63e161e57cb8fee6",
"tlsh": "d751756ff64e606a0c0b7b1894e2dcc2218e654653a49cddbefc445cf9e4ea180b295d"
},
{
"path": "leakdeep/cli.py",
"sha256": "abae927c786a194318cc4203a118a24b9c1107ddff22d52b61de2413d19e9054",
"tlsh": "e421200a0d1024768ba6446c895890a02633ba27cb00d2b4bded53d57f8d966daa5a3c"
}
],
"package_integrity": [
{
"filename": "leakdeep-2.6.4-py3-none-any.whl",
"hashes": {
"blake2b_256": "60be97285c5d731239cb0bef74e07bba05494185e6361ad54d00ea2f3db4d273",
"md5": "5b6158c38325dd2536a47850d9c4ffb0",
"sha256": "bb0853ea6e667d6fc44871e3a86a1620f25e087afbe6276af06f23e04c60ff41"
}
},
{
"filename": "leakdeep-2.6.4.tar.gz",
"hashes": {
"blake2b_256": "ea6ec56ef74ff7c4b71f6eee958d18aa5f6fced35a219ff1513e02a104922046",
"md5": "cb978a1113b951805defde90ed8a953e",
"sha256": "8b1f139906718ad4008fdcecbf289e7708a61dddc81db7bc3cbcfb61adec24cc"
}
}
]
}
},
"package": {
"ecosystem": "PyPI",
"name": "leakdeep"
},
"versions": [
"2.6.4",
"2.5.0",
"2.6.6",
"2.5.2",
"2.6.0",
"2.4.1",
"2.4.5",
"2.6.2",
"3.0.0"
]
}
],
"credits": [
{
"contact": [
"inspector-research@amazon.com"
],
"name": "Amazon Inspector",
"type": "FINDER"
},
{
"contact": [
"https://github.com/kam193",
"https://bad-packages.kam193.eu/"
],
"name": "Kamil Ma\u0144kowski (kam193)",
"type": "REPORTER"
}
],
"database_specific": {
"malicious-packages-origins": [
{
"id": "IN-MAL-2026-021512",
"import_time": "2026-10-18T01:52:23.159101626Z",
"modified_time": "2026-10-18T01:45:37Z",
"sha256": "038a56fe3084b0066c1c551a8dd407d947e67789e4f408028f4349435b32f0a8",
"source": "amazon-inspector",
"versions": [
"2.6.4"
]
},
{
"id": "IN-MAL-2026-021514",
"import_time": "2026-10-18T01:52:23.314259428Z",
"modified_time": "2026-10-18T01:45:55Z",
"sha256": "0681363b2c786aeb77108587ea4270fdacfdb4f36e9a1fda050691b0b19e66e7",
"source": "amazon-inspector",
"versions": [
"2.5.0"
]
},
{
"id": "IN-MAL-2026-021513",
"import_time": "2026-10-18T01:52:23.2407717Z",
"modified_time": "2026-10-18T01:45:44Z",
"sha256": "7e522516edadfbc81229e48f039f47dc3e44d651f5583141f024ae3209e923f7",
"source": "amazon-inspector",
"versions": [
"2.6.6"
]
},
{
"id": "IN-MAL-2026-021511",
"import_time": "2026-10-18T01:52:23.083881019Z",
"modified_time": "2026-10-18T01:45:30Z",
"sha256": "c0818f9da5e7dc1413ff1b2a24d3cb53d0b49d06bd802502296d6d8e8e536fee",
"source": "amazon-inspector",
"versions": [
"2.5.2"
]
},
{
"id": "IN-MAL-2026-021510",
"import_time": "2026-10-18T01:52:23.005525874Z",
"modified_time": "2026-10-18T01:45:23Z",
"sha256": "c1e17f5e885c976851f2ac149d435002bbc35bfb7487b2274db97a124e145621",
"source": "amazon-inspector",
"versions": [
"2.6.0"
]
},
{
"id": "pypi/2026-10-leakdeep/leakdeep",
"import_time": "2026-10-18T16:40:23.526830211Z",
"modified_time": "2026-10-18T16:33:36.776496Z",
"sha256": "3ae583980c54e7c45aa4d33b3be917b307a323f0d213baadabe962268c08bb13",
"source": "kam193",
"versions": [
"2.4.1",
"2.4.5",
"2.5.0",
"2.5.2",
"2.6.0",
"2.6.2",
"2.6.4",
"2.6.6",
"3.0.0"
]
}
]
},
"details": "\n---\n_-= Per source details. Do not edit below this line.=-_\n\n## Source: amazon-inspector (c0818f9da5e7dc1413ff1b2a24d3cb53d0b49d06bd802502296d6d8e8e536fee)\nThe 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.\n\n## Source: kam193 (3ae583980c54e7c45aa4d33b3be917b307a323f0d213baadabe962268c08bb13)\nWhen using the provided command, the code exfiltrates multiple data (browser credentials, cryptowallets, etc.), clipboard content, screenshots and webcam frames.\n\n\n---\n\nCategory: MALICIOUS - The campaign has clearly malicious intent, like infostealers.\n\n\nCampaign: 2026-10-leakdeep\n\n\nReasons (based on the campaign):\n\n\n - infostealer\n\n\n - exfiltration-browser-data\n\n\n - exfiltration-crypto\n\n\n - spyware-like\n\n\n - exfiltration-credentials\n\n\n - action-hidden-in-lib-usage\n\n\n - clipboard-stealing\n",
"id": "MAL-2026-17921",
"modified": "2026-10-18T16:42:09.952645996Z",
"published": "2026-10-18T01:45:23Z",
"references": [
{
"type": "PACKAGE",
"url": "https://pypi.org/project/leakdeep/2.6.4/"
},
{
"type": "PACKAGE",
"url": "https://pypi.org/project/leakdeep/2.5.0/"
},
{
"type": "PACKAGE",
"url": "https://pypi.org/project/leakdeep/2.6.6/"
},
{
"type": "PACKAGE",
"url": "https://pypi.org/project/leakdeep/2.5.2/"
},
{
"type": "PACKAGE",
"url": "https://pypi.org/project/leakdeep/2.6.0/"
},
{
"type": "WEB",
"url": "https://bad-packages.kam193.eu/pypi/package/leakdeep"
}
],
"schema_version": "1.7.4",
"summary": "Malicious code in leakdeep (PyPI)"
}
Drag nodes to arrange them. Double-click a related vulnerability to open it, or a source to visit its link. The Physics button on the left tunes the layout and the simulation; the legend at the bottom left hides or shows nodes by kind and by sighting type.
Sightings
| Author | Source | Type | Date | Other |
|---|
Nomenclature
- Seen: The vulnerability was mentioned, discussed, or observed by the user.
- Confirmed: The vulnerability has been validated from an analyst's perspective.
- Published Proof of Concept: A public proof of concept is available for this vulnerability.
- Exploited: The vulnerability was observed as exploited by the user who reported the sighting.
- Patched: The vulnerability was observed as successfully patched by the user who reported the sighting.
- Not exploited: The vulnerability was not observed as exploited by the user who reported the sighting.
- Not confirmed: The user expressed doubt about the validity of the vulnerability.
- Not patched: The vulnerability was not observed as successfully patched by the user who reported the sighting.
Vulnerability timeline
Sightings and recorded dates, grouped by day · UTC
Loading timeline…
The approach is described in our paper Mapping CVEs to MITRE ATT&CK Techniques: A Curated Gold-Set Classifier and the Limits of LLM-Assisted Label Expansion.
Browse all ATT&CK techniques and the vulnerabilities related to each.
Related by attack behaviour
Vulnerabilities whose description is nearest to this one in the vector space of the CIRCL/vulnerability-attack-technique-biencoder model. This is a similarity search over the bi-encoder space (plain cosine), not a classification, and it has no measured accuracy.