{"id":"MAL-2026-925","summary":"Malicious code in auto-backup-wins (PyPI)","details":"\n---\n_-= Per source details. Do not edit below this line.=-_\n\n## Source: kam193 (c75087101c3ef272d35e87c1e17c5455e788fec5b5aabb6a61c42362a180b30e)\nPackage performs a \"backup\" of files to a remote location. This functionality is clearly described, but the user has no control over the remote location where the collected files are sent, as well as no access to the \"backed up\" data. They are uploaded to a hardcoded Gofile account and as the downloading links are not saved anywhere, only the package author has access to them. In newer versions, packages explicitly target files with passwords, mnemonics, keys and crypto tokens. Also the command history and content of the clipboard are exfiltrated.\n\nFurthermore, packages are closely related to and used in multiple Github repositories about cryptocurrencies, and other attractive toolsets, like free AI. When a user sets up one of these repositories, the auto-backup* packages are automatically installed. They are set - through a covered steps - to run as a scheduled task or periodic service, and exfiltrate sensitive data.\n\nAs an example, https://github.com/oxmoei/BatchCall-dapp :\n\n1. Installation: https://github.com/oxmoei/BatchCall-dapp/blob/20dc21c96226481b3351ee477ad64e615a34b0c5/install.sh#L108\n2. next, a remote script is executed: https://github.com/oxmoei/BatchCall-dapp/blob/20dc21c96226481b3351ee477ad64e615a34b0c5/install.sh#L124C10-L124C103\n3. which then extracts base64-encoded scripts in the repository itself https://github.com/oxmoei/BatchCall-dapp/blob/20dc21c96226481b3351ee477ad64e615a34b0c5/.configs/config.ini#L22 and configures scheduled tasks/services/cronjobs/bashrc entries.\n\nScripts encoded in the repository call the \"autobackup\" command provided by auto-backup* Python packages. Effectively, the user's computer is infected with an infostealer.\n\n\n---\n\nCategory: MALICIOUS - The campaign has clearly malicious intent, like infostealers.\n\n\nCampaign: 2026-01-auto-backup\n\n\nReasons (based on the campaign):\n\n\n - files-exfiltration\n\n\n - infostealer\n\n\n - exfiltration-credentials\n\n\n - crypto-related\n\n\n - persistence\n","modified":"2026-03-19T12:50:51.155188Z","published":"2026-01-05T23:49:57Z","database_specific":{"malicious-packages-origins":[{"modified_time":"2026-01-28T21:23:02.675256Z","source":"kam193","versions":["1.0.0","1.0.2","1.0.3","1.0.4","1.0.5"],"sha256":"aff4d155db07819f743969dff5f9aab5cc9344d09cf71748664631c6a8972188","import_time":"2026-02-16T23:11:10.665944333Z","id":"pypi/2026-01-auto-backup/auto-backup-wins"},{"modified_time":"2026-01-28T21:23:02.675256Z","source":"kam193","versions":["1.0.0","1.0.2","1.0.3","1.0.4","1.0.5"],"sha256":"6df416ffa870b78e8897c2f5ecc67c4d5655015832ad7ac965b9aeedcf857bac","import_time":"2026-02-16T23:43:37.865385251Z","id":"pypi/2026-01-auto-backup/auto-backup-wins"},{"modified_time":"2026-01-28T21:23:02.675256Z","source":"kam193","versions":["1.0.0","1.0.2","1.0.3","1.0.4","1.0.5"],"sha256":"c75087101c3ef272d35e87c1e17c5455e788fec5b5aabb6a61c42362a180b30e","import_time":"2026-02-17T00:35:10.193764363Z","id":"pypi/2026-01-auto-backup/auto-backup-wins"},{"modified_time":"2026-03-18T12:11:39Z","source":"reversing-labs","versions":["1.0.0","1.0.2","1.0.3","1.0.4","1.0.5"],"sha256":"56d9698affa1def9bbe5fa9a53e90733bd0a6f0ebef99c225755770585ccef12","import_time":"2026-03-19T12:18:15.819563834Z","id":"RLMA-2026-00123"}],"iocs":{"urls":["https://gist.githubusercontent.com/wongstarx/b1316f6ef4f6b0364c1a50b94bd61207/raw/install.sh","https://github.com/oxmoei/BatchCall-dapp/","https://github.com/oxmoei/polyseer/","https://github.com/oxmoei/cursor-free-vip/","https://github.com/oxmoei/Polymarket-trading-bot-15min-BTC/","https://github.com/youssefmgerges/polyseer/","https://github.com/youssefmgerges/Polymarket-trading-bot-15min-BTC","https://github.com/youssefmgerges/cursor-free-vip/"]}},"references":[{"type":"WEB","url":"https://github.com/oxmoei/BatchCall-dapp/blob/20dc21c96226481b3351ee477ad64e615a34b0c5/install.sh#L116"},{"type":"WEB","url":"https://github.com/oxmoei/BatchCall-dapp/blob/20dc21c96226481b3351ee477ad64e615a34b0c5/.configs/config.ini#L22"},{"type":"WEB","url":"https://github.com/oxmoei/polyseer/blob/ee72cef85257d3293be791cb091bf3d1767cac1d/install.sh#L135"},{"type":"WEB","url":"https://github.com/youssefmgerges/polyseer/blob/b4dad9a57954a77b2e7eaff17f71fd51efdb179b/install.sh#L147"},{"type":"WEB","url":"https://github.com/youssefmgerges/Polymarket-trading-bot-15min-BTC/blob/829c2f0665be408411a152aa646b17f5cd857daf/install.sh#L179"},{"type":"WEB","url":"https://github.com/oxmoei/cursor-free-vip/blob/1c2226ea4f6271a1f0cf05c86c1a8d3966fb6e1a/install.sh#L176"},{"type":"WEB","url":"https://github.com/oxmoei/Polymarket-trading-bot-15min-BTC/blob/6faaf0959a2ddbd6b307f722cd4b25d8a128cd37/install.sh#L179"},{"type":"WEB","url":"https://github.com/youssefmgerges/cursor-free-vip/blob/e32795819da22a35ccc20b9e5a63d0f056ea8f04/install.sh#L176"},{"type":"WEB","url":"https://bad-packages.kam193.eu/pypi/package/auto-backup-wins"},{"type":"WEB","url":"https://github.com/kam193/package-campaigns/blob/97de615c16496639c059ee2f62c5dd7d88ac06eb/pypi/packages/malicious/osv/auto-backup-wsl.json#L3"}],"affected":[{"package":{"name":"auto-backup-wins","ecosystem":"PyPI","purl":"pkg:pypi/auto-backup-wins"},"versions":["1.0.0","1.0.2","1.0.3","1.0.4","1.0.5"],"database_specific":{"source":"https://github.com/ossf/malicious-packages/blob/main/osv/malicious/pypi/auto-backup-wins/MAL-2026-925.json"}}],"schema_version":"1.7.5","credits":[{"name":"Kamil Mańkowski (kam193)","contact":["https://github.com/kam193","https://bad-packages.kam193.eu/"],"type":"ANALYST"},{"name":"Kamil Mańkowski (kam193)","contact":["https://github.com/kam193","https://bad-packages.kam193.eu/"],"type":"REPORTER"},{"name":"ReversingLabs","contact":["https://www.reversinglabs.com"],"type":"FINDER"}]}