Podatność w Deno 1.32.0 umożliwia odczyt i zapis poza granicami bufora pamięci w wyniku nieprawidłowej obsługi Resizable ArrayBuffers przekazywanych do funkcji asynchronicznych. Luka jest krytyczna ze względu na możliwość przejęcia kontroli nad procesem lub ujawnienia wrażliwych danych.
▸ Pokaż oryginał (EN)
Deno is a runtime for JavaScript and TypeScript that uses V8 and is built in Rust. Resizable ArrayBuffers passed to asynchronous functions that are shrunk during the asynchronous operation could result in an out-of-bound read/write. It is unlikely that this has been exploited in the wild, as the only version affected is Deno 1.32.0. Deno Deploy users are not affected. The problem has been resolved by disabling resizable ArrayBuffers temporarily in Deno 1.32.1. Deno 1.32.2 will re-enable resizable ArrayBuffers with a proper fix. As a workaround, run with `--v8-flags=--no-harmony-rab-gsab` to disable resizable ArrayBuffers.
Gdy Resizable ArrayBuffer zostaje przekazany do funkcji asynchronicznej, a jego rozmiar zostanie zmniejszony w trakcie trwania tej operacji, środowisko wykonawcze Deno może odwoływać się do obszarów pamięci poza aktualnie przydzielonym buforem. Prowadzi to do out-of-bound read (CWE-125) oraz out-of-bound write (CWE-787) — dwóch klas błędów powszechnie wykorzystywanych do eskalacji uprawnień lub wykonania arbitralnego kodu. Błąd dotyczy warstwy integracji serde_v8 z silnikiem V8 i operacji asynchronicznych w runtime Deno.
Atakujący może odczytać dane z pamięci procesu lub nadpisać obszary pamięci poza buforem, co potencjalnie prowadzi do wykonania arbitralnego kodu (RCE) lub ujawnienia poufnych informacji. Zakres wpływu obejmuje poufność, integralność oraz dostępność systemu.
Należy zaktualizować Deno do wersji 1.32.1 (tymczasowe wyłączenie Resizable ArrayBuffers) lub 1.32.2 (docelowa poprawka z właściwym rozwiązaniem). Jako obejście tymczasowe można uruchomić Deno z flagą `--v8-flags=--no-harmony-rab-gsab`, która wyłącza obsługę Resizable ArrayBuffers.
Wyłącznie Deno w wersji 1.32.0. Użytkownicy platformy Deno Deploy nie są dotknięci tą podatnością.
Według opisu producenta eksploatacja podatności w praktyce jest mało prawdopodobna, ponieważ dotyczy wyłącznie jednej wersji — Deno 1.32.0. Podatność tymczasowo naprawiono w 1.32.1, a docelowa poprawka została dostarczona w 1.32.2.
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:HDeno
APPDeno1.32.0Deno Runtime
APPDeno0.102.0Deno Serde V8
APPDeno0.87.0
Powiązane podatności
Deno node:crypto — brak finalizacji szyfru umożliwia wielokrotne szyfrowanie
Deno: ominięcie uprawnień umożliwiające wykonanie dowolnego kodu powłoki
Obejście uprawnień sieciowych i systemu plików w Deno (import dynamiczny)
Deno is a JavaScript, TypeScript, and WebAssembly runtime. From 2.0.0 until 2.7.8, a flaw in Deno's Node.js tl...
Deno is a JavaScript, TypeScript, and WebAssembly runtime. Prior to 2.7.14, Deno's permission system enforces ...