{"id":"MAL-2026-18279","kind":"package","aliases":["MAL-2026-18279"],"related":[],"title":"Malicious code in @fmr-ap153177/apex-kit-icons (npm)","description":"---\n_-= Per source details. Do not edit below this line.=-_\n\n## Source: amazon-inspector (ff7b14a37bdf740ac9f0e4c8978c2c577d39f04d7b897a5d698cbb220ecf3c9a)\npackage.json declares the sole dependency `ltidisafe` as a direct HTTPS tarball URL (https://ltidi.storage.googleapis.com/depenconf/ltidisafe-3.9.1.tgz) instead of a registry version range. On `npm install`, npm fetches that URL and installs whatever bytes it returns, running any lifecycle scripts contained in the fetched tarball, with no version pin and no integrity check. The shipped `index.js` is an empty stub, so dependency resolution from this off-registry source is the entire install-time effect of the package. Control of that storage bucket equates to code execution on any machine that installs this package. The scoped name resembling an internal/kit package (`@fmr-ap153177/apex-kit-icons`) at an implausibly high version (99.9.1) is consistent with a dependency-confusion lure shape.","summary":null,"severity":"critical","cvss":null,"epss":null,"exploited":false,"exploited_at":null,"products":[{"name":"@fmr-ap153177/apex-kit-icons","fixed":[],"affected":"= 99.9.1","ecosystem":"npm"}],"ecosystems":["npm"],"tags":["malicious","package"],"not_affected_if":[],"how_to_check":null,"fix":null,"status":"open","published_at":"2026-10-25T15:06:38+00:00","first_seen_at":"2026-10-26T20:51:52+00:00","triaged_at":"2026-10-26T20:53:36+00:00","updated_at":"2026-10-26T21:05:48+00:00","category":"package","confidence":null,"triage":null,"analyst_status":null,"analyst_note":null,"search":"'-18279':11A,14A '-2026':10A,13A '/apex-kit-icons':7A,18A,138C '/depenconf/ltidisafe-3.9.1.tgz)':49C '99.9.1':144C 'amazon':32C 'amazon-inspector':31C 'ap153177':6A,17A,137C 'bucket':116C 'byte':66C 'check':85C 'code':2A,119C 'confus':151C 'consist':146C 'contain':73C 'control':112C 'declar':36C 'depend':39C,94C,150C 'dependency-confus':149C 'detail':23C 'direct':43C 'edit':26C 'effect':108C 'empti':91C 'entir':104C 'equat':117C 'execut':120C 'fetch':60C,76C 'ff7b14a37bdf740ac9f0e4c8978c2c577d39f04d7b897a5d698cbb220ecf3c9a':34C 'fmr':5A,16A,136C 'fmr-ap153177':4A,15A,135C 'high':142C 'https':44C 'implaus':141C 'index.js':88C 'inspector':33C 'instal':58C,64C,106C,125C 'install-tim':105C 'instead':50C 'integr':84C 'internal/kit':133C 'lifecycl':71C 'line':29C 'ltidi.storage.googleapis.com':48C 'ltidi.storage.googleapis.com/depenconf/ltidisafe-3.9.1.tgz)':47C 'ltidisaf':40C 'lure':152C 'machin':123C 'mal':9A,12A 'malici':1A,19B 'name':130C 'npm':8A,57C,59C 'off-registri':98C 'packag':20B,111C,127C,134C 'package.json':35C 'per':21C 'pin':81C 'rang':55C 'registri':53C,100C 'resembl':131C 'resolut':95C 'return':68C 'run':69C 'scope':129C 'script':72C 'shape':153C 'ship':87C 'sole':38C 'sourc':22C,30C,101C 'storag':115C 'stub':92C 'tarbal':45C,77C 'time':107C 'url':46C,62C 'version':54C,80C,143C 'whatev':65C","nicknames":[],"mitigations":[],"who_affected":null,"tier":"B","verified":{},"analyst_revisit_at":null,"first_public_at":"2026-10-25T15:06:38+00:00","kev":null,"cvss_vector":null,"cvss_by":null,"poc_count":0,"sources":[{"source":"osv-malicious","external_id":"MAL-2026-18279","url":"https://osv.dev/vulnerability/MAL-2026-18279","severity":"critical","published_at":"2026-10-25T15:06:38+00:00","modified_at":"2026-10-25T15:30:05+00:00","first_seen_at":"2026-10-26T20:51:52+00:00","fetched_at":"2026-10-26T20:51:52+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"}