mal-2026-13682
Vulnerability from ossf_malicious_packages
-= Per source details. Do not edit below this line.=-
Source: amazon-inspector (839c411e8d33badaebd5e59b2d966dc000e631843a49ce9352caafd1b7dd9e12)
Package advertises itself as an HTTP speed-up library but on import of the top-level module unconditionally locates the user's Monero wallet directory (Windows C:\Users\\Documents\Monero, Linux /home//Monero), kills running 'feather' and 'monero' processes to release file locks, archives the directory, and uploads it via api.telegram.org sendDocument to a hardcoded Telegram bot with chat_id -5044692933. A companion sendMessage call reports host reconnaissance status ('Found wallet... sending' / 'Did not find wallets') to the same chat. The Telegram bot token and both Monero directory paths are base64-encoded in source to hide the destination and targets. Package name and description do not mention cryptocurrency wallets, establishing a cover-story mismatch.
Source: kam193 (504aca220be0f03b6572f62dc3fc4a49ace09be61a969e39713c890f28afe62a)
During import, the package exfiltrates cryptocurrency wallet files.
Category: MALICIOUS - The campaign has clearly malicious intent, like infostealers.
Campaign: 2026-08-kotanku
Reasons (based on the campaign):
-
exfiltration-crypto
-
uses-telegram-bot
- 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"
}
],
"indicators": {
"evidence_files": [
{
"path": "kotoraka/__init__.py",
"sha256": "1f9b92b37899ca0f6f2edbffb3fa425a43e8927256f04fb5966be265b08bd8e2",
"tlsh": "a351f24ede6a440451b1938e2dc194b2c705326b6e10952f7ebc4a80afb08a6d672b7f"
}
],
"package_integrity": [
{
"filename": "btcflx-0.1.0-py3-none-any.whl",
"hashes": {
"blake2b_256": "d872b83687bea02dcfabeb0eb6558694c496f53e167a19ac76dcb409f73979de",
"md5": "cd798b2c937013481b0122b24e5bea2c",
"sha256": "19239b12dd86b5fed87d4ac7d57fbdda6219903d6993dac2e12c1f60b805eeb5"
}
},
{
"filename": "btcflx-0.1.0.tar.gz",
"hashes": {
"blake2b_256": "27e9591904484235e87fca8dc3317fd68015dd1457bf24944ef6a94deb5562f6",
"md5": "13a6f6eb32eb4ca155412c902e7edae9",
"sha256": "049fa25b0dd3ebda91e2123769f3b3cb5d0059b58ea448f97d7f3d6f31685077"
}
}
]
}
},
"package": {
"ecosystem": "PyPI",
"name": "btcflx"
},
"versions": [
"0.1.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": "pypi/2026-08-kotanku/btcflx",
"import_time": "2026-08-10T06:38:36.541566959Z",
"modified_time": "2026-08-10T05:23:01.727996Z",
"sha256": "504aca220be0f03b6572f62dc3fc4a49ace09be61a969e39713c890f28afe62a",
"source": "kam193",
"versions": [
"0.1.0"
]
},
{
"id": "IN-MAL-2026-017208",
"import_time": "2026-08-10T11:51:54.951372596Z",
"modified_time": "2026-08-10T11:50:28Z",
"sha256": "839c411e8d33badaebd5e59b2d966dc000e631843a49ce9352caafd1b7dd9e12",
"source": "amazon-inspector",
"versions": [
"0.1.0"
]
}
]
},
"details": "\n---\n_-= Per source details. Do not edit below this line.=-_\n\n## Source: amazon-inspector (839c411e8d33badaebd5e59b2d966dc000e631843a49ce9352caafd1b7dd9e12)\nPackage advertises itself as an HTTP speed-up library but on import of the top-level module unconditionally locates the user\u0027s Monero wallet directory (Windows C:\\Users\\\u003cuser\u003e\\Documents\\Monero, Linux /home/\u003cuser\u003e/Monero), kills running \u0027feather\u0027 and \u0027monero\u0027 processes to release file locks, archives the directory, and uploads it via api.telegram.org sendDocument to a hardcoded Telegram bot with chat_id -5044692933. A companion sendMessage call reports host reconnaissance status (\u0027Found wallet... sending\u0027 / \u0027Did not find wallets\u0027) to the same chat. The Telegram bot token and both Monero directory paths are base64-encoded in source to hide the destination and targets. Package name and description do not mention cryptocurrency wallets, establishing a cover-story mismatch.\n\n## Source: kam193 (504aca220be0f03b6572f62dc3fc4a49ace09be61a969e39713c890f28afe62a)\nDuring import, the package exfiltrates cryptocurrency wallet files.\n\n\n---\n\nCategory: MALICIOUS - The campaign has clearly malicious intent, like infostealers.\n\n\nCampaign: 2026-08-kotanku\n\n\nReasons (based on the campaign):\n\n\n - exfiltration-crypto\n\n\n - uses-telegram-bot\n",
"id": "MAL-2026-13682",
"modified": "2026-08-10T11:53:52.188057080Z",
"published": "2026-08-10T05:23:01Z",
"references": [
{
"type": "WEB",
"url": "https://bad-packages.kam193.eu/pypi/package/btcflx"
},
{
"type": "PACKAGE",
"url": "https://pypi.org/project/btcflx/0.1.0/"
}
],
"schema_version": "1.7.4",
"summary": "Malicious code in btcflx (PyPI)"
}
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.
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.