CVE-2026-96618
>_ Opis
Tłumaczenie automatyczne – może zawierać nieścisłości.
Luka w zabezpieczeniach programu hexpm hex związana z niewłaściwą obsługą wysoce skompresowanych danych (wzmacnianie danych) umożliwia niezaufanemu pakietowi lustrzanemu wyczerpanie pamięci lub miejsca na dysku komputera z uruchomionym programem mix deps.get, mix deps.update, mix hex.package fetch lub mix hex.docs fetch.
Hex traktuje serwer lustrzany skonfigurowany z HEX_MIRROR_URL, HEX_MIRROR lub lustro_url jako niezaufany: nie wysyła do niego poświadczeń i sprawdza podpisy rejestru oraz sumy kontrolne pakietów, których lustro nie może sfałszować. Kilka ścieżek odpowiedzi zużywa pamięć lub dysk proporcjonalnie do tego, co wysyła kopia lustrzana przed uruchomieniem którejkolwiek z tych kontroli.
Hex.HTTP.request/5 wczytuje całą treść odpowiedzi do pamięci i dekompresuje ją za pomocą :zlib.gunzip/1 za każdym razem, gdy kodowanie treści odpowiedzi zawiera gzip, bez ograniczeń co do rozmiaru skompresowanego lub zdekompresowanego. Hex nie pyta o skompresowane odpowiedzi, więc serwer decyduje, czy ten krok zostanie uruchomiony. Dotyczy rejestru, pakietu, dokumentów i odpowiedzi API.
Paczki tar z pakietami nie mają limitu rozmiaru pobierania. Hex 2.5.1 przechowuje całą paczkę tar w pamięci i zapisuje ją w pamięci podręcznej, a gałąź programistyczna przesyła ją strumieniowo do pliku tymczasowego; limit tarballa 16 MiB jest sprawdzany tylko wtedy, gdy plik jest rozpakowany. Następnie archiwum tar jest rozpakowywane do deps/<app> w wersji 2.5.1 i do katalogu pomostowego w gałęzi rozwojowej, zanim jego sumy kontrolne zostaną porównane z rejestrem.
mix hex.docs fetch i miks hex.docs offline, gdy brakuje dokumentów, zapisz archiwum dokumentów na dysku i rozpakuj je za pomocą :mix_hex_erl_tar.extract/2 bez limitów 16 MiB skompresowanych i 128 MiB zdekompresowanych, które obowiązują w przypadku mix_hex_tarball:unpack_docs/3. Podpisany rejestr nie obejmuje plików tar z dokumentami, więc nic ich nie sprawdza.
Odpowiedzi rejestru są również dekompresowane przed sprawdzeniem ich podpisu, w kodzie hex_core dostarczanym przez dostawców Hex; ta część jest śledzona w https://github.com/hexpm/hex_core/security/advisories/GHSA-7c4r-cgf9-9jmq.
Ten problem dotyczy heksów: od 0.11.2 do 2.5.2.
>_ Słabości (CWE)
>_ Referencje
- https://cna.erlef.org/cves/CVE-2026-96618.html
- https://github.com/hexpm/hex/commit/08956100a8283ba500a123e5539ac64d5d7e91d8
- https://github.com/hexpm/hex/commit/51ea632424fb6ea8765148f96dc25dfeb526b1f8
- https://github.com/hexpm/hex/commit/bb5189eade682c5fc3f98d9725973a7beb4e1deb
- https://github.com/hexpm/hex/security/advisories/GHSA-gf42-pg2f-63jp
- https://osv.dev/vulnerability/EEF-CVE-2026-96618
Dane podatności pochodzą z oficjalnych źródeł (CVE® List / NVD). Opisy po polsku są tłumaczone automatycznie i mogą zawierać nieścisłości – na stronie rekordu można wyświetlić wersję angielską.
This product uses the NVD API but is not endorsed or certified by the NVD.
Copyright © 1999–2026, The MITRE Corporation. CVE is a registered trademark and the CVE logo is a registered trademark of The MITRE Corporation.
CVE Usage: MITRE hereby grants you a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare derivative works of, publicly display, publicly perform, sublicense, and distribute Common Vulnerabilities and Exposures (CVE®). Any copy you make for such purposes is authorized provided that you reproduce MITRE's copyright designation and this license in any such copy. ALL DOCUMENTS AND THE INFORMATION CONTAINED THEREIN PROVIDED BY MITRE ARE PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND.
NVD Terms of Use / CVE® Terms of Use / nvd.nist.gov / cve.org