Severity by source
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:H/VA:N/SC:N/SI:N/SA:N/E:U/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X
AC:H reflects the hard prerequisite that the wrapper must be filled to ~18.4T tokens; C and A are N as only deposited fund integrity is impacted.
Primary rating from Vendor (github).
CVSS VectorVendor: github
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:H/VA:N/SC:N/SI:N/SA:N/E:U/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X
Lifecycle Timeline
3Blast Radius
ecosystem impact- 3 npm packages depend on @openzeppelin/confidential-contracts (3 direct, 0 indirect)
Ecosystem-wide dependent count for version 0.3.1.
DescriptionCVE.org
OpenZeppelin Confidential Contracts is an experimental library for developing applications on the Zama fhEVM. Prior to 0.3.1, the ERC7984 contract tracked confidential total supply with an euint64 value, and an overflowing internal _mint operation could fail silently. The wrap and onTransferReceived functions in contracts/token/ERC7984/extensions/ERC7984ERC20Wrapper.sol did not handle that failure, so a user could transfer the underlying token without receiving the corresponding confidential wrapped token. With the default rate(), the wrapper fills after approximately 18.4 trillion tokens, and subsequent wrapping requests can cause loss of funds. This issue is fixed in version 0.3.1.
AnalysisAI
Silent integer overflow in ERC7984ERC20Wrapper's confidential total supply counter allows fund loss when an fhEVM token wrapper is exhausted. In versions prior to 0.3.1, the wrap() and onTransferReceived() functions did not check whether the internal _mint call succeeded, meaning that once the euint64 supply counter reached its maximum (~18.4 trillion tokens), subsequent wrapping operations transferred the caller's underlying ERC-20 tokens into the contract while crediting no confidential wrapped tokens in return. …
Unlock full vulnerability intelligence
- Risk assessment & exploitation conditions
- Attack chain visualization
- Remediation with exact patch versions
- Threat intelligence from 22 sources
- Personal watchlist & email alerts
Free forever · No credit card required
Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata
Vulnerability AssessmentAI
| Exploitation | Exploitation requires the targeted ERC7984ERC20Wrapper deployment to have already accumulated a total underlying token balance equivalent to approximately 18.4 trillion wrapped token units (type(uint64).max), which is the overflow threshold for the euint64 confidential supply counter. … Additional conditions and limiting factors are described in the full assessment. |
| Risk Assessment | The CVSS 4.0 score of 6.6 (VI:H, all other impacts N) correctly characterises this as a fund-integrity issue with no confidentiality or availability dimension. … Full risk analysis with EPSS, KEV, and SSVC signal comparison available after sign-in. |
| Exploit Scenario | A user interacts with an ERC7984ERC20Wrapper that has been used to wrap a high-supply token - such as a token with a circulating supply in the trillions - until the wrapper's confidential total supply counter approaches type(uint64).max (~18.4 trillion). Any subsequent call to wrap() or onTransferReceived() (e.g. … |
| Remediation | Upgrade to @openzeppelin/confidential-contracts version 0.3.1, which introduces the _checkConfidentialTotalSupply() guard that reverts with ERC7984TotalSupplyOverflow before any mint is attempted when totalSupply() (derived from the plaintext underlying balance) would exceed maxTotalSupply() (type(uint64).max). … Detailed patch versions, workarounds, and compensating controls in full report. |
Threat intelligence, references, and detailed analysis are available after sign-in.
Same weakness CWE-190 – Integer Overflow or Wraparound
View allSame technique Integer Overflow
View allShare
External POC / Exploit Code
Leaving vuln.today
EUVD-2026-58188