Aktualizace XZ Utils 5.8.1 s opravou zranitelnosti

Byla vydána verze XZ Utils 5.8.1, která zahrnuje knihovnu liblzma a nástroje pro práci se stlačenými daty ve formátu „.xz“. XZ Utils 5.8.1 se stal prvním významným vydáním po incidentu s odhalením zadního vchodu, který zajišťoval přístup přes sshd. Minulý týden byl v Gitu vytvořen tag 5.8.0, ale vydání nebylo oficiálně oznámeno kvůli problémům s výkonem a kompatibilitou se staršími verzemi GNU make, které se objevily po vydání tagu.

Ve verzi XZ Utils 5.8.1 byla odstraněna zranitelnost (CVE-2025-31115), která vedla k havárii při pokusu o rozbalení speciálně upravených archivů. Zranitelnost byla způsobena přístupem k již uvolněné oblasti paměti (use after free). Útočník může dosáhnout zápisu své hodnoty na adrese vypočítané jako „nulový ukazatel + posun“. Problém je považován za neúmyslnou chybu, protože změnu, která jej způsobila, provedl do kódu dávno předtím, než se do projektu zapojil vývojář Jia Tan, jehož činnost vedla k zavedení zadního vchodu.

Problém se projevuje od verze XZ Utils 5.3.3alpha při dekódování v multithreaded režimu (jedno-vláknový dekodér není touto chybou ovlivněn). Kromě běžných nástrojů z balíku xz se zranitelnost projevuje také v externích programech, které používají funkci lzma_stream_decoder_mt z knihovny liblzma. Zranitelnost byla odstraněna ve verzi XZ Utils 5.8.1 a také byla přenesena do stabilních větví 5.4 a 5.6. Aktualizace v distribucích lze sledovat na následujících stránkách: Debian, Ubuntu, RHEL, SUSE/openSUSE, Fedora, Arch, FreeBSD. Jako obranou je možné zakázat dekódování souborů v multithreaded režimu tím, že při spuštění xz použijete volby „—decompress —threads=1“ nebo využijete nástroj xzdec.

Mezi funkčními změnami ve větvi XZ Utils 5.8 lze poznamenat:

  • Do dekodéru LZMA/LZMA2 byla přidána možnost používat instrukce SSE2 místo funkce memcpy() na 32- a 64-bitových systémech x86. Tato změna umožnila zkrátit čas dekódování až o 5 % při sestavení s Glibc a až o 15 % při sestavení s musl při rozbalování souborů s velmi vysokou úrovní komprese.
  • Ve liblzma byla zvýšena rychlost kódování na 64-bitových systémech PowerPC a RISC-V.
  • Do lzma/bcj.h byl přidán nízkoúrovňový API BCJ filtrů (Branch/Call/Jump) pro systémy RISC-V, ARM64 a x86.
  • Kód výpočtu CLMUL CRC pro systémy x86, x86-64 a E2K byl přepsán.
  • Na platformách s procesory LoongArch jsou využívány instrukce k urychlení výpočtu kontrolních součtů CRC32.
  • V utilitě «xz» je zajištěno volání funkce fsync() pro vyprázdnění souborových mezipamětí pro výsledný soubor před odstraněním původního souboru. Pro deaktivaci synchronizace před odstraněním byla implementována možnost „—no-sync“.
  • V utilitách xz, xzdec a lzmainfo při výstupu informací na obrazovku došlo k nahrazení neviditelných znaků otazníkem.
  • V xz a xzdec na platformě Linux byla pro izolaci procesu implementována podpora 5. a 6. verze mechanismu Landlock.
  • Byl přidán skript pro kontrolu licencí build-aux/license-check.sh.
  • Byly vyhlášeny za zastaralé skripty lzcmp, lzdiff, lzless, lzmore, lzgrep, lzegrep a lzfgrep, implementované jako nadstavby nad utilitou xz.

Zdroj: opennet.ru

Koupit spolehlivý hosting pro webové stránky s ochranou proti DDoS, VPS VDS servery 🔥 Koupit spolehlivý hosting pro webové stránky s ochranou proti DDoS, VPS VDS servery | ProHoster