Platform
nodejs
Component
@openzeppelin/contracts-upgradeable
Opgelost in
4.0.1
3.3.1
3.3.1
4.3.1
CVE-2021-39168 is een kritieke kwetsbaarheid in de TimelockController van @openzeppelin/contracts-upgradeable. Deze kwetsbaarheid stelt een actor met de executor rol in staat om onmiddellijk controle over de timelock te krijgen 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 vóór 4.3.1. Een fix is opgenomen 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 waarin 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. Als gevolg hiervan kan de aanvaller ongeautoriseerde transacties uitvoeren en toegang krijgen tot de assets die in de contracten worden beheerd. Dit kan leiden tot financieel verlies, reputatieschade en verlies van vertrouwen in de smart contract applicatie. De kwetsbaarheid is vergelijkbaar met scenario's waarin een onbevoegde partij de controle over een kritieke component van een gedecentraliseerde applicatie overneemt.
Deze kwetsbaarheid is openbaar bekend en de details zijn beschikbaar. Er zijn momenteel geen meldingen van actieve exploitatie in de wild, maar de kritieke ernst en de potentiële impact maken het een aantrekkelijk doelwit voor aanvallers. De kwetsbaarheid is opgenomen in het CISA KEV catalogus. Er zijn publieke proof-of-concept demonstraties beschikbaar, wat de exploitatie verder vergemakkelijkt.
Decentralized applications (dApps) and smart contracts relying on @openzeppelin/contracts-upgradeable for timelock functionality are at significant risk. Projects with open executor roles on their timelocks are particularly vulnerable, as anyone can assume the role and exploit the vulnerability. Developers using older versions of the library without proper access controls are also at risk.
• nodejs / smart contracts:
# Check for vulnerable versions in package.json
grep '@openzeppelin/contracts-upgradeable:"[^"]*"' package.json• nodejs / smart contracts:
# Audit dependencies using npm audit
npm audit• nodejs / smart contracts:
# Check for specific timelock contract code patterns
grep -r "TimelockController.sol" . | grep -i "delay() = 0"disclosure
Exploit Status
EPSS
0.44% (63% percentiel)
CVSS-vector
De primaire mitigatie is het upgraden van de @openzeppelin/contracts en @openzeppelin/contracts-upgradeable bibliotheken naar versie 4.3.1 of hoger. Indien een upgrade direct niet mogelijk is, overweeg dan een rollback naar een eerdere, veilige versie (indien beschikbaar). Als een tijdelijke workaround, en alleen indien de executor rol 'open' is ingesteld, kan de rol worden beperkt tot een specifieke, vertrouwde account. Monitor de contracten op verdachte activiteit, zoals onverwachte transacties of wijzigingen in de timelock instellingen. Er zijn geen specifieke Sigma of YARA patronen bekend voor deze kwetsbaarheid, maar het monitoren van de executor rol en timelock instellingen is aanbevolen.
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-39168 is a critical vulnerability in @openzeppelin/contracts-upgradeable allowing an attacker with the executor role to reset the timelock delay to 0, gaining unrestricted access to assets.
You are affected if you are using a version of @openzeppelin/contracts-upgradeable prior to 4.3.1, especially if the executor role is set to 'open.'
Upgrade to version 4.3.1 or later of @openzeppelin/contracts-upgradeable. Restrict access to the executor role if immediate upgrading is not possible.
While no confirmed active exploitation campaigns have been reported, the vulnerability's severity makes it a high-priority target and exploitation is possible.
Refer to the OpenZeppelin security advisory: https://blog.openzeppelin.com/security-advisory-cve-2021-39168/
Upload je dependency-bestand en kom direct te weten of deze en andere CVEs jou raken.