{"id":"MAL-2026-17639","kind":"package","aliases":["MAL-2026-17639"],"related":[],"title":"Malicious code in lore-cs (PyPI)","description":"---\n_-= Per source details. Do not edit below this line.=-_\n\n## Source: amazon-inspector (f84e496d81c3e514ec784db2d5996a9015fa9f01f50cb75a99011eb348b2aa07)\nlore-cs 1.0.0 executes an outbound HTTP POST both from setup.py (at install time) and from lore_cs/__init__.py (at import time) to the hardcoded bare-IP endpoint http://185.158.107.175:8787/_ah/dc over plaintext HTTP. The payload includes the installer's hostname, install path, current working directory, and package name. The import-time beacon fires on every import, so the behavior also triggers in environments where pip build isolation would otherwise contain setup.py side effects. The destination is a hardcoded author-controlled bare IP not configured by the installer, and the package self-labels as a dependency-confusion canary while performing unauthenticated host-identifier collection against anyone who installs or imports it.\n\n## Source: kam193 (ae8b741b7c90400c3a5f4ba13533b1a6a75134f768934834b591c8df23eecb83)\nDuring installation or import, the package exfiltrates basic information in a dependency confusion attempt. The user identifies themselves as a HackerOne user abusing the PyPI for the purpose of a bug bounty program.\n\n\n---\n\nCategory: PROBABLY_PENTEST - Packages looking like typical pentest packages, but also anything that looks like testing, exploring pre-prepared kits, research & co, with clearly low-harm possibilities.\n\n\nCampaign: GENERIC-hackerone-bugbounty\n\n\nReasons (based on the campaign):\n\n\n - The package contains code to exfiltrate basic data from the system, like IP or username. It has a limited risk.\n\n\n - dependency-confusion","summary":null,"severity":"critical","cvss":null,"epss":null,"exploited":false,"exploited_at":null,"products":[{"name":"lore-cs","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-10-06T21:13:57+00:00","first_seen_at":"2026-10-26T20:51:59+00:00","triaged_at":"2026-10-26T21:08:21+00:00","updated_at":"2026-10-26T21:08:21+00:00","category":"package","confidence":null,"triage":null,"analyst_status":null,"analyst_note":null,"search":"'-17639':10A,13A '-2026':9A,12A '1.0.0':36C '185.158.107.175':62C '8787/_ah/dc':63C 'abus':174C 'ae8b741b7c90400c3a5f4ba13533b1a6a75134f768934834b591c8df23eecb83':151C 'also':94C,195C 'amazon':30C 'amazon-inspector':29C 'anyon':143C 'anyth':196C 'attempt':165C 'author':114C 'author-control':113C 'bare':59C,116C 'bare-ip':58C 'base':220C 'basic':159C,230C 'beacon':86C 'behavior':93C 'bounti':183C 'bug':182C 'bugbounti':218C 'build':100C 'campaign':214C,223C 'canari':134C 'categori':185C 'clear':209C 'co':207C 'code':2A,227C 'collect':141C 'configur':119C 'confus':133C,164C,246C 'contain':104C,226C 'control':115C 'cs':6A,16A,35C 'cs/__init__.py':51C 'current':76C 'data':231C 'depend':132C,163C,245C 'dependency-confus':131C,244C 'destin':109C 'detail':21C 'directori':78C 'edit':24C 'effect':107C 'endpoint':61C 'environ':97C 'everi':89C 'execut':37C 'exfiltr':158C,229C 'explor':201C 'f84e496d81c3e514ec784db2d5996a9015fa9f01f50cb75a99011eb348b2aa07':32C 'fire':87C 'generic':216C 'generic-hackerone-bugbounti':215C 'hackeron':172C,217C 'hardcod':57C,112C 'harm':212C 'host':139C 'host-identifi':138C 'hostnam':73C 'http':40C,66C 'identifi':140C,168C 'import':53C,84C,90C,147C,155C 'import-tim':83C 'includ':69C 'inform':160C 'inspector':31C 'instal':46C,71C,74C,122C,145C,153C 'ip':60C,117C,236C 'isol':101C 'kam193':150C 'kit':205C 'label':128C 'like':190C,199C,235C 'limit':242C 'line':27C 'look':189C,198C 'lore':5A,15A,34C,50C 'lore-c':4A,33C 'lore-cs':14A 'low':211C 'low-harm':210C 'mal':8A,11A 'malici':1A,17B 'name':81C 'otherwis':103C 'outbound':39C 'packag':18B,80C,125C,157C,188C,193C,225C 'path':75C 'payload':68C 'pentest':187C,192C 'per':19C 'perform':136C 'pip':99C 'plaintext':65C 'possibl':213C 'post':41C 'pre':203C 'pre-prepar':202C 'prepar':204C 'probabl':186C 'program':184C 'purpos':179C 'pypi':7A,176C 'reason':219C 'research':206C 'risk':243C 'self':127C 'self-label':126C 'setup.py':44C,105C 'side':106C 'sourc':20C,28C,149C 'system':234C 'test':200C 'time':47C,54C,85C 'trigger':95C 'typic':191C 'unauthent':137C 'user':167C,173C 'usernam':238C 'work':77C 'would':102C","nicknames":[],"mitigations":[],"who_affected":null,"tier":null,"verified":{},"analyst_revisit_at":null,"first_public_at":"2026-10-06T21:13:57+00:00","kev":null,"cvss_vector":null,"cvss_by":null,"poc_count":0,"sources":[{"source":"osv-malicious","external_id":"MAL-2026-17639","url":"https://osv.dev/vulnerability/MAL-2026-17639","severity":"critical","published_at":"2026-10-06T21:13:57+00:00","modified_at":"2026-10-08T04:00:04+00:00","first_seen_at":"2026-10-26T20:51:59+00:00","fetched_at":"2026-10-26T20:51:59+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"}