Platform
nodejs
Component
@openzeppelin/contracts
Opgelost in
4.0.1
3.3.1
3.3.1
4.3.1
CVE-2021-39167 is een kritieke kwetsbaarheid in de TimelockController component van @openzeppelin/contracts. Deze kwetsbaarheid stelt een aanvaller met de executor rol in staat om de timelock onmiddellijk over te nemen door de vertraging terug te zetten naar nul, wat resulteert in ongeautoriseerde toegang tot assets. De kwetsbaarheid treft versies van @openzeppelin/contracts en @openzeppelin/contracts-upgradeable die ouder zijn dan 4.3.1. Een patch is beschikbaar in de genoemde releases.
De impact van deze kwetsbaarheid is significant. Een aanvaller die de executor rol heeft (of deze kan verkrijgen, bijvoorbeeld door een configuratie waarbij de rol 'open' is) kan de timelock overnemen en de vertraging terugzetten naar 0. Dit omzeilt de beveiligingsmechanismen die bedoeld zijn om transacties te vertragen en te controleren. Daarna kan de aanvaller ongeautoriseerde acties uitvoeren, zoals het overboeken van fondsen of het wijzigen van contractparameters, alsof ze de legitieme eigenaar zijn. Het risico is vergelijkbaar met een volledige compromittering van het contract, omdat de aanvaller de controle over de assets en functionaliteit ervan kan overnemen. De ernst wordt verhoogd als de executor rol niet goed is beveiligd of als de configuratie 'open' is, waardoor iedereen de rol kan gebruiken.
Deze kwetsbaarheid werd publiekelijk bekendgemaakt op 30 augustus 2021. Er zijn geen bekende actieve campagnes gerapporteerd, maar het is belangrijk om te beseffen dat de open-source aard van @openzeppelin/contracts betekent dat de kwetsbaarheid kan worden geanalyseerd en mogelijk misbruikt door kwaadwillenden. De kwetsbaarheid is niet opgenomen in de CISA KEV catalogus (KEV). Er zijn publiekelijk beschikbare proof-of-concept (POC) code beschikbaar, wat het risico op misbruik vergroot.
Decentralized applications (dApps) and DeFi protocols that utilize @openzeppelin/contracts for timelock functionality are at significant risk. Projects with improperly configured executor roles (set to 'open') are particularly vulnerable. Smart contract developers and auditors should prioritize patching and reviewing their code.
• nodejs / smart contracts:
npm audit @openzeppelin/contracts• nodejs / smart contracts:
grep -r "TimelockController" . --include="*.sol"• nodejs / smart contracts: Examine contract deployment code for instances where the executor role is set to 'open'. • nodejs / smart contracts: Review contract logs for any transactions that immediately execute timelock functions.
disclosure
patch
Exploit Status
EPSS
0.44% (63% percentiel)
CVSS-vector
De primaire mitigatie is het upgraden van @openzeppelin/contracts en @openzeppelin/contracts-upgradeable naar versie 4.3.1 of hoger. Als een upgrade momenteel niet mogelijk is, overweeg dan om de executor rol te beperken tot een vertrouwde partij en implementeer strikte toegangscontroles. Controleer de configuratie van de executor rol; zorg ervoor dat deze niet ingesteld is op 'open'. Monitor de timelock-activiteit op verdachte patronen, zoals ongebruikelijke vertragingswijzigingen. Hoewel er geen specifieke WAF-regels of Sigma/YARA patronen beschikbaar zijn, kan het monitoren van de contractinteracties op onverwachte acties helpen bij het detecteren van potentiële aanvallen.
Intrek de executor rol van de accounts die niet strikt onder de controle van het team vallen. We raden aan om alle ejecutores in te trekken die niet ook proponenten zijn. Bij het toepassen van deze mitigatie, zorg ervoor dat er minstens één proponent en één executor overblijft.
Kwetsbaarheidsanalyses en kritieke waarschuwingen direct in uw inbox.
CVE-2021-39167 is a critical vulnerability in @openzeppelin/contracts allowing an attacker to bypass timelock delays and gain control of contracts, potentially leading to asset theft.
You are affected if you are using @openzeppelin/contracts versions prior to 4.3.1 and your timelock contracts are vulnerable to unauthorized executor role manipulation.
Upgrade to @openzeppelin/contracts version 4.3.1 or later to patch the vulnerability. Review your contract configurations to ensure the executor role is not set to 'open'.
While no confirmed active exploitation campaigns are publicly known, the vulnerability's severity and ease of exploitation make it a high-risk target.
Refer to the official OpenZeppelin security advisory: https://blog.openzeppelin.com/security-advisory-timelock-vulnerabilities/
Upload je dependency-bestand en kom direct te weten of deze en andere CVEs jou raken.