Atualização do XZ Utils 5.8.1 com correção de vulnerabilidade

Foi lançado o pacote XZ Utils 5.8.1, que inclui a biblioteca liblzma e ferramentas para trabalhar com dados compactados no formato '.xz'. O XZ Utils 5.8.1 é o primeiro lançamento significativo após o incidente envolvendo a descoberta de um backdoor que permitia acesso via sshd. Na semana passada, uma tag 5.8.0 foi criada no Git, mas o lançamento não foi oficialmente anunciado devido a problemas de desempenho e compatibilidade com versões antigas do GNU make que surgiram após a publicação da tag.

A atualização do XZ Utils 5.8.1 corrige uma vulnerabilidade (CVE-2025-31115), que pode causar falha ao tentar descompactar arquivos especialmente formatados. A vulnerabilidade é causada por acesso a uma área de memória já liberada (uso após liberação). Um atacante pode conseguir gravar seu valor em um endereço calculado como 'ponteiro nulo + deslocamento'. O problema é considerado um erro não intencional, uma vez que a alteração que o causou foi feita no código muito antes da chegada do desenvolvedor Jia Tan ao projeto, cujo trabalho levou à introdução do backdoor.

O problema aparece a partir da versão XZ Utils 5.3.3alpha na decodificação em modo multithread (o decodificador em modo de thread única não é afetado). Além das ferramentas padrão do pacote xz, a vulnerabilidade também se manifesta em programas de terceiros que utilizam a função lzma_stream_decoder_mt da biblioteca liblzma. A vulnerabilidade foi corrigida na versão XZ Utils 5.8.1 e também foi transferida para os branches estáveis 5.4 e 5.6. É possível acompanhar o lançamento de atualizações nas distribuições nas seguintes páginas: Debian, Ubuntu, RHEL, SUSE/openSUSE, Fedora, Arch, FreeBSD. Como uma solução alternativa para proteção, pode-se desativar a decodificação de arquivos em modo multithread, usando ao executar xz as opções '--decompress --threads=1' ou aplicando a ferramenta xzdec.

Entre as alterações funcionais na branch XZ Utils 5.8, podemos destacar:

  • Adicionada a capacidade de usar instruções SSE2 em vez da função memcpy() no decodificador LZMA/LZMA2 em sistemas x86 de 32 e 64 bits. Essa mudança permitiu reduzir o tempo de decodificação em até 5% ao compilar com Glibc, e até 15% ao compilar com musl ao descompactar arquivos com um nível de compressão muito alto.
  • A velocidade de codificação foi aumentada em sistemas PowerPC e RISC-V de 64 bits na liblzma.
  • Foi adicionado um API de baixo nível para filtros BCJ (Branch/Call/Jump) no lzma/bcj.h para sistemas RISC-V, ARM64 e x86.
  • O código de cálculo do CRC CLMUL foi reescrito para sistemas x86, x86-64 e E2K.
  • Em plataformas com processadores LoongArch, são utilizadas instruções para acelerar o cálculo de somas de verificação CRC32.
  • Na ferramenta «xz», foi garantida a chamada da função fsync() para descartar os caches de arquivo do arquivo resultante antes de excluir o arquivo original. Para desativar a sincronização antes da exclusão, a opção «—no-sync» foi implementada.
  • Nas ferramentas xz, xzdec e lzmainfo, ao exibir informações na tela, foi implementada a substituição de caracteres não imprimíveis pelo sinal de interrogação.
  • No xz e xzdec em plataformas Linux, foi implementado suporte para a versão 5 e 6 do mecanismo Landlock para isolamento de processos.
  • Adicionado script para verificação de licenças build-aux/license-check.sh.
  • Os scripts lzcmp, lzdiff, lzless, lzmore, lzgrep, lzegrep e lzfgrep, que foram implementados como extensões sobre a ferramenta xz, foram declarados obsoletos.

Fonte: opennet.ru

Compre hospedagem confiável para sites com proteção contra DDoS, servidores VPS VDS 🔥 Compre hospedagem confiável para sites com proteção contra DDoS, servidores VPS VDS | ProHoster