{"id":"MAL-2026-18093","kind":"package","aliases":["MAL-2026-18093"],"related":[],"title":"Malicious code in workcalender (PyPI)","description":"---\n_-= Per source details. Do not edit below this line.=-_\n\n## Source: kam193 (9a336c0fa7a5b3ee5f036d678c8c0f0d549135a08d05549ee92cb11b1a7f78fa)\nThis package contains a stub build-time helper, which in another package of the same uploader was already turned into a backdoor installation. While this package does not yet contain malicious code, it is clear it was uploaded with such intention and likely exploits dependency confusion.\n\n\n---\n\nCategory: MALICIOUS - The campaign has clearly malicious intent, like infostealers.\n\n\nCampaign: 2026-10-test-workalendar-internal\n\n\nReasons (based on the campaign):\n\n\n - backdoor\n\n\n - The package overrides the install command in setup.py to execute malicious code during installation.","summary":null,"severity":"critical","cvss":null,"epss":null,"exploited":false,"exploited_at":null,"products":[{"name":"workcalender","fixed":[],"affected":"= 17.1.0.dev0","ecosystem":"pypi"}],"ecosystems":["pypi"],"tags":["malicious","package"],"not_affected_if":[],"how_to_check":null,"fix":null,"status":"open","published_at":"2026-10-20T13:05:17+00:00","first_seen_at":"2026-10-26T20:52:00+00:00","triaged_at":"2026-10-26T21:02:03+00:00","updated_at":"2026-10-26T21:05:48+00:00","category":"package","confidence":null,"triage":null,"analyst_status":null,"analyst_note":null,"search":"'-10':86C '-18093':8A,11A '-2026':7A,10A '2026':85C '9a336c0fa7a5b3ee5f036d678c8c0f0d549135a08d05549ee92cb11b1a7f78fa':26C 'alreadi':45C 'anoth':38C 'backdoor':49C,96C 'base':92C 'build':33C 'build-tim':32C 'campaign':77C,84C,95C 'categori':74C 'clear':62C,79C 'code':2A,59C,108C 'command':102C 'confus':73C 'contain':29C,57C 'depend':72C 'detail':17C 'edit':20C 'execut':106C 'exploit':71C 'helper':35C 'infosteal':83C 'instal':50C,101C,110C 'intent':68C,81C 'intern':90C 'kam193':25C 'like':70C,82C 'line':23C 'mal':6A,9A 'malici':1A,13B,58C,75C,80C,107C 'overrid':99C 'packag':14B,28C,39C,53C,98C 'per':15C 'pypi':5A 'reason':91C 'setup.py':104C 'sourc':16C,24C 'stub':31C 'test':88C 'test-workalendar-intern':87C 'time':34C 'turn':46C 'upload':43C,65C 'workalendar':89C 'workcalend':4A 'workcalender':12A 'yet':56C","nicknames":[],"mitigations":[],"who_affected":null,"tier":"B","verified":{},"analyst_revisit_at":null,"first_public_at":"2026-10-20T13:05:17+00:00","kev":null,"cvss_vector":null,"cvss_by":null,"poc_count":0,"sources":[{"source":"osv-malicious","external_id":"MAL-2026-18093","url":"https://osv.dev/vulnerability/MAL-2026-18093","severity":"critical","published_at":"2026-10-20T13:05:17+00:00","modified_at":"2026-10-20T13:30:03+00:00","first_seen_at":"2026-10-26T20:52:00+00:00","fetched_at":"2026-10-26T20:52:00+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"}