CRITICAL🇬🇧 English

CVE-2021-39168

OpenZeppelin TimelockController — privilege escalation przez rolę executor

CVSS 10.0v3.1pub. 2021-08-27upd. 2024-11-21

W bibliotece OpenZeppelin Contracts wykryto krytyczną podatność w komponencie TimelockController, umożliwiającą privilege escalation. Podmiot posiadający rolę executor mógł uzyskać wyższe uprawnienia niż powinny mu przysługiwać, co stanowi poważne zagrożenie dla bezpieczeństwa smart kontraktów.

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.

🤖 Analiza AI
Jak działa

Podatność wynika z nieprawidłowej obsługi uprawnień (CWE-269) w komponencie TimelockController biblioteki OpenZeppelin Contracts. Aktor posiadający rolę executor — która standardowo uprawnia jedynie do wykonywania zaplanowanych operacji — mógł wykorzystać lukę do eskalacji swoich uprawnień w ramach systemu kontroli dostępu. Szczegółowy mechanizm techniczny nie został w pełni ujawniony przez producenta w momencie publikacji.

Skutki

Atakujący posiadający rolę executor mógł uzyskać nieautoryzowane, podwyższone uprawnienia w smart kontrakcie, co potencjalnie prowadzi do całkowitego przejęcia kontroli nad kontraktem, naruszenia poufności i integralności danych oraz dostępności zasobu.

Mitygacja

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ół — zaleca się odwołanie wszystkich executorów niebędących jednocześnie proposerami. Przed zastosowaniem mitigacji należy upewnić się, że w systemie pozostaje co najmniej jeden aktywny proposer i executor.

Kogo dotyczy

OpenZeppelin Contracts oraz OpenZeppelin Contracts Upgradeable — wersje wskazane w referencjach producenta (changelog odwołuje się do wersji 4.3.1 jako zawierającej poprawkę)

Uwagi

Producent zastrzegł w momencie publikacji (2021-08-27), że pełne szczegóły techniczne podatności zostaną ujawnione w późniejszym terminie. Podatność dotyczy środowiska smart kontraktów Ethereum/EVM, gdzie błędy uprawnień mogą mieć nieodwracalne skutki finansowe.

CVSS Vector
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H
  • Openzeppelin Contracts

    APP
    Openzeppelin
    3.3.0 – 3.4.2 (bez)4.0.0 – 4.3.1 (bez)
🔵
ZWERYFIKUJ U PRODUCENTA
Brak jednoznacznych danych o patchu. Sprawdź referencje od producenta.
Tagi
LPE
CWE
Referencje

Powiązane podatności

CVE-2021-41264CRITICAL9.8PL ✓ten sam produkt

OpenZeppelin Contracts — atak na niezainicjowane kontrakty UUPSUpgradeable

CVE-2021-39167CRITICAL10.0PL ✓ten sam produkt

OpenZeppelin Contracts — privilege escalation w TimelockController

CVE-2022-35961HIGH7.9ten sam produkt

OpenZeppelin Contracts is a library for secure smart contract development. The functions `ECDSA.recover` and `...

CVE-2022-31198HIGH7.5ten sam produkt

OpenZeppelin Contracts is a library for secure smart contract development. This issue concerns instances of Go...

CVE-2022-31172HIGH7.5ten sam produkt

OpenZeppelin Contracts is a library for smart contract development. Versions 4.1.0 until 4.7.1 are vulnerable ...