{"id":"GHSA-h224-x97c-j5g7","kind":"package","aliases":["GHSA-h224-x97c-j5g7","MAL-2026-16390"],"related":[],"title":"Malicious code in oracle-redis (npm)","description":"---\n_-= Per source details. Do not edit below this line.=-_\n\n## Source: amazon-inspector (c800d0651330b1c1cd5d9c5cb2b6966eecefb2d2c28949d0670f485d820db3a6)\nThe package publishes as `oracle-redis` but ships a verbatim copy of the ioredis README, source tree, and repository URL (`git://github.com/luin/ioredis.git`), presenting itself as ioredis under a different name. The `package.json` declares two additional runtime dependencies that are not part of ioredis's real dependency set and are never imported anywhere in the shipped `built/` source: `redis-type-intel` ^1.10.5 and `pino-ulid` ^2.12.2. Because they are ordinary `dependencies` with caret ranges, `npm install oracle-redis` resolves and installs those two packages (and their transitive graph) into the installer's `node_modules`, executing whatever lifecycle scripts they declare, even though nothing in the ioredis code being wrapped ever loads them. The combination of a name-squat lure over a popular library plus unused, caret-pinned extra dependencies is a dependency-delivery shape: the harm, if any, arrives through the transitive install of the extra names rather than through this tarball's own code.\n\n## Source: ghsa-malware (e9f5baf0796d59298424c73abf874e64aaaf8f447d51fbf147c2327b667847fa)\nAny computer that has this package installed or running should be considered fully compromised. All secrets and keys stored on that computer should be rotated immediately from a different computer. The package should be removed, but as full control of the computer may have been given to an outside entity, there is no guarantee that removing the package will remove all malicious software resulting from installing it.","summary":null,"severity":"critical","cvss":null,"epss":null,"exploited":false,"exploited_at":null,"products":[{"name":"oracle-redis","note":"all versions","fixed":[],"affected":"","ecosystem":"npm"}],"ecosystems":["npm"],"tags":["malicious","package"],"not_affected_if":[],"how_to_check":null,"fix":null,"status":"open","published_at":"2026-09-22T18:08:06+00:00","first_seen_at":"2026-11-11T17:28:36+00:00","triaged_at":"2026-11-11T17:28:36+00:00","updated_at":"2026-11-11T17:28:36+00:00","category":"package","confidence":null,"triage":null,"analyst_status":null,"analyst_note":null,"search":"'-16390':15A '-2026':14A '/luin/ioredis.git':63C '1.10.5':103C '2.12.2':108C 'addit':76C 'amazon':37C 'amazon-inspector':36C 'anywher':93C 'arriv':185C 'built':97C 'c800d0651330b1c1cd5d9c5cb2b6966eecefb2d2c28949d0670f485d820db3a6':39C 'caret':115C,171C 'caret-pin':170C 'code':2A,150C,201C 'combin':157C 'compromis':220C 'comput':208C,228C,236C,248C 'consid':218C 'control':245C 'copi':51C 'declar':74C,143C 'deliveri':179C 'depend':78C,87C,113C,174C,178C 'dependency-deliveri':177C 'detail':28C 'differ':70C,235C 'e9f5baf0796d59298424c73abf874e64aaaf8f447d51fbf147c2327b667847fa':206C 'edit':31C 'entiti':256C 'even':144C 'ever':153C 'execut':138C 'extra':173C,192C 'full':244C 'fulli':219C 'ghsa':9A,17A,204C 'ghsa-h224-x97c-j5g7':8A,16A 'ghsa-malwar':203C 'github.com':62C 'github.com/luin/ioredis.git':61C 'given':252C 'graph':131C 'guarante':260C 'h224':10A,18A 'harm':182C 'immedi':232C 'import':92C 'inspector':38C 'instal':118C,124C,134C,189C,213C,272C 'intel':102C 'ioredi':54C,67C,84C,149C 'j5g7':12A,20A 'key':224C 'librari':167C 'lifecycl':140C 'line':34C 'load':154C 'lure':163C 'mal':13A 'malici':1A,24B,268C 'malwar':205C 'may':249C 'modul':137C 'name':71C,161C,193C 'name-squat':160C 'never':91C 'node':136C 'noth':146C 'npm':7A,117C 'oracl':5A,45C,120C 'oracle':22A 'oracle-redi':4A,44C,119C 'oracle-redis':21A 'ordinari':112C 'outsid':255C 'packag':25B,41C,127C,212C,238C,264C 'package.json':73C 'part':82C 'per':26C 'pin':172C 'pino':106C 'pino-ulid':105C 'plus':168C 'popular':166C 'present':64C 'publish':42C 'rang':116C 'rather':194C 'readm':55C 'real':86C 'redi':6A,46C,100C,121C 'redis':23A 'redis-type-intel':99C 'remov':241C,262C,266C 'repositori':59C 'resolv':122C 'result':270C 'rotat':231C 'run':215C 'runtim':77C 'script':141C 'secret':222C 'set':88C 'shape':180C 'ship':48C,96C 'softwar':269C 'sourc':27C,35C,56C,98C,202C 'squat':162C 'store':225C 'tarbal':198C 'though':145C 'transit':130C,188C 'tree':57C 'two':75C,126C 'type':101C 'ulid':107C 'unus':169C 'url':60C 'verbatim':50C 'whatev':139C 'wrap':152C 'x97c':11A,19A","nicknames":[],"mitigations":[],"who_affected":null,"tier":null,"verified":{},"analyst_revisit_at":null,"fix_status":null,"audience":null,"plain_action":null,"pkeys":["oracleredis"],"ptokens":["oracle","redis"],"labels":["critical","malicious","npm","package"],"campaign_type":null,"search_a":"'-16390':15A '-2026':14A 'code':2A 'ghsa':9A,17A 'ghsa-h224-x97c-j5g7':8A,16A 'h224':10A,18A 'j5g7':12A,20A 'mal':13A 'malici':1A 'npm':7A 'oracl':5A 'oracle':22A 'oracle-redi':4A 'oracle-redis':21A 'redi':6A 'redis':23A 'x97c':11A,19A","search_b":"'malici':24B 'packag':25B","search_c":"'/luin/ioredis.git':63C '1.10.5':103C '2.12.2':108C 'addit':76C 'amazon':37C 'amazon-inspector':36C 'anywher':93C 'arriv':185C 'built':97C 'c800d0651330b1c1cd5d9c5cb2b6966eecefb2d2c28949d0670f485d820db3a6':39C 'caret':115C,171C 'caret-pin':170C 'code':150C,201C 'combin':157C 'compromis':220C 'comput':208C,228C,236C,248C 'consid':218C 'control':245C 'copi':51C 'declar':74C,143C 'deliveri':179C 'depend':78C,87C,113C,174C,178C 'dependency-deliveri':177C 'detail':28C 'differ':70C,235C 'e9f5baf0796d59298424c73abf874e64aaaf8f447d51fbf147c2327b667847fa':206C 'edit':31C 'entiti':256C 'even':144C 'ever':153C 'execut':138C 'extra':173C,192C 'full':244C 'fulli':219C 'ghsa':204C 'ghsa-malwar':203C 'github.com':62C 'github.com/luin/ioredis.git':61C 'given':252C 'graph':131C 'guarante':260C 'harm':182C 'immedi':232C 'import':92C 'inspector':38C 'instal':118C,124C,134C,189C,213C,272C 'intel':102C 'ioredi':54C,67C,84C,149C 'key':224C 'librari':167C 'lifecycl':140C 'line':34C 'load':154C 'lure':163C 'malici':268C 'malwar':205C 'may':249C 'modul':137C 'name':71C,161C,193C 'name-squat':160C 'never':91C 'node':136C 'noth':146C 'npm':117C 'oracl':45C,120C 'oracle-redi':44C,119C 'ordinari':112C 'outsid':255C 'packag':41C,127C,212C,238C,264C 'package.json':73C 'part':82C 'per':26C 'pin':172C 'pino':106C 'pino-ulid':105C 'plus':168C 'popular':166C 'present':64C 'publish':42C 'rang':116C 'rather':194C 'readm':55C 'real':86C 'redi':46C,100C,121C 'redis-type-intel':99C 'remov':241C,262C,266C 'repositori':59C 'resolv':122C 'result':270C 'rotat':231C 'run':215C 'runtim':77C 'script':141C 'secret':222C 'set':88C 'shape':180C 'ship':48C,96C 'softwar':269C 'sourc':27C,35C,56C,98C,202C 'squat':162C 'store':225C 'tarbal':198C 'though':145C 'transit':130C,188C 'tree':57C 'two':75C,126C 'type':101C 'ulid':107C 'unus':169C 'url':60C 'verbatim':50C 'whatev':139C 'wrap':152C","cause_entry":null,"cause_path":null,"disclosures_checked_at":null,"first_public_at":"2026-09-22T18:08:06+00:00","kev":null,"cvss_vector":null,"cvss_by":null,"poc_count":0,"sources":[{"source":"osv-malicious","external_id":"MAL-2026-16390","url":"https://osv.dev/vulnerability/MAL-2026-16390","severity":"critical","published_at":"2026-09-22T18:08:06+00:00","modified_at":"2026-11-11T16:31:27+00:00","first_seen_at":"2026-11-11T17:28:36+00:00","fetched_at":"2026-11-11T17:28:36+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"}