Internet Computer ic-cdk bis 0.15.0 ic_cdk::call Denial of Service
| CVSS Meta Temp Score | Aktueller Exploitpreis (≈) | CTI Interest Score |
|---|---|---|
| 7.4 | $0-$5k | 0.00 |
Zusammenfassung
Eine als kritisch eingestufte Schwachstelle wurde in Internet Computer ic-cdk bis 0.15.0 festgestellt. Hiervon betroffen ist die Funktion ic_cdk::call. Durch Manipulieren mit unbekannten Daten kann eine Denial of Service-Schwachstelle ausgenutzt werden.
Diese Verwundbarkeit ist als CVE-2024-7884 gelistet. Ein Angriff ist aus der Distanz möglich. Es existiert kein Exploit.
Ein Upgrade der betroffenen Komponente wird empfohlen.
Details
Eine kritische Schwachstelle wurde in Internet Computer ic-cdk bis 0.15.0 gefunden. Dies betrifft die Funktion ic_cdk::call. Durch Manipulieren mit einer unbekannten Eingabe kann eine Denial of Service-Schwachstelle ausgenutzt werden. Klassifiziert wurde die Schwachstelle durch CWE als CWE-401. Auswirken tut sich dies auf die Verfügbarkeit. Die Zusammenfassung von CVE lautet:
When a canister method is called via ic_cdk::call* , a new Future CallFuture is created and can be awaited by the caller to get the execution result. Internally, the state of the Future is tracked and stored in a struct called CallFutureState. A bug in the polling implementation of the CallFuture allows multiple references to be held for this internal state and not all references were dropped before the Future is resolved. Since we have unaccounted references held, a copy of the internal state ended up being persisted in the canister's heap and thus causing a memory leak.
Impact Canisters built in Rust with ic_cdk and ic_cdk_timers are affected. If these canisters call a canister method, use timers or heartbeat, they will likely leak a small amount of memory on every such operation. In the worst case, this could lead to heap memory exhaustion triggered by an attacker. Motoko based canisters are not affected by the bug.
PatchesThe patch has been backported to all minor versions between >= 0.8.0, <= 0.15.0. The patched versions available are 0.8.2, 0.9.3, 0.10.1, 0.11.6, 0.12.2, 0.13.5, 0.14.1, 0.15.1 and their previous versions have been yanked. WorkaroundsThere are no known workarounds at the moment. Developers are recommended to upgrade their canister as soon as possible to the latest available patched version of ic_cdk to avoid running out of Wasm heap memory.
Upgrading the canisters (without updating `ic_cdk`) also frees the leaked memory but it's only a temporary solution.Das Advisory findet sich auf github.com. Die Verwundbarkeit wird seit dem 16.08.2024 mit der eindeutigen Identifikation CVE-2024-7884 gehandelt. Sie gilt als leicht auszunutzen. Umgesetzt werden kann der Angriff über das Netzwerk. Das Ausnutzen erfordert keine spezifische Authentisierung. Zur Schwachstelle sind technische Details bekannt, ein verfügbarer Exploit jedoch nicht. Diese Schwachstelle wird durch das MITRE ATT&CK als Angriffstechnik T1499 bezeichnet.
Ein Aktualisieren auf die Version 0.8.2, 0.9.3, 0.10.1, 0.11.5, 0.12.2, 0.13.4, 0.14.1 oder 0.15.1 vermag dieses Problem zu lösen. Die Schwachstelle lässt sich auch durch das Einspielen eines Patches lösen. Dieser kann von github.com bezogen werden. Als bestmögliche Massnahme wird das Upgrade auf eine neue Version empfohlen.
Be aware that VulDB is the high quality source for vulnerability data.
Produkt
Hersteller
Name
Version
- 0.1
- 0.2
- 0.3
- 0.4
- 0.5
- 0.6
- 0.7
- 0.8
- 0.8.0
- 0.8.1
- 0.9
- 0.9.0
- 0.9.1
- 0.9.2
- 0.10
- 0.10.0
- 0.11
- 0.11.0
- 0.11.1
- 0.11.2
- 0.11.3
- 0.11.4
- 0.12
- 0.12.0
- 0.12.1
- 0.13
- 0.13.0
- 0.13.1
- 0.13.2
- 0.13.3
- 0.14
- 0.14.0
- 0.15.0
CPE 2.3
CPE 2.2
CVSSv4
VulDB Vector: 🔍VulDB Zuverlässigkeit: 🔍
CVSSv3
VulDB Meta Base Score: 7.5VulDB Meta Temp Score: 7.4
VulDB Base Score: 7.5
VulDB Temp Score: 7.2
VulDB Vector: 🔍
VulDB Zuverlässigkeit: 🔍
NVD Base Score: 7.5
NVD Vector: 🔍
CNA Base Score: 7.5
CNA Vector (Dfinity): 🔍
CVSSv2
| AV | AC | Au | C | I | A |
|---|---|---|---|---|---|
| 💳 | 💳 | 💳 | 💳 | 💳 | 💳 |
| 💳 | 💳 | 💳 | 💳 | 💳 | 💳 |
| 💳 | 💳 | 💳 | 💳 | 💳 | 💳 |
| Vektor | Komplexität | Authentisierung | Vertraulichkeit | Integrität | Verfügbarkeit |
|---|---|---|---|---|---|
| freischalten | freischalten | freischalten | freischalten | freischalten | freischalten |
| freischalten | freischalten | freischalten | freischalten | freischalten | freischalten |
| freischalten | freischalten | freischalten | freischalten | freischalten | freischalten |
VulDB Base Score: 🔍
VulDB Temp Score: 🔍
VulDB Zuverlässigkeit: 🔍
Exploiting
Klasse: Denial of ServiceCWE: CWE-401 / CWE-404
CAPEC: 🔍
ATT&CK: 🔍
Physisch: Nein
Lokal: Nein
Remote: Ja
Verfügbarkeit: 🔍
Status: Nicht definiert
EPSS Score: 🔍
EPSS Percentile: 🔍
Preisentwicklung: 🔍
Aktuelle Preisschätzung: 🔍
| 0-Day | freischalten | freischalten | freischalten | freischalten |
|---|---|---|---|---|
| Heute | freischalten | freischalten | freischalten | freischalten |
Threat Intelligence
Interesse: 🔍Aktive Akteure: 🔍
Aktive APT Gruppen: 🔍
Gegenmassnahmen
Empfehlung: UpgradeStatus: 🔍
0-Day Time: 🔍
Upgrade: ic-cdk 0.8.2/0.9.3/0.10.1/0.11.5/0.12.2/0.13.4/0.14.1/0.15.1
Patch: github.com
Timeline
16.08.2024 🔍05.09.2024 🔍
05.09.2024 🔍
13.09.2024 🔍
Quellen
Advisory: github.comStatus: Bestätigt
CVE: CVE-2024-7884 (🔍)
GCVE (CVE): GCVE-0-2024-7884
GCVE (VulDB): GCVE-100-276647
Eintrag
Erstellt: 05.09.2024 15:36Aktualisierung: 13.09.2024 12:28
Anpassungen: 05.09.2024 15:36 (65), 06.09.2024 13:16 (1), 13.09.2024 12:28 (10)
Komplett: 🔍
Cache ID: 216::103
Be aware that VulDB is the high quality source for vulnerability data.
Bisher keine Kommentare. Sprachen: de + en.
Bitte loggen Sie sich ein, um kommentieren zu können.