Actualizare XZ Utils 5.8.1 cu remediere a vulnerabilităților

A fost publicată lansarea pachetului XZ Utils 5.8.1, inclusiv biblioteca liblzma și utilitarele pentru lucrul cu date comprimate în formatul „.xz”. XZ Utils 5.8.1 a fost prima lansare semnificativă după incidentul cu descoperirea unei uși din spate care a organizat autentificarea sshd. Eticheta Git 5.8.0 a fost creată săptămâna trecută, dar lansarea nu a fost anunțată oficial din cauza problemelor de performanță și compatibilitate cu versiunile mai vechi ale GNU make descoperite după publicarea etichetei.

Actualizarea XZ Utils 5.8.1 remediază o vulnerabilitate (CVE-2025-31115) care provoacă o blocare atunci când se încearcă despachetarea arhivelor special concepute. Vulnerabilitatea este cauzată de accesarea unei zone de memorie deja eliberată (utilizare după eliberare). Un atacator își poate obține valoarea scrisă la o adresă calculată ca „pointer nul + offset”. Problema este considerată o eroare neintenționată, deoarece modificarea care a cauzat-o a fost făcută codului cu mult înainte ca dezvoltatorul Jia Tan să se alăture proiectului, ale cărui activități au dus la introducerea ușii din spate.

Problema apare începând cu lansarea XZ Utils 5.3.3alpha atunci când se decodează în modul multi-thread (decodorul cu un singur thread nu este afectat de problemă). Pe lângă utilitățile standard din pachetul xz, vulnerabilitatea apare și în programele terțe care folosesc funcția lzma_stream_decoder_mt din biblioteca liblzma. Vulnerabilitatea a fost remediată în lansarea XZ Utils 5.8.1 și, de asemenea, a fost mutată în ramurile stabile 5.4 și 5.6. Puteți monitoriza disponibilitatea actualizărilor în distribuții pe următoarele pagini: Debian, Ubuntu, RHEL, SUSE/openSUSE, Fedora, Arch, FreeBSD. Ca o soluție pentru protecție, puteți dezactiva decodarea fișierelor în modul cu mai multe fire folosind opțiunea „--decompress —threads=1” când porniți xz sau folosiți utilitarul xzdec.

Printre modificările funcționale din ramura XZ Utils 5.8, pot fi remarcate următoarele:

  • S-a adăugat posibilitatea de a utiliza instrucțiuni SSE2 în loc de memcpy() pe decodorul LZMA/LZMA2 pe sisteme x32 pe 64 și 86 biți. Modificarea a făcut posibilă reducerea timpului de decodare cu până la 5% la construirea cu Glibc și cu până la 15% la construirea cu musl la decomprimarea fișierelor cu un nivel de compresie foarte ridicat.
  • liblzma îmbunătățește viteza de codificare pe sistemele PowerPC și RISC-V pe 64 de biți.
  • Un API de nivel scăzut pentru filtrele BCJ (Branch/Call/Jump) pentru sistemele RISC-V, ARM64 și x86 a fost adăugat la lzma/bcj.h.
  • Cod de calcul CLMUL CRC rescris pentru sistemele x86, x86-64 și E2K.
  • Pe platformele cu procesoare LoongArch, instrucțiunile sunt activate pentru a accelera calculul sumelor de control CRC32.
  • Utilitarul xz oferă un apel la fsync() pentru a șterge cache-urile fișierelor pentru fișierul rezultat înainte de a șterge fișierul original. Pentru a dezactiva sincronizarea înainte de ștergere, a fost implementată opțiunea „--no-sync”.
  • În utilitatile xz, xzdec și lzmainfo, la afișarea informațiilor pe ecran, caracterele care nu pot fi imprimate sunt înlocuite cu un semn de întrebare.
  • În xz și xzdec pe platforma Linux, suportul pentru versiunile 5 și 6 ale mecanismului Landlock este implementat pentru izolarea procesului.
  • S-a adăugat un script pentru verificarea licențelor build-aux/license-check.sh.
  • Scripturile lzcmp, lzdiff, lzless, lzmore, lzgrep, lzegrep și lzfgrep, implementate ca suplimente la utilitarul xz, au fost declarate învechite.

Sursa: opennet.ru

Adauga un comentariu