Väljaanne XZ Utils versioon 5.8.1 sisaldab raamatukogu liblzma ja tööriistu `.xz` formaadis tihendatud andmete haldamiseks. XZ Utils 5.8.1 on esimene oluline versioon pärast backdoor'i avastamist, mis võimaldas juurdepääsu sshd kaudu. Eelmise nädala jooksul loodi Git'is silt 5.8.0, kuid väljaannet ei kuulutatud ametlikult, kuna pärast sildi loomist tuvastati jõudlus- ja ühilduvusprobleeme vanemate GNU make versioonidega.
XZ Utils 5.8.1 uuenduses on kõrvaldatud haavatavus (CVE-2025-31115), mis põhjustas erikujundusega arhiivide avamisel rakenduse kokkuvarisemise. Haavatavuse põhjuseks on juba vabastatud mäluala kasutamine (use after free). Küberkurjategija võib saavutada oma väärtuse kirjutamise aadressile, mis arvutatakse kui 'nullnäitaja + nihke'. Probleemi peetakse mitte tahtlikuks veaks, kuna see muudatus tehti koodis juba enne arendaja Jia Tan'i projektile liitumist, mille tegevus viis backdoor'i tekkimiseni.
Probleem ilmneb alates XZ Utils väljaandest 5.3.3alpha mitme lõimega dekodeerimise korral (ühe lõimega dekodeerija ei ole probleemi all). Lisaks XZ paketi põhivahenditele ilmneb haavatavus ka kolmandate osapoolte programmide puhul, mis kasutavad raamatukogu liblzma funktsiooni lzma_stream_decoder_mt. Haavatavus on kõrvaldatud XZ Utils 5.8.1 väljaandes ja samuti on see seotud stabiilsete harude 5.4 ja 5.6 versioonidega. Uuendustest distsipliinides saab jälgida järgmiste lehtede kaudu: Debian, Ubuntu, RHEL, SUSE/openSUSE, Fedora, Arch, FreeBSD. Dekompressioonifailide dekodeerimise blokeerimise ajutiseks lahenduseks võib kasutada käivitamisel xz valikuid '--decompress --threads=1' või rakendada utility xzdec.
XZ Utils 5.8 haru funktsionaalsetest muudatustest saab märkida:
- LZMA/LZMA2 dekooderisse on lisatud võimalus kasutada SSE2 käske memcpy() asemel 32- ja 64-bitistes x86 süsteemides. Muudatus on vähendanud dekodeerimisaega 5% Glibc koosseisu korral ja kuni 15% musl'i koosseisuga, kui avatakse väga kõrgelt tihendatud faile.
- liblzma-s on 64-bitistes PowerPC ja RISC-V süsteemides paranenud kodeerimiskiirus.
- lzma/bcj.h-s on lisatud madala taseme API BCJ-filterite (Branch/Call/Jump) rakendamine RISC-V, ARM64 ja x86 süsteemide jaoks.
- CLMUL CRC arvutamise kood on x86, x86-64 ja E2K süsteemides ümber kirjutatud.
- LoongArch protsessoritega platvormidel on rakendatud juhiseid CRC32 kontrollsummade arvutamise kiirendamiseks.
- Tööriistas 'xz' on tagatud fsync() funktsiooni väljakutse tulemuseks oleva faili vahemälu tühjendamiseks enne algse faili kustutamist. Sünkroniseerimise keelamiseks enne kustutamist on ellu viidud valik '--no-sync'.
- XZ, xzdec ja lzmainfo utiliitides on ekraanil teabe väljundit muutnud mitte-trükitud sümbolid küsimärgid.
- Linuxi platvormides on protsessi isoleerimiseks rakendatud 5 ja 6 versiooni Landlocki mehhanismist toe.
- Lisatud skript litsentside kontrollimiseks build-aux/license-check.sh.
- Skripte lzcmp, lzdiff, lzless, lzmore, lzgrep, lzegrep ja lzfgrep, mis on rakendatud xz tööriista rakendustena, on kuulutatud vananenuks.
Allikas: opennet.ru
