Objavljeno je izdanje paketa XZ Utils 5.8.1, koje uključuje biblioteku liblzma i alate za rad sa komprimiranim podacima u formatu '.xz'. XZ Utils 5.8.1 je postao prvo značajno izdanje nakon incidenta s otkrivanjem backdoora, koji omogućava pristup putem sshd-a. Prošlog tjedna u Gitu je stvoren oznaka 5.8.0, ali izdanje nije proglašeno službenim zbog problema s performansama i kompatibilnostima sa starijim verzijama GNU make-a, koji su otkriveni nakon objave oznake.
U ažuriranju XZ Utils 5.8.1 otklonjena je ranjivost (CVE-2025-31115) koja uzrokuje rušenje prilikom pokušaja raspakiravanja posebno oblikovanih arhiva. Ranjivost je izazvana pristupom već oslobođenom području memorije (use after free). Napadač može postići zapis svoje vrijednosti na adresu koju izračunava kao 'nulti pokazivač + pomak'. Problem se smatra nenamjernom greškom, jer je promjena koja je uzrokovala to unesena u kod dugo prije nego što je programer Jia Tan došao u projekt, čija je aktivnost dovela do implementacije backdoora.
Problem se manifestira od izdanja XZ Utils 5.3.3alpha prilikom dekodiranja u višedretvenom režimu (jednodretveni dekoder nije pogođen problemom). Osim standardnih alata iz paketa xz, ranjivost se manifestira i u vanjskim programima koji koriste funkciju lzma_stream_decoder_mt iz biblioteke liblzma. Ranjivost je otklonjena u izdanju XZ Utils 5.8.1, a također je prenesena u stabilne grane 5.4 i 5.6. Praćenje ažuriranja u distribucijama može se obaviti na sljedećim stranicama: Debian, Ubuntu, RHEL, SUSE/openSUSE, Fedora, Arch, FreeBSD. Kao zaobilazno rješenje za zaštitu, možete onemogućiti dekodiranje datoteka u višedretvenom režimu pomoću opcija '—decompress —threads=1' prilikom pokretanja xz ili korištenjem alata xzdec.
Od funkcionalnih promjena u grani XZ Utils 5.8 može se istaknuti:
- U LZMA/LZMA2 dekoder je dodana mogućnost korištenja SSE2 instrukcija umjesto funkcije memcpy() na 32- i 64-bitnim x86 sustavima. Ova promjena je omogućila smanjenje vremena dekodiranja do 5% pri kompilaciji s Glibc i do 15% pri kompilaciji s musl tijekom raspakiravanja datoteka s vrlo visokim stupnjem kompresije.
- U liblzma je povećana brzina kodiranja na 64-bitnim PowerPC i RISC-V sustavima.
- U lzma/bcj.h dodan je niskonivoiski API BCJ filtara (Branch/Call/Jump) za RISC-V, ARM64 i x86 sustave.
- Prepisan kod za izračun CLMUL CRC za x86, x86-64 i E2K sustave.
- Na platformama s procesorima LoongArch korištene su instrukcije za ubrzanje izračuna CRC32 kontrolnih zbrojeva.
- U alatu „xz“ osigurano je pozivanje funkcije fsync() za pražnjenje datotečnih predmemorija rezultantne datoteke prije brisanja izvorne datoteke. Za onemogućavanje sinkronizacije prije brisanja implementirana je opcija „—no-sync“.
- U alatima xz, xzdec i lzmainfo prilikom ispisivanja informacija na ekran osigurana je zamjena neprintanih znakova s upitnikom.
- U xz i xzdec na Linux platformi podržana je izolacija procesa uz 5. i 6. verziju Landlock mehanizma.
- Dodana je skripta za provjeru licenci build-aux/license-check.sh.
- Označeni su zastarjelim skripti lzcmp, lzdiff, lzless, lzmore, lzgrep, lzegrep i lzfgrep, implementirani kao nadogradnje na alat xz.
Izvor: opennet.ru
