CVE-2026-103061
ŚrednieCVSS 5.9Prawdopodobieństwo exploitacji (EPSS)
Niskie ryzykoPercentyl 33 - wyżej niż 33% wszystkich znanych CVE
Streszczenie
Podatność typu path traversal w gleam-lang gleam pozwala złośliwemu wydawcy pakietu na usunięcie katalogu poza katalogiem build projektu podczas budowania projektu przez dewelopera. Gleam odczytuje pole app z metadanych wydania pakietu Hex i używa go jako nazwy katalogu build bez walidacji; gdy zależność nie kompiluje się, Gleam usuwa ten katalog za pomocą remove_dir_all. Podatność dotyczy wersji od 0.32.4 do 1.19.2.
Ocena ryzyka
Deweloper budujący projekt z złośliwą zależnością może nieświadomie usunąć ważne katalogi poza katalogiem build, co prowadzi do utraty danych lub uszkodzenia systemu. Podatność może być wykorzystana przez publikujących złośliwe pakiety w ekosystemie Hex.
Rekomendacja
Należy zaktualizować Gleam do wersji 1.19.2 lub nowszej, która naprawia tę podatność. Zaleca się również weryfikację zależności i unikanie budowania projektów z niezaufanymi pakietami.
Inne podatności w gleam
Zobacz wszystkie- CVE-2026-59247Wysokie
W narzędziu Gleam wykryto podatność polegającą na niewystarczającej weryfikacji autentyczności danych. Podczas rozwiązywania zależności atakujący typu man-in-the-middle może podmienić zawartość pakietów Hex na sfałszowane, ponieważ drugie żądanie do API Hex nie jest podpisane, a jego odpowiedź jest używana zamiast zweryfikowanych metadanych z repozytorium.
- CVE-2026-43965Średnie
Podatność typu path traversal w menedżerze zależności Gleam (wersje od 0.18.0-rc1 do 1.17.0) pozwala na usunięcie dowolnego katalogu poprzez złośliwą zawartość pliku build/packages/packages.toml. Klucze pakietów są używane bez walidacji do konstruowania ścieżek, co umożliwia użycie sekwencji ../ do wyjścia poza zamierzony katalog.
- CVE-2026-42795Średnie
Podatność związana z podążaniem za dowiązaniami symbolicznymi w eksporcie pakietów Hex w Gleam umożliwia osadzenie plików spoza katalogu projektu w generowanym archiwum pakietu. Funkcje zbierające pliki (gleam_files, native_files, private_files) używają follow_links(true) podczas przeszukiwania katalogów publikowalnych, a dodawanie ścieżek do archiwum nie weryfikuje, czy rozpoznany cel pozostaje w obrębie katalogu projektu.
- CVE-2026-32685Średnie
Podatność path traversal w obsłudze niestandardowych stron dokumentacji w Gleam (wersje od 1.16.0 do 1.17.0) pozwala na odczyt i zapis plików poza zamierzonym katalogiem wyjściowym dokumentacji. Pola documentation.pages[].path i .source są używane bez wystarczającej walidacji.
- CVE-2026-32146Wysokie
W kompilatorze Gleam wykryto podatność polegającą na nieprawidłowej walidacji ścieżek podczas obsługi zależności git. Nazwy zależności z plików gleam.toml i manifest.toml są używane do tworzenia ścieżek bez wystarczającego zabezpieczenia, co pozwala na manipulację ścieżką (np. ../) i dostęp do plików poza docelowym katalogiem zależności. Atakujący może wykorzystać złośliwą zależność do usunięcia lub nadpisania dowolnych katalogów, a w niektórych środowiskach doprowadzić do wykonania kodu.
Oryginalny opis (angielski, źródło NVD)
Improper Limitation of a Pathname to a Restricted Directory ('Path Traversal') vulnerability in gleam-lang gleam allows a malicious package publisher to delete a directory outside the project's build directory when a developer builds a project. A Hex package release's metadata carries an app field with the release's OTP application name. Gleam reads this field from the hex.pm release API when it downloads dependencies and uses it as the package's build directory name without validating it (hex_manifest_package in compiler-cli/src/dependencies.rs, ProjectPaths::build_directory_for_package). When a dependency fails to compile, Gleam deletes that directory with remove_dir_all. hex.pm didn't restrict the field to a directory name before 2026-10-12, so a publisher could set it to a value such as ../../../../target or an absolute path. When a project depends on such a release directly or transitively and the release fails to compile, gleam build, gleam check, gleam run, gleam test or gleam export deletes the directory the name resolves to. For a pure Gleam package no publisher code runs. This issue affects gleam: from 0.32.4 before 1.19.2.
Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS

