Podatność w bibliotece OpenZeppelin Contracts umożliwia podmiotowi posiadającemu rolę executor eskalację uprawnień w komponencie TimelockController. Błąd otrzymał maksymalną ocenę CVSS 10.0, co czyni go krytycznym zagrożeniem dla projektów opartych na smart kontraktach.
▸ Pokaż oryginał (EN)
OpenZepplin is a library for smart contract development. In affected versions a vulnerability in TimelockController allowed an actor with the executor role to escalate privileges. Further details about the vulnerability will be disclosed at a later date. As a workaround revoke the executor role from accounts not strictly under the team's control. We recommend revoking all executors that are not also proposers. When applying this mitigation, ensure there is at least one proposer and executor remaining.
Komponent TimelockController w bibliotece OpenZeppelin Contracts nieprawidłowo zarządza uprawnieniami (CWE-269). Aktor posiadający rolę executor może wykorzystać tę lukę do privilege escalation i uzyskania wyższych uprawnień niż te, które zostały mu przypisane. Szczegółowy mechanizm eksploitacji nie został ujawniony w momencie publikacji podatności.
Atakujący z rolą executor może eskalować swoje uprawnienia w obrębie smart kontraktu, co w kontekście aplikacji blockchain może prowadzić do przejęcia pełnej kontroli nad kontraktem, a w konsekwencji do utraty środków lub manipulacji logiką biznesową.
Należy zaktualizować bibliotekę OpenZeppelin Contracts do wersji 4.3.1 lub nowszej zgodnie z CHANGELOG producenta. Jako natychmiastowe obejście (workaround) należy odebrać rolę executor wszystkim kontom, które nie są ściśle kontrolowane przez zespół projektowy — producent zaleca odwołanie wszystkich executorów, którzy nie są jednocześnie proposerami. Przed zastosowaniem mitygacji należy upewnić się, że pozostaje co najmniej jeden aktywny proposer i executor.
OpenZeppelin Contracts — wersje wskazane w referencjach producenta (changelog wskazuje na wersję 4.3.1 jako zawierającą poprawkę)
Producent zastrzegł, że szczegóły techniczne podatności zostaną ujawnione w późniejszym terminie. Podatność dotyczy środowiska smart kontraktów (blockchain), gdzie nie jest możliwe cofnięcie transakcji — błędna konfiguracja uprawnień może mieć nieodwracalne skutki finansowe.
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:HOpenzeppelin Contracts
APPOpenzeppelin3.3.0 – 3.4.2 (bez)4.0.0 – 4.3.1 (bez)
Powiązane podatności
OpenZeppelin Contracts — atak na niezainicjowane kontrakty UUPSUpgradeable
OpenZeppelin TimelockController — privilege escalation przez rolę executor
OpenZeppelin Contracts is a library for secure smart contract development. The functions `ECDSA.recover` and `...
OpenZeppelin Contracts is a library for secure smart contract development. This issue concerns instances of Go...
OpenZeppelin Contracts is a library for smart contract development. Versions 4.1.0 until 4.7.1 are vulnerable ...