{"id":"MAL-2026-18761","kind":"package","aliases":["MAL-2026-18761"],"related":[],"title":"Malicious code in infra-libs (PyPI)","description":"---\n_-= Per source details. Do not edit below this line.=-_\n\n## Source: amazon-inspector (721b376b505d760e78f3ac8417b54789f538a5a8127f59fe7c2660067366ce32)\ninfra-libs 99.99.99 performs install-time and import-time DNS exfiltration of the installer's hostname. setup.py constructs a subdomain label of the form `install-<random-id>-<hostname>` and calls socket.getaddrinfo against `<label>.testa213022.dssldrf.net`, causing the authoritative name server for that zone to receive the installer's platform.node() value during `pip install`. gcp_log_poc/__init__.py repeats the same pattern with an `import-<id>-<hostname>` label on every import of the package, and the module docstring explicitly describes the behavior as a 'DNS callback on import.' The destination domain testa213022.dssldrf.net is unrelated to any declared publisher or purpose, the package has no documented functionality that would justify a hostname-encoded DNS lookup, and the name `infra-libs` is confusable with internal/infrastructure naming conventions commonly targeted by dependency-confusion attacks. No legitimate behavior accompanies the beacon.","summary":null,"severity":"critical","cvss":null,"epss":null,"exploited":false,"exploited_at":null,"products":[{"name":"infra-libs","fixed":[],"affected":"= 99.99.99","ecosystem":"pypi"}],"ecosystems":["pypi"],"tags":["malicious","package"],"not_affected_if":[],"how_to_check":null,"fix":null,"status":"open","published_at":"2026-11-08T09:39:28+00:00","first_seen_at":"2026-11-08T11:17:06+00:00","triaged_at":"2026-11-08T11:17:42+00:00","updated_at":"2026-11-08T11:22:57+00:00","category":"package","confidence":null,"triage":null,"analyst_status":null,"analyst_note":null,"search":"'-18761':10A,13A '-2026':9A,12A '721b376b505d760e78f3ac8417b54789f538a5a8127f59fe7c2660067366ce32':32C '99.99.99':36C 'accompani':164C 'amazon':30C 'amazon-inspector':29C 'attack':160C 'authorit':68C 'beacon':166C 'behavior':108C,163C 'call':62C 'callback':112C 'caus':66C 'code':2A 'common':154C 'confus':149C,159C 'construct':53C 'convent':153C 'declar':123C 'depend':158C 'dependency-confus':157C 'describ':106C 'destin':116C 'detail':21C 'dns':45C,111C,140C 'docstr':104C 'document':131C 'domain':117C 'edit':24C 'encod':139C 'everi':96C 'exfiltr':46C 'explicit':105C 'form':59C 'function':132C 'gcp':84C 'hostnam':51C,138C 'hostname-encod':137C 'import':43C,93C,97C,114C 'import-tim':42C 'infra':5A,15A,34C,146C 'infra-lib':4A,33C,145C 'infra-libs':14A 'inspector':31C 'instal':39C,49C,60C,77C,83C 'install-tim':38C 'internal/infrastructure':151C 'justifi':135C 'label':56C,94C 'legitim':162C 'lib':6A,35C,147C 'libs':16A 'line':27C 'log':85C 'lookup':141C 'mal':8A,11A 'malici':1A,17B 'modul':103C 'name':69C,144C,152C 'packag':18B,100C,128C 'pattern':90C 'per':19C 'perform':37C 'pip':82C 'platform.node':79C 'poc/__init__.py':86C 'publish':124C 'purpos':126C 'pypi':7A 'receiv':75C 'repeat':87C 'server':70C 'setup.py':52C 'socket.getaddrinfo':63C 'sourc':20C,28C 'subdomain':55C 'target':155C 'testa213022.dssldrf.net':65C,118C 'time':40C,44C 'unrel':120C 'valu':80C 'would':134C 'zone':73C","nicknames":[],"mitigations":[],"who_affected":null,"tier":"B","verified":{},"analyst_revisit_at":null,"fix_status":null,"audience":null,"plain_action":null,"pkeys":["infralibs"],"ptokens":["infra","libs"],"labels":["critical","malicious","package","pypi"],"campaign_type":null,"search_a":"'-18761':10A,13A '-2026':9A,12A 'code':2A 'infra':5A,15A 'infra-lib':4A 'infra-libs':14A 'lib':6A 'libs':16A 'mal':8A,11A 'malici':1A 'pypi':7A","search_b":"'malici':17B 'packag':18B","search_c":"'721b376b505d760e78f3ac8417b54789f538a5a8127f59fe7c2660067366ce32':32C '99.99.99':36C 'accompani':164C 'amazon':30C 'amazon-inspector':29C 'attack':160C 'authorit':68C 'beacon':166C 'behavior':108C,163C 'call':62C 'callback':112C 'caus':66C 'common':154C 'confus':149C,159C 'construct':53C 'convent':153C 'declar':123C 'depend':158C 'dependency-confus':157C 'describ':106C 'destin':116C 'detail':21C 'dns':45C,111C,140C 'docstr':104C 'document':131C 'domain':117C 'edit':24C 'encod':139C 'everi':96C 'exfiltr':46C 'explicit':105C 'form':59C 'function':132C 'gcp':84C 'hostnam':51C,138C 'hostname-encod':137C 'import':43C,93C,97C,114C 'import-tim':42C 'infra':34C,146C 'infra-lib':33C,145C 'inspector':31C 'instal':39C,49C,60C,77C,83C 'install-tim':38C 'internal/infrastructure':151C 'justifi':135C 'label':56C,94C 'legitim':162C 'lib':35C,147C 'line':27C 'log':85C 'lookup':141C 'modul':103C 'name':69C,144C,152C 'packag':100C,128C 'pattern':90C 'per':19C 'perform':37C 'pip':82C 'platform.node':79C 'poc/__init__.py':86C 'publish':124C 'purpos':126C 'receiv':75C 'repeat':87C 'server':70C 'setup.py':52C 'socket.getaddrinfo':63C 'sourc':20C,28C 'subdomain':55C 'target':155C 'testa213022.dssldrf.net':65C,118C 'time':40C,44C 'unrel':120C 'valu':80C 'would':134C 'zone':73C","cause_entry":null,"cause_path":null,"first_public_at":"2026-11-08T09:39:28+00:00","kev":null,"cvss_vector":null,"cvss_by":null,"poc_count":0,"sources":[{"source":"osv-malicious","external_id":"MAL-2026-18761","url":"https://osv.dev/vulnerability/MAL-2026-18761","severity":"critical","published_at":"2026-11-08T09:39:28+00:00","modified_at":"2026-11-08T10:15:03+00:00","first_seen_at":"2026-11-08T11:17:06+00:00","fetched_at":"2026-11-08T11:17:06+00:00","note":null}],"documents":[],"exploit_sources":[],"notice":"Free to read, with fair use of about 60 pages a minute. For higher limits or API access: sales@infrastack.ai"}