Malicious code in react-check-error (npm)
--- _-= Per source details. Do not edit below this line.=-_ ## Source: amazon-inspector (d89ef9716015743217a9492f4b4469459da701a1b6198851f1527033f1e5c9ae) On require(), index.js invokes _initMsgCache() at module top level. The function derives an AES-256-CBC key, IV, and ciphertext from a hardcoded 161-byte array (index.js:62) processed through an LCG-derived sbox, decrypts a URL, performs an https.get to that URL, parses the JSON response, and executes the response's `cookie` field via `new Function('require', mod)(require)` (index.js:155). This is a fully attacker-controlled remote code execution payload that runs on every consumer's machine the moment the package is imported, with full `require` access in the Node process. The package additionally impersonates the legitimate chai utility `check-error` — it copies chai's author metadata, description, the chaijs/check-error repository URL, and the original API surface (compatibleInstance, compatibleConstructor, compatibleMessage, getMessage, getConstructorName), with the dropper grafted onto the genuine sources. Unused runtime dependencies (axios, form-data, socket.io-client) are declared as further cover. The URL obfuscation (byte array + sbox XOR + per-index subtraction + bit rotation + AES-256-CBC) exists solely to hide the C2 endpoint from scanners — legitimate packages do not encrypt their network destinations. ## Source: ghsa-malware (6a94fb4ad979c29d1d9bccd7289e92e821fb11a15d3e072d1f62162d321cdae1) Any 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.
AI Analysis
Technical Summary
The react-check-error npm package versions 2.1.6 and 2.1.7 include a malicious backdoor that triggers on require(). It uses a hardcoded obfuscated 161-byte array processed through a custom sbox and AES-256-CBC decryption to reveal a command and control (C2) URL. The package then performs an HTTPS GET request to this URL, parses the JSON response, and executes the 'cookie' field as JavaScript code with full require access in the Node.js process. The package impersonates the legitimate chai check-error utility by copying author metadata, description, repository URL, and API methods, while adding unused dependencies to evade detection. This design enables attacker-controlled remote code execution on any machine importing the package.
Potential Impact
Any system with react-check-error versions 2.1.6 or 2.1.7 installed or running is fully compromised. The attacker gains remote code execution with full require access in the Node.js environment, allowing arbitrary code execution. This compromises all secrets and keys stored on the affected machine. Removing the package does not guarantee removal of all malicious artifacts or backdoors, as the attacker may have established persistent control.
Mitigation Recommendations
No official patch or fix is currently available for this malicious package. Immediate removal of react-check-error versions 2.1.6 and 2.1.7 is strongly recommended. All secrets and keys stored on affected machines should be rotated from a trusted, uncompromised device. Consider rebuilding affected systems to ensure complete removal of any persistent malicious code. Monitor for any suspicious activity related to this package and avoid using untrusted or impersonating npm packages.
Malicious code in react-check-error (npm)
Description
--- _-= Per source details. Do not edit below this line.=-_ ## Source: amazon-inspector (d89ef9716015743217a9492f4b4469459da701a1b6198851f1527033f1e5c9ae) On require(), index.js invokes _initMsgCache() at module top level. The function derives an AES-256-CBC key, IV, and ciphertext from a hardcoded 161-byte array (index.js:62) processed through an LCG-derived sbox, decrypts a URL, performs an https.get to that URL, parses the JSON response, and executes the response's `cookie` field via `new Function('require', mod)(require)` (index.js:155). This is a fully attacker-controlled remote code execution payload that runs on every consumer's machine the moment the package is imported, with full `require` access in the Node process. The package additionally impersonates the legitimate chai utility `check-error` — it copies chai's author metadata, description, the chaijs/check-error repository URL, and the original API surface (compatibleInstance, compatibleConstructor, compatibleMessage, getMessage, getConstructorName), with the dropper grafted onto the genuine sources. Unused runtime dependencies (axios, form-data, socket.io-client) are declared as further cover. The URL obfuscation (byte array + sbox XOR + per-index subtraction + bit rotation + AES-256-CBC) exists solely to hide the C2 endpoint from scanners — legitimate packages do not encrypt their network destinations. ## Source: ghsa-malware (6a94fb4ad979c29d1d9bccd7289e92e821fb11a15d3e072d1f62162d321cdae1) Any 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.
Affected software
Run on your own infrastructure? Check whether these packages are installed with threat-finder — our free open-source scanner.
AI-Powered Analysis
Machine-generated threat intelligence
Technical Analysis
The react-check-error npm package versions 2.1.6 and 2.1.7 include a malicious backdoor that triggers on require(). It uses a hardcoded obfuscated 161-byte array processed through a custom sbox and AES-256-CBC decryption to reveal a command and control (C2) URL. The package then performs an HTTPS GET request to this URL, parses the JSON response, and executes the 'cookie' field as JavaScript code with full require access in the Node.js process. The package impersonates the legitimate chai check-error utility by copying author metadata, description, repository URL, and API methods, while adding unused dependencies to evade detection. This design enables attacker-controlled remote code execution on any machine importing the package.
Potential Impact
Any system with react-check-error versions 2.1.6 or 2.1.7 installed or running is fully compromised. The attacker gains remote code execution with full require access in the Node.js environment, allowing arbitrary code execution. This compromises all secrets and keys stored on the affected machine. Removing the package does not guarantee removal of all malicious artifacts or backdoors, as the attacker may have established persistent control.
Mitigation Recommendations
No official patch or fix is currently available for this malicious package. Immediate removal of react-check-error versions 2.1.6 and 2.1.7 is strongly recommended. All secrets and keys stored on affected machines should be rotated from a trusted, uncompromised device. Consider rebuilding affected systems to ensure complete removal of any persistent malicious code. Monitor for any suspicious activity related to this package and avoid using untrusted or impersonating npm packages.
Technical Details
- Gcve Source
- db.gcve.eu
- Osv Id
- MAL-2026-6341
- Osv Schema Version
- 1.7.4
- Aliases
- ["GHSA-fphr-9c8m-c35g"]
- Ecosystems
- ["npm"]
- Database Specific Severity
- null
- Cvss Version
- null
Threat ID: 6a4c341527e9c797195f7edc
Added to database: 07/06/2026, 23:02:45 UTC
Last enriched: 07/06/2026, 23:18:06 UTC
Last updated: 07/29/2026, 20:18:53 UTC
Views: 7
Community Reviews
0 reviewsCrowdsource mitigation strategies, share intel context, and vote on the most helpful responses. Sign in to add your voice and help keep defenders ahead.
Want to contribute mitigation steps or threat intel context? Sign in or create an account to join the community discussion.
Actions
Updates to AI analysis require Pro Console access. Upgrade inside Console → Billing.
External Links
Need more coverage?
Upgrade to Pro Console for AI refresh and higher limits.
For incident response and remediation, OffSeq services can help resolve threats faster.
Latest Threats
Check if your credentials are on the dark web
Instant breach scanning across billions of leaked records. Free tier available.