{"id":"MAL-2026-17195","summary":"Malicious code in claudedashbord (PyPI)","details":"\n---\n_-= Per source details. Do not edit below this line.=-_\n\n## Source: amazon-inspector (6e847280dc7dd5b1a2001ec8e048f961b1be2e341889e02233c4f43e48fe0d56)\nThe package installs a.pth file that CPython auto-executes on every Python interpreter startup. The.pth imports claudedashbord.telemetry and calls telemetry.check(), which performs an HTTPS GET to a hardcoded non-publisher endpoint (https://thisisafalsepositive.st/cdn/v2/panel/manifest.json), verifies the response with an embedded key via security.unsign, and passes the decoded plaintext to exec(). This gives whoever controls that host arbitrary code execution on the installer's machine on any Python invocation after install. The execution path is gated by anti-analysis controls: _is_real() requires Documents/Downloads directories to exist under HOME/USERPROFILE, a 12-hour _GRACE maturity window is persisted in /tmp/claudedashbord-first.ts, and a 6-hour _INTERVAL throttle limits repeat calls — suppressing execution in ephemeral CI/analysis containers and delaying first fire past typical dynamic-analysis windows. The package name resembles 'Claude dashboard' and appears to be a lure. The combination of a.pth auto-executor, fetch-and-exec of remote author-controlled content, hardcoded destination, and workstation-realness/timing gates matches a dropper fingerprint.\n\n## Source: kam193 (5a1141a5d4c10d0c58128d6397750ce3fcd2ab16eea32113be3da61d7a16f5a6)\nDuring installation, obfuscated code is used to fetch code hidden in an image containing a Python application with a native extension module. This module holds an obfuscated infostealer which collects sensitive data and exfiltrates them to a C2 server retrieved from transaction history in the Polygon blockchain.\n\n\n---\n\nCategory: MALICIOUS - The campaign has clearly malicious intent, like infostealers.\n\n\nCampaign: 2026-09-donutautosellsrc\n\n\nReasons (based on the campaign):\n\n\n - infostealer\n\n\n - Downloads and executes a remote executable.\n\n\n - obfuscation\n\n\n - malware\n\n\n - native-extension\n\n\n - steganography\n\n\n - c2-in-blockchain\n\n\n - The package contains code to detect if it is running in a sandbox environment.\n","modified":"2026-09-27T14:30:14.818116198Z","published":"2026-09-27T08:57:31Z","database_specific":{"malicious-packages-origins":[{"sha256":"5a1141a5d4c10d0c58128d6397750ce3fcd2ab16eea32113be3da61d7a16f5a6","source":"kam193","versions":["0.1.0","0.1.1","0.1.2","0.1.3"],"id":"pypi/2026-09-donutautosellsrc/claudedashbord","import_time":"2026-09-27T09:19:04.878024917Z","modified_time":"2026-09-27T08:57:31.827935Z"},{"modified_time":"2026-09-27T13:43:35Z","sha256":"b729127d1da1d90b061129b2e7a4e37c3253d8a3b8768e05c40af1a24334f96e","source":"amazon-inspector","versions":["0.1.3"],"id":"IN-MAL-2026-020565","import_time":"2026-09-27T14:16:27.958670082Z"},{"sha256":"2be2dc094cdafb368ffe3ca210c06fa905fc73d9d3666704300d166303bc072a","source":"amazon-inspector","versions":["0.1.2"],"id":"IN-MAL-2026-020566","import_time":"2026-09-27T14:16:28.069010083Z","modified_time":"2026-09-27T13:43:44Z"},{"sha256":"6e847280dc7dd5b1a2001ec8e048f961b1be2e341889e02233c4f43e48fe0d56","source":"amazon-inspector","versions":["0.1.0"],"id":"IN-MAL-2026-020572","import_time":"2026-09-27T14:16:28.686657586Z","modified_time":"2026-09-27T13:44:42Z"}],"iocs":{"urls":["https://thisisafalsepositive.st/cdn/v2/9f4e7a2c1b8d.png","https://thisisafalsepositive.st/cdn/v2/promotion/manifest.json"],"domains":["thisisafalsepositive.st","sltnnt.ru"]}},"references":[{"type":"EVIDENCE","url":"https://www.virustotal.com/gui/file/d03c42c275f0dbc617428441508c49ae1adcbbc95af4eeb094bca4e4f8943f3e/detection"},{"type":"WEB","url":"https://polygonscan.com/address/0x9c0a507300fd902787bb193d80fca5ce6e1bff9a"},{"type":"WEB","url":"https://bad-packages.kam193.eu/pypi/package/claudedashbord"},{"type":"PACKAGE","url":"https://pypi.org/project/claudedashbord/0.1.3/"},{"type":"PACKAGE","url":"https://pypi.org/project/claudedashbord/0.1.2/"},{"type":"PACKAGE","url":"https://pypi.org/project/claudedashbord/0.1.0/"}],"affected":[{"package":{"name":"claudedashbord","ecosystem":"PyPI","purl":"pkg:pypi/claudedashbord"},"versions":["0.1.0","0.1.1","0.1.2","0.1.3"],"database_specific":{"cwes":[{"cweId":"CWE-506","description":"The product contains code that appears to be malicious in nature.","name":"Embedded Malicious Code"},{"description":"The product contains code that appears to be malicious in nature.","name":"Embedded Malicious Code","cweId":"CWE-506"},{"cweId":"CWE-506","description":"The product contains code that appears to be malicious in nature.","name":"Embedded Malicious Code"}],"indicators":{"evidence_files":[{"path":"claudedashbord/telemetry.py","sha256":"ad0281a3dda3040d328e9e1fdb2f2b33eda18c9edc6a26bce68dc8ae56087f1a","tlsh":"2e5182f5bb8e7023c682d2588861c2e5932abd3b7e5359307dcd63645f8103592632cd"},{"tlsh":"77c18d7621b07332677cc56926262a3ecef25c382458ddcfcacb44e809a2e024c190ee","path":"claudedashbord/_payload.py","sha256":"4fe340696d04d6e55187c4abe683d0c61d2b15f17b45c0713983eb52d558afcc"}],"package_integrity":[{"hashes":{"blake2b_256":"f8b2e76b7727980d1ed06d766d0293f45ae1432fd5380d3d883d7d2f3af902a3","md5":"72df32d0e09323a13aa3cc9251e902e9","sha256":"0df96d2c6ec54d2f9d45b9bad705b99108fc1d5f5de0bf1baf5c3ba9c975fe2f"},"filename":"claudedashbord-0.1.3.tar.gz"}]},"source":"https://github.com/ossf/malicious-packages/blob/main/osv/malicious/pypi/claudedashbord/MAL-2026-17195.json"}}],"schema_version":"1.9.0","credits":[{"name":"Amazon Inspector","contact":["inspector-research@amazon.com"],"type":"FINDER"},{"name":"Kamil Mańkowski (kam193)","contact":["https://github.com/kam193","https://bad-packages.kam193.eu/"],"type":"REPORTER"}]}