{"id":"MAL-2026-19148","kind":"package","aliases":["MAL-2026-19148"],"related":[],"title":"Malicious code in @rfewqa-fes/mnm-doc-mcp (npm)","description":"---\n_-= Per source details. Do not edit below this line.=-_\n\n## Source: amazon-inspector (0495a09022e152fe8c13b9251497c56e333b58af6e54c412bfd43ff4503be1a7)\npackage.json declares the sole dependency 'node-health-utils' as an off-registry HTTP tarball URL at a bare IP address (http://121.199.24.94/dl/health-utils-1.0.0.tgz) rather than a registry version range. On npm install, whatever bytes that URL returns are fetched and installed, including any lifecycle scripts bundled in the tarball, with no version pin, no integrity hash, and no TLS. The host controlling that IP has arbitrary code execution on every installer at install time, and plain HTTP additionally permits MITM substitution of the tarball. The shipped index.js is an inert MCP stub; the dependency source itself is the delivery channel.","summary":null,"severity":"critical","cvss":null,"epss":null,"exploited":false,"exploited_at":null,"products":[{"name":"@rfewqa-fes/mnm-doc-mcp","fixed":[],"affected":"= 1.0.0","ecosystem":"npm"}],"ecosystems":["npm"],"tags":["malicious","package"],"not_affected_if":[],"how_to_check":null,"fix":null,"status":"open","published_at":"2026-11-12T04:07:58+00:00","first_seen_at":"2026-11-12T04:46:00+00:00","triaged_at":"2026-11-12T04:47:31+00:00","updated_at":"2026-11-12T04:47:31+00:00","category":"package","confidence":null,"triage":null,"analyst_status":null,"analyst_note":null,"search":"'-19148':11A,14A '-2026':10A,13A '/dl/health-utils-1.0.0.tgz':58C '/mnm-doc-mcp':7A,18A '0495a09022e152fe8c13b9251497c56e333b58af6e54c412bfd43ff4503be1a7':34C '121.199.24.94':57C 'addit':113C 'address':56C 'amazon':32C 'amazon-inspector':31C 'arbitrari':101C 'bare':54C 'bundl':81C 'byte':69C 'channel':135C 'code':2A,102C 'control':97C 'declar':36C 'deliveri':134C 'depend':39C,129C 'detail':23C 'edit':26C 'everi':105C 'execut':103C 'fes':6A,17A 'fetch':74C 'hash':91C 'health':42C 'host':96C 'http':49C,112C 'includ':77C 'index.js':122C 'inert':125C 'inspector':33C 'instal':67C,76C,106C,108C 'integr':90C 'ip':55C,99C 'lifecycl':79C 'line':29C 'mal':9A,12A 'malici':1A,19B 'mcp':126C 'mitm':115C 'node':41C 'node-health-util':40C 'npm':8A,66C 'off-registri':46C 'packag':20B 'package.json':35C 'per':21C 'permit':114C 'pin':88C 'plain':111C 'rang':64C 'rather':59C 'registri':48C,62C 'return':72C 'rfewqa':5A,16A 'rfewqa-f':4A 'rfewqa-fes':15A 'script':80C 'ship':121C 'sole':38C 'sourc':22C,30C,130C 'stub':127C 'substitut':116C 'tarbal':50C,84C,119C 'time':109C 'tls':94C 'url':51C,71C 'util':43C 'version':63C,87C 'whatev':68C","nicknames":[],"mitigations":[],"who_affected":null,"tier":"B","verified":{},"analyst_revisit_at":null,"fix_status":null,"audience":null,"plain_action":null,"pkeys":["mnmdocmcp"],"ptokens":["doc","fes","mcp","mnm","rfewqa"],"labels":["critical","malicious","npm","package"],"campaign_type":null,"search_a":"'-19148':11A,14A '-2026':10A,13A '/mnm-doc-mcp':7A,18A 'code':2A 'fes':6A,17A 'mal':9A,12A 'malici':1A 'npm':8A 'rfewqa':5A,16A 'rfewqa-f':4A 'rfewqa-fes':15A","search_b":"'malici':19B 'packag':20B","search_c":"'/dl/health-utils-1.0.0.tgz':58C '0495a09022e152fe8c13b9251497c56e333b58af6e54c412bfd43ff4503be1a7':34C '121.199.24.94':57C 'addit':113C 'address':56C 'amazon':32C 'amazon-inspector':31C 'arbitrari':101C 'bare':54C 'bundl':81C 'byte':69C 'channel':135C 'code':102C 'control':97C 'declar':36C 'deliveri':134C 'depend':39C,129C 'detail':23C 'edit':26C 'everi':105C 'execut':103C 'fetch':74C 'hash':91C 'health':42C 'host':96C 'http':49C,112C 'includ':77C 'index.js':122C 'inert':125C 'inspector':33C 'instal':67C,76C,106C,108C 'integr':90C 'ip':55C,99C 'lifecycl':79C 'line':29C 'mcp':126C 'mitm':115C 'node':41C 'node-health-util':40C 'npm':66C 'off-registri':46C 'package.json':35C 'per':21C 'permit':114C 'pin':88C 'plain':111C 'rang':64C 'rather':59C 'registri':48C,62C 'return':72C 'script':80C 'ship':121C 'sole':38C 'sourc':22C,30C,130C 'stub':127C 'substitut':116C 'tarbal':50C,84C,119C 'time':109C 'tls':94C 'url':51C,71C 'util':43C 'version':63C,87C 'whatev':68C","cause_entry":null,"cause_path":null,"disclosures_checked_at":null,"first_public_at":"2026-11-12T04:07:58+00:00","kev":null,"cvss_vector":null,"cvss_by":null,"poc_count":0,"sources":[{"source":"osv-malicious","external_id":"MAL-2026-19148","url":"https://osv.dev/vulnerability/MAL-2026-19148","severity":"critical","published_at":"2026-11-12T04:07:58+00:00","modified_at":"2026-11-12T04:30:04+00:00","first_seen_at":"2026-11-12T04:46:00+00:00","fetched_at":"2026-11-12T04:46:00+00:00","note":null}],"documents":[],"disclosures":[],"exploit_sources":[],"notice":"Free to read, with fair use of about 60 pages a minute. For higher limits or API access: sales@infrastack.ai"}