{"id":"MAL-2026-3615","kind":"package","aliases":["MAL-2026-3615"],"related":[],"title":"Malicious code in ai-spellcheckers (PyPI)","description":"---\n_-= Per source details. Do not edit below this line.=-_\n\n## Source: kam193 (205425d7a8407b8bed958a99660e2ec74e21f9b0e1427659529636347333c5c9)\nPackages contain hidden code that is effectively run during importing or using the library, and downloads second stage code. Then, a process running in background periodically connects to a remote host and waits for next code to execute\n\n\n---\n\nCategory: MALICIOUS - The campaign has clearly malicious intent, like infostealers.\n\n\nCampaign: 2025-11-spellcheckers\n\n\nReasons (based on the campaign):\n\n\n - obfuscation\n\n\n - Downloads and executes a remote malicious script.\n\n\n - The package contains code to execute remote commands (probably limited to a specific set) on the victim's machine.","summary":null,"severity":"critical","cvss":null,"epss":null,"exploited":false,"exploited_at":null,"products":[{"name":"ai-spellcheckers","fixed":[],"affected":"= 1.0.0","ecosystem":"pypi"}],"ecosystems":["pypi"],"tags":["malicious","package"],"not_affected_if":[],"how_to_check":null,"fix":null,"status":"open","published_at":"2026-05-12T18:21:01+00:00","first_seen_at":"2026-10-30T10:28:28+00:00","triaged_at":"2026-10-30T10:28:57+00:00","updated_at":"2026-10-30T10:28:57+00:00","category":"package","confidence":null,"triage":null,"analyst_status":null,"analyst_note":null,"search":"'-11':81C '-2026':9A,12A '-3615':10A,13A '2025':80C '205425d7a8407b8bed958a99660e2ec74e21f9b0e1427659529636347333c5c9':30C 'ai':5A,15A 'ai-spellcheck':4A 'ai-spellcheckers':14A 'background':55C 'base':84C 'campaign':72C,79C,87C 'categori':69C 'clear':74C 'code':2A,34C,49C,66C,99C 'command':103C 'connect':57C 'contain':32C,98C 'detail':21C 'download':46C,89C 'edit':24C 'effect':37C 'execut':68C,91C,101C 'hidden':33C 'host':61C 'import':40C 'infosteal':78C 'intent':76C 'kam193':29C 'librari':44C 'like':77C 'limit':105C 'line':27C 'machin':114C 'mal':8A,11A 'malici':1A,17B,70C,75C,94C 'next':65C 'obfusc':88C 'packag':18B,31C,97C 'per':19C 'period':56C 'probabl':104C 'process':52C 'pypi':7A 'reason':83C 'remot':60C,93C,102C 'run':38C,53C 'script':95C 'second':47C 'set':109C 'sourc':20C,28C 'specif':108C 'spellcheck':6A,82C 'spellcheckers':16A 'stage':48C 'use':42C 'victim':112C 'wait':63C","nicknames":[],"mitigations":[],"who_affected":null,"tier":null,"verified":{},"analyst_revisit_at":null,"fix_status":null,"audience":null,"plain_action":null,"first_public_at":"2026-05-12T18:21:01+00:00","kev":null,"cvss_vector":null,"cvss_by":null,"poc_count":0,"sources":[{"source":"osv-malicious","external_id":"MAL-2026-3615","url":"https://osv.dev/vulnerability/MAL-2026-3615","severity":"critical","published_at":"2026-05-12T18:21:01+00:00","modified_at":"2026-10-30T09:45:03+00:00","first_seen_at":"2026-10-30T10:28:28+00:00","fetched_at":"2026-10-30T10:28:28+00:00","note":null}],"documents":[],"notice":"Free to read at a human pace. An API with keys and an MCP server are in preparation; early access: hello@infrastack.ai"}