Bol vydaný balík XZ Utils 5.8.1, ktorý zahŕňa knižnicu liblzma a utilitky na prácu so stlačenými údajmi vo formáte „.xz“. XZ Utils 5.8.1 sa stal prvým významným vydaním po incidente s odhalením zadného vchodu, ktorý umožňoval prístup cez sshd. Minulý týždeň bol v Gite vytvorený tag 5.8.0, ale vydanie nebolo oficiálne oznámené kvôli zistenej problémom s výkonom a kompatibilitou so staršími verziami GNU make po uverejnení tagu.
V aktualizácii XZ Utils 5.8.1 bola odstránená zraniteľnosť (CVE-2025-31115), ktorá vedie k pádu aplikácie pri pokuse o rozbalenie špeciálne zostavených archívov. Zraniteľnosť je spôsobená prístupom k už uvoľnenej oblasti pamäte (use after free). Útočník môže dosiahnuť zápis svojej hodnoty na adresu vypočítanú ako „nulový ukazovateľ + posun“. Problém je považovaný za nechcenú chybu, pretože zmena, ktorá ho spôsobila, bola zavedená do kódu dávno pred príchodom vývojára Jia Tana do projektu, ktorého činnosť viedla k zavlečeniu zadného vchodu.
Problém sa prejavuje od vydania XZ Utils 5.3.3alpha pri dekódovaní v multithread režime (problém sa netýka jednoslúbkovej dekodér). Okrem štandardných utilít z balíka xz sa zraniteľnosť prejavuje aj v externých programoch, ktoré používajú funkciu lzma_stream_decoder_mt z knižnice liblzma. Zraniteľnosť bola odstránená vo vydaní XZ Utils 5.8.1 a prenesená do stabilných vetiev 5.4 a 5.6. Aktualizácie v distribúciách môžete sledovať na nasledujúcich stránkach: Debian, Ubuntu, RHEL, SUSE/openSUSE, Fedora, Arch, FreeBSD. Ako obranne opatrenie môžete vypnúť dekódovanie súborov v multithread režime použitím volieb pri spúšťaní xz „—decompress —threads=1“ alebo použitím utilitky xzdec.
Medzi funkčné zmeny v vetve XZ Utils 5.8 možno spomenúť:
- Do dekodéra LZMA/LZMA2 bola pridaná možnosť využitia inštrukcií SSE2 namiesto funkcie memcpy() na 32- a 64-bitových systémoch x86. Zmena umožnila skrátiť čas dekódovania o 5% pri zostavení s Glibc a o 15% pri zostavení s musl pri rozbaľovaní súborov s veľmi vysokým stupňom kompresie.
- V liblzma bola zvýšená rýchlosť kódovania na 64-bitových systémoch PowerPC a RISC-V.
- Do lzma/bcj.h bol pridaný nízkoúrovňový API BCJ filtrov (Branch/Call/Jump) pre systémy RISC-V, ARM64 a x86.
- Kód výpočtu CLMUL CRC pre systémy x86, x86-64 a E2K bol prepracovaný.
- Na platformách s procesormi LoongArch sú využívané inštrukcie na zrýchlenie výpočtu kontrolných súčtov CRC32.
- V utilite „xz“ je zabezpečené volanie funkcie fsync() na vyprázdnenie súborových cache pre výsledný súbor pred odstránením zdrojového súboru. Pre vypnutie synchronizácie pred odstránením je implementovaná voľba „—no-sync“.
- V utilitách xz, xzdec a lzmainfo pri vypisovaní informácií na obrazovku je zabezpečené nahradenie neviditeľných znakov znakom otázky.
- V xz a xzdec na platforme Linux je pre izoláciu procesu implementovaná podpora 5 a 6 verzií mechanizmu Landlock.
- Pridaný skript na kontrolu licencií build-aux/license-check.sh.
- Skripty lzcmp, lzdiff, lzless, lzmore, lzgrep, lzegrep a lzfgrep, realizované ako nadstavby nad utilitou xz, sú vyhlásené za zastarané.
Zdroj: opennet.ru
