Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
ReconAttacker commits backdoor to default branch
-
DeliveryDeveloper clones affected checkout
-
ExploitRuns npm install
-
Installpostinstall executes src/install.js
-
C2Fetch attacker payload over HTTPS with TLS verify off
-
Executeeval payload with require as user
-
ImpactHarvest credentials, full workstation compromise
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A08:2025 - Software or Data Integrity Failures
ASVS 5.0
V15 - Secure Coding and Architecture Code review, malicious code detection
|
| Exploitation Conditions | Exploitation requires the victim to (1) obtain a checkout of dai-shi/use-reducer-async containing commits da72edb..df07d57 - i.e. a clone, fork, or direct-SHA reference captured during the 2026-05-18 16:29:52 to 2026-05-19 15:26:07 UTC window - and (2) run |
| Impact | This is a genuine, high-priority supply-chain compromise for anyone who touched an affected checkout in the exposure window, but its blast radius is narrower than the 9.3 CVSS 4.0 base score suggests. The supplied CVSS 4.0 vector (AV:N/AC:L/PR:N/UI:N/VC:H/VI:H/VA:H) rates high confidentiality/integrity/availability impact with no user interaction, but that UI:N is questionable: exploitation requires a developer to actively obtain the poisoned commits and run npm install, so realistically user interaction is required (this analysis assesses UI:R / 4.0 UI:A). No EPSS score, no CISA KEV entry, and no public POC were provided; because the malicious version was never published to npm, the poisoning could not propagate through the registry to downstream consumers - it only affected people who cloned/forked the raw GitHub repo or referenced a direct SHA during the ~23-hour window. The force-push removed the commits from the default branch, further limiting new exposure. Net: for the small population that ran install from an affected checkout, treat as confirmed full workstation compromise; for everyone else practical risk is low. The second-stage payload was attacker-hosted and cannot be reconstructed, so exact post-exploitation behavior is unknown and should be assumed worst-case. |
| Exploit ScenarioDerived | A developer clones or pulls use-reducer-async from GitHub (or checks out a specific SHA shared in an issue or fork) during the 2026-05-18/2026-05-19 window and runs npm install to try the library. The postinstall hook silently runs src/install.js, which fetches attacker code over HTTPS with certificate checks disabled and evaluates it with full Node privileges, skipping execution if it detects CI or serverless so only the workstation is hit. Within seconds the attacker's second-stage code runs as the developer, harvesting local credentials, SSH keys, and cloud tokens for lateral movement. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Aug 10, 2026
Malicious code injection into the use-reducer-async GitHub repository (a small React useReducer-with-async-actions helper by dai-shi) turned developer workstations into remote-code-execution targets during npm install. Between 2026-05-18 16:29:52 and 2026-05-19 15:26:07 UTC the default branch carried attacker-planted commits (da72edb through df07d57) that added src/install.js, wired it into the postinstall hook, fetched an attacker-hosted second-stage payload over TLS-verification-disabled HTTPS, and eval'd it with require available. The malicious version was never published to npm and the commits were force-pushed away, but any local clone, fork, or direct-SHA checkout still triggers the payload on install; there is no CISA KEV listing and no public exploit identified at time of analysis for the reconstructable payload itself.
RemediationAI
There is no version-number patch to apply because the malicious code was never published to npm; the upstream fix was removal of the backdoor commits from the default branch via force-push (upstream fix available; treat the current clean default-branch HEAD as remediated), documented in GHSA-2786-p4vj-vx8x (https://github.com/dai-shi/use-reducer-async/security/advisories/GHSA-2786-p4vj-vx8x). Delete and re-clone any local copy of the repository so no clone, fork, or direct-SHA checkout retains commits da72edb..df07d57, and never run npm install against an old checkout. Anyone who ran npm install against an affected checkout on a developer machine on or after 2026-05-18 16:29:52 UTC must treat that machine as fully compromised: rotate every credential the machine could reach (SSH keys, cloud/API tokens, npm tokens, browser- and CLI-stored secrets) and audit account and repository activity since 2026-05-18 16:29:52 UTC. As general hardening against this class of attack, run npm install with --ignore-scripts to suppress postinstall hooks and inspect lifecycle scripts before enabling them (trade-off: packages that legitimately need build steps will not run them and may require manual builds).
Affected VersionsENISA
Affects your stack
Find out whether the stacks and servers you run are on an affected version.
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
The affected component is dai-shi's use-reducer-async (cpe:2.3:a:dai-shi:use-reducer-async), a lightweight React hook library distributed as a Node/npm package. The root cause is CWE-506 (Embedded Malicious Code): rather than a coding flaw, an attacker committed a deliberate backdoor. The abuse vector is the npm/Node lifecycle-script mechanism - the postinstall hook automatically executes src/install.js whenever npm install runs against the checkout. That script pulled a JavaScript blob from an attacker-controlled HTTPS endpoint (endpoint configurable via an environment variable), explicitly disabled TLS certificate verification, and evaluated the response as code with Node's require in scope, granting the payload full access to the Node runtime and the invoking user's filesystem and credentials. The dropper deliberately no-op'd on CI and cloud/serverless environments, fingerprinting to run only on interactive developer workstations where harvested secrets and SSH/cloud tokens are most valuable.
Know when Use Reducer Async gets its next vulnerability
- Watch products and get an email when something new is published
- Check this CVE against your own stack and servers
- Exploit and PoC references, threat intelligence from 22 sources
No credit card · 7-day full trial
Severity by source
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N
Payload is network-fetched and needs no privileges, but a developer must actively run npm install on an affected checkout, so UI:R; arbitrary code as the user yields full C/I/A:H.
Primary rating from Vendor (GitHub_M).
CVSS VectorVendor: GitHub_M
DescriptionCVE.org
use-reducer-async is a React useReducer with async actions. Between 2026-05-18 16:29:52 and 2026-05-19 15:26:07, the default branch contained malicious commits da72edbde5705efcec6c62e0a3dcb73687b78dc8 through df07d5711458d8b46e11dd7afaaa21e88cafabfb that executed remote attacker-controlled code on developer machines during npm install. The commits were removed by force-push, but local clones, forks, and direct-SHA URLs may still contain them, and npm install against an affected checkout will still execute the code today. The package was not published to npm. src/install.js was added and wired into the postinstall script. It fetched a JavaScript payload from an attacker-controlled HTTPS endpoint (configurable via an environment variable), disabled TLS verification, and evaluated the response as code with require available. Execution was deliberately skipped on CI and cloud/serverless environments, targeting developer workstations. The second-stage payload was attacker-hosted and cannot be reconstructed. Assume full compromise of anything reachable from a Node process with the user's permissions. Those who ran npm install against an affected checkout on a developer machine on or after 2026-05-18 16:29:52 should treat the machine as compromised, rotate every credential the machine could reach, audit account activity since 2026-05-18 16:29:52, and clean local clones.
Articles & Coverage 1
Executive ViewAI
The use-reducer-async open-source project on GitHub was compromised with malicious code that executes on developer workstations during npm installation. Any developer with a local clone, fork, or direct-SHA checkout from May 18-19, 2026 faces direct workstation compromise and potential supply chain infection. This attack threatens development environments, build pipelines, and stored developer credentials.
No vendor-released patch identified at time of analysis. Interim mitigations: (1) Discontinue use of use-reducer-async-it is a minor utility library with viable alternatives; (2) For any internal forks, force-push to a commit prior to 2026-05-18T16:29:52Z; (3) Disable npm postinstall hooks organization-wide via npm config set ignore-scripts=true or equivalent CI/CD controls; (4) Audit all git clone and fork operations to confirm commits predate the attack window before running npm install.
Threat Intelligence Overview
How this decision was reached
The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
Information disclosure occurs when an application unintentionally exposes sensitive data that aids attackers in reconnaissance or directly compromises security.
EUVD-2026-55688
NVD
CVE.org
EPSS
Vulnrichment
GitHub
VulDB
Exploit-DB