Code injection in OpenZeppelin contracts-wizard
Key facts
- Attack vector
- Network
- Privileges required
- None
- User interaction
- Required
- Attack complexity
- Low
- Impact type
- Code execution
- Confidentiality · integrity · availability
- High · High · High
- Fix status
- Fixed
Attack profile from CVSS 3.1 · CNA. Fix status from CNA and GitHub. Impact type from CWE-94.
Summary
OpenZeppelin Contracts Wizard is a web application to interactively build a contract out of components from OpenZeppelin Contracts. Versions prior to 0.10.9 generate a Hardhat test file (`test/test.ts`) by interpolating user-supplied `opts.name` (ERC20/ERC721) and `opts.uri` (ERC1155) directly into TypeScript string literals at `zip-hardhat.ts:48` and `:50` without any JavaScript string escaping. No authentication is required: an attacker crafts a URL such as `https[:]//wizard[.]openzeppelin[.]com/#/erc20?name=");require("child_process").execSync("...");("` and shares it with a developer. When the victim downloads the resulting zip archive and runs `npx hardhat test`, the injected Node.js code executes with the developer's local OS privileges. Version 0.10.9 fixes the issue.
Why it matters now
SSVC decision points
CISA ADP · SSVC 2.0.3
- Exploitation
- None
- Automatable
- No
- Technical impact
- Total
The decision (Track, Attend, Act) also depends on your mission and well-being impact; see CISA's SSVC guide.
Affected products
| Vendor | Product | Affected versions | Fixed in | Status | Source |
|---|---|---|---|---|---|
| OpenZeppelin | contracts-wizard | before 0.10.9 | 0.10.9 | Patch available | CNA |
| — | @openzeppelin/wizard (npm) | before 0.10.9 | 0.10.9 | Patch available | GHSA-4x76-22x2-rx8v |
- contracts-wizard VendorOpenZeppelin Affected before 0.10.9 Fixed in 0.10.9 Patch available CNA
- @openzeppelin/wizard (npm) Vendor— Affected before 0.10.9 Fixed in 0.10.9 Patch available GHSA-4x76-22x2-rx8v
Remediation
- Fix · CNA contracts-wizard (OpenZeppelin) Fixed in 0.10.9
- Fix · GHSA-4x76-22x2-rx8v @openzeppelin/wizard (npm) Fixed in 0.10.9 Advisory →
Timeline
- 2026-10-02 Threatist record created from CVE-2026-48054
- 2026-10-03 Alias added: GHSA-4x76-22x2-rx8v
- 2026-10-25 EPSS moved to the 50th–90th percentile
References
Other 4
- https://github.com/OpenZeppelin/contracts-wizard/security/advisories/GHSA-4x76-22x2-rx8v
- https://github.com/OpenZeppelin/contracts-wizard/commit/ec12c44f8d9e0491eba31037f95b36e98ec58b5f
- https://github.com/OpenZeppelin/contracts-wizard/releases/tag/%40openzeppelin%2Fwizard%400.10.9
- https://github.com/OpenZeppelin/contracts-wizard
More OpenZeppelin vulnerabilities
- TI-2022-13196 OpenZeppelin Contracts for Cairo account cannot process transactions on Goerli CVSS 3.1MEDIUM 6.5
- TI-2021-16554 TimelockController vulnerability in OpenZeppelin Contracts CVSS 3.1CRITICAL 10.0
- TI-2021-16553 TimelockController vulnerability in OpenZeppelin Contracts CVSS 3.1CRITICAL 10.0
- TI-2021-18096 UUPSUpgradeable vulnerability in OpenZeppelin Contracts CVSS 3.1CRITICAL 9.8
- TI-2022-13238 GovernorVotesQuorumFraction updates to quorum may affect past defeated proposals in @openzeppelin/contracts CVSS 3.1HIGH 7.5
- TI-2022-13212 OpenZeppelin Contracts's ERC165Checker may revert instead of returning false CVSS 3.1HIGH 7.5
Sources
- CVE-2026-48054 · CVE Program
- CVE-2026-48054 · NVD
- FIRST EPSS
- GHSA-4x76-22x2-rx8v · GitHub Advisory Database · CC BY 4.0
This product uses the NVD API but is not endorsed or certified by the NVD. Sources and licences