{"id":"MAL-2025-3473","summary":"Malicious code in textgradient (PyPI)","details":"\n---\n_-= Per source details. Do not edit below this line.=-_\n\n## Source: kam193 (7fe681cdeb2892cd4e567b4ac8aeb6e0eb22885cce024238e010af54711831ec)\nHighly obfuscated code that during import downloads a remote script with another obfuscated code. The repository with remote script also contains clearly infostealer code\n\n\n---\n\nCategory: MALICIOUS - The campaign has clearly malicious intent, like infostealers.\n\n\nCampaign: 2025-03-textgradient\n\n\nReasons (based on the campaign):\n\n\n - obfuscation\n\n\n - Downloads and executes a remote malicious script.\n","modified":"2026-04-16T15:58:39.029832Z","published":"2025-03-28T17:41:31Z","database_specific":{"malicious-packages-origins":[{"sha256":"fd6b3e172a66666d0d57c37dd7ee403d3d21fce16375a04d81bd642a5ec11f79","id":"RLMA-2025-02540","modified_time":"2025-04-23T16:06:45Z","import_time":"2025-04-25T09:36:48.714669532Z","source":"reversing-labs","versions":["0.1"]},{"sha256":"379db80ee13908937315f272639af6fee599bd03179d246cb41eb981df3d2c90","id":"pypi/2025-03-textgradient/textgradient","modified_time":"2025-03-28T17:41:31Z","import_time":"2025-12-02T22:30:55.640693148Z","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"source":"kam193"},{"sha256":"7fe681cdeb2892cd4e567b4ac8aeb6e0eb22885cce024238e010af54711831ec","id":"pypi/2025-03-textgradient/textgradient","modified_time":"2025-03-28T17:41:31Z","import_time":"2025-12-02T23:07:18.681849009Z","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"source":"kam193"},{"sha256":"8e18e1bb91c50f9e93bff6c9acaa68618e32a7c687d6987a3ef69a8e32843690","id":"pypi/2025-03-textgradient/textgradient","modified_time":"2025-03-28T17:41:31Z","import_time":"2025-12-10T21:38:57.868526359Z","source":"kam193","versions":["0.1","0.2","0.3"]},{"sha256":"43ba0211625dbb892bebc696f492de54ee1135e3e875254b897b713e5ee8f165","id":"RLUA-2026-00815","modified_time":"2026-03-18T12:19:25Z","import_time":"2026-03-19T12:20:33.139511753Z","source":"reversing-labs"},{"sha256":"30ddb6687b64b39bd8a8a87ed82e16de8a5b38f40795f763e707405b4d05acec","id":"RLUA-2026-02082","modified_time":"2026-04-16T10:27:52Z","import_time":"2026-04-16T15:39:36.237547945Z","source":"reversing-labs","versions":["0.3","0.2"]}],"iocs":{"urls":["https://raw.githubusercontent.com/imsoprime/w/refs/heads/main/server.py","https://raw.githubusercontent.com/imsoprime/w/refs/heads/main/server2.py","https://github.com/imsoprime/w/","https://t.me/sliverbulletpro2"]}},"references":[{"type":"WEB","url":"https://bad-packages.kam193.eu/pypi/package/textgradient"}],"affected":[{"package":{"name":"textgradient","ecosystem":"PyPI","purl":"pkg:pypi/textgradient"},"versions":["0.1","0.2","0.3"],"database_specific":{"source":"https://github.com/ossf/malicious-packages/blob/main/osv/malicious/pypi/textgradient/MAL-2025-3473.json"}}],"schema_version":"1.7.5","credits":[{"name":"Kamil Mańkowski (kam193)","contact":["https://github.com/kam193","https://bad-packages.kam193.eu/"]},{"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"}]}