{"id":"MAL-2026-18377","kind":"package","aliases":["MAL-2026-18377"],"related":[],"title":"Malicious code in spectral-core (npm)","description":"---\n_-= Per source details. Do not edit below this line.=-_\n\n## Source: amazon-inspector (451c36f03e81be0ff6c85334587d7ff401de1e5134e179557ec4bc454cd7ba76)\nThe tarball ships only package.json and binding.gyp (plus a markdown file), with gypfile: true set in package.json so npm invokes node-gyp rebuild on install. binding.gyp declares a 'none'-type target with no native source files; its sole purpose is an inline action that runs `node -e` with an embedded script. At install time that script reads /proc/1/environ and /proc/self/environ (container/pod entrypoint environment variables, which routinely contain CI/CD secrets and cloud credentials), collects DNS/socket/ARP/route reconnaissance output, queries the AWS EC2 instance metadata service at 169.254.169.254 for user-data and meta-data, and POSTs the collected data to the hardcoded collector https://webhook.site/d6092bdc-05c0-45da-a280-c343ea6d6156. The package exposes no library functionality — main: index.js is declared but index.js is not shipped — so the binding.gyp exists solely as a vehicle for install-time code execution and credential exfiltration. The name resembles the legitimate @stoplight/spectral-core project but the shipped contents are unrelated to it.","summary":null,"severity":"critical","cvss":null,"epss":null,"exploited":false,"exploited_at":null,"products":[{"name":"spectral-core","fixed":[],"affected":"= 3.0.6; = 3.0.4; = 3.0.10; = 3.0.5; = 3.0.3; = 3.0.11; = 3.0.7; = 3.0.12; = 3.0.9; = 3.0.2","ecosystem":"npm"}],"ecosystems":["npm"],"tags":["malicious","package"],"not_affected_if":[],"how_to_check":null,"fix":null,"status":"open","published_at":"2026-10-29T14:57:43+00:00","first_seen_at":"2026-10-29T16:25:02+00:00","triaged_at":"2026-10-29T16:33:22+00:00","updated_at":"2026-10-29T16:33:22+00:00","category":"package","confidence":null,"triage":null,"analyst_status":null,"analyst_note":null,"search":"'-18377':10A,13A '-2026':9A,12A '/d6092bdc-05c0-45da-a280-c343ea6d6156.':138C '/proc/1/environ':91C '/proc/self/environ':93C '169.254.169.254':118C '451c36f03e81be0ff6c85334587d7ff401de1e5134e179557ec4bc454cd7ba76':32C 'action':76C 'amazon':30C 'amazon-inspector':29C 'aw':112C 'binding.gyp':39C,59C,156C 'ci/cd':101C 'cloud':104C 'code':2A,166C 'collect':106C,130C 'collector':135C 'contain':100C 'container/pod':94C 'content':181C 'core':6A,16A 'credenti':105C,169C 'data':122C,126C,131C 'declar':60C,148C 'detail':21C 'dns/socket/arp/route':107C 'e':80C 'ec2':113C 'edit':24C 'embed':83C 'entrypoint':95C 'environ':96C 'execut':167C 'exfiltr':170C 'exist':157C 'expos':141C 'file':43C,69C 'function':144C 'gyp':55C 'gypfil':45C 'hardcod':134C 'index.js':146C,150C 'inlin':75C 'inspector':31C 'instal':58C,86C,164C 'install-tim':163C 'instanc':114C 'invok':52C 'legitim':175C 'librari':143C 'line':27C 'main':145C 'mal':8A,11A 'malici':1A,17B 'markdown':42C 'meta':125C 'meta-data':124C 'metadata':115C 'name':172C 'nativ':67C 'node':54C,79C 'node-gyp':53C 'none':62C 'npm':7A,51C 'output':109C 'packag':18B,140C 'package.json':37C,49C 'per':19C 'plus':40C 'post':128C 'project':177C 'purpos':72C 'queri':110C 'read':90C 'rebuild':56C 'reconnaiss':108C 'resembl':173C 'routin':99C 'run':78C 'script':84C,89C 'secret':102C 'servic':116C 'set':47C 'ship':35C,153C,180C 'sole':71C,158C 'sourc':20C,28C,68C 'spectral':5A,15A 'spectral-cor':4A 'spectral-core':14A 'stoplight/spectral-core':176C 'tarbal':34C 'target':64C 'time':87C,165C 'true':46C 'type':63C 'unrel':183C 'user':121C 'user-data':120C 'variabl':97C 'vehicl':161C 'webhook.site':137C 'webhook.site/d6092bdc-05c0-45da-a280-c343ea6d6156.':136C","nicknames":[],"mitigations":[],"who_affected":null,"tier":"B","verified":{},"analyst_revisit_at":null,"fix_status":null,"audience":null,"plain_action":null,"first_public_at":"2026-10-29T14:57:43+00:00","kev":null,"cvss_vector":null,"cvss_by":null,"poc_count":0,"sources":[{"source":"osv-malicious","external_id":"MAL-2026-18377","url":"https://osv.dev/vulnerability/MAL-2026-18377","severity":"critical","published_at":"2026-10-29T14:57:43+00:00","modified_at":"2026-10-29T15:30:06+00:00","first_seen_at":"2026-10-29T16:25:02+00:00","fetched_at":"2026-10-29T16:25:02+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"}