{"id":"MAL-2026-16232","revision":"3f473c3c19f74fb580d159c8d991ba99","records":[{"revision":"3f473c3c19f74fb580d159c8d991ba99","observedAt":"2026-10-24T13:17:17.793+00:00","statement":{"source":"osv","id":"MAL-2026-16232","aliases":[],"title":"Malicious code in strapi-plugin-listcc-meeb (npm)","description":"\n---\n_-= Per source details. Do not edit below this line.=-_\n\n## Source: amazon-inspector (63bef6a3804e282781fb0eaea1ffd045ef3b236aefd0668de11549aba1ada8b0)\nstrapi-plugin-listcc-meeb@3.6.8 declares scripts.postinstall = 'node postinstall.js' (and points main at the same file), so `npm install` auto-executes postinstall.js. That script spawns a Python one-liner via child_process that opens a socket to the hardcoded IP 14.225.210.85:80 and attaches a PTY-backed /bin/sh to the remote peer, yielding an interactive reverse shell on the installer's host. Execution is gated only by a hostname check ('ubuntu-fc-uvm'). Package metadata masquerades as a Strapi plugin ('Strapi plugin for enhanced functionality') while the repository/homepage is a placeholder github.com/user/... URL and the shipped code contains no plugin functionality — only the reverse-shell payload.\n","state":0,"publishedAt":"2026-09-16T13:57:20+00:00","modifiedAt":"2026-09-16T14:30:06.8103896+00:00","affected":[{"ecosystem":"npm","name":"strapi-plugin-listcc-meeb","ranges":[],"versions":["3.6.8"],"rawVersionEvidence":null}],"metrics":[],"references":["https://www.npmjs.com/package/strapi-plugin-listcc-meeb/v/3.6.8"],"sourceUrl":"https://osv.dev/vulnerability/MAL-2026-16232","license":"OSV · upstream source license applies","key":"osv:MAL-2026-16232","identifiers":["MAL-2026-16232"]},"retained":false,"historicalAffected":[]}],"coverage":[]}