ОбновлСниС XZ Utils 5.8.1 с устранСниСм уязвимости

ΠžΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½ выпуск ΠΏΠ°ΠΊΠ΅Ρ‚Π° XZ Utils 5.8.1, Π²ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‰Π΅Π³ΠΎ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ liblzma ΠΈ ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Ρ‹ для Ρ€Π°Π±ΠΎΡ‚Ρ‹ со сТатыми Π΄Π°Π½Π½Ρ‹ΠΌΠΈ Π² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅ Β«.xzΒ». XZ Utils 5.8.1 стал ΠΏΠ΅Ρ€Π²Ρ‹ΠΌ Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌ выпуском послС ΠΈΠ½Ρ†ΠΈΠ΄Π΅Π½Ρ‚Π° с выявлСниСм бэкдора, ΠΎΡ€Π³Π°Π½ΠΈΠ·ΡƒΡŽΡ‰Π΅Π³ΠΎ Π²Ρ…ΠΎΠ΄ Ρ‡Π΅Ρ€Π΅Π· sshd. На ΠΏΡ€ΠΎΡˆΠ»ΠΎΠΉ Π½Π΅Π΄Π΅Π»Π΅ Π² Git Π±Ρ‹Π» создан Ρ‚Π΅Π³ 5.8.0, Π½ΠΎ Ρ€Π΅Π»ΠΈΠ· Π½Π΅ Π±Ρ‹Π» объявлСн ΠΎΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½ΠΎ ΠΈΠ·-Π·Π° выявлСнных послС ΠΏΡƒΠ±Π»ΠΈΠΊΠ°Ρ†ΠΈΠΈ Ρ‚Π΅Π³Π° ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ с ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒΡŽ ΠΈ ΡΠΎΠ²ΠΌΠ΅ΡΡ‚ΠΈΠΌΠΎΡΡ‚ΡŒΡŽ со старыми вСрсиями GNU make.

Π’ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠΈ XZ Utils 5.8.1 устранСна ΡƒΡΠ·Π²ΠΈΠΌΠΎΡΡ‚ΡŒ (CVE-2025-31115), приводящая ΠΊ Π°Π²Π°Ρ€ΠΈΠΉΠ½ΠΎΠΌΡƒ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡŽ ΠΏΡ€ΠΈ ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΠ΅ распаковки ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎ ΠΎΡ„ΠΎΡ€ΠΌΠ»Π΅Π½Π½Ρ‹Ρ… Π°Ρ€Ρ…ΠΈΠ²ΠΎΠ². Π£ΡΠ·Π²ΠΈΠΌΠΎΡΡ‚ΡŒ Π²Ρ‹Π·Π²Π°Π½Π° ΠΎΠ±Ρ€Π°Ρ‰Π΅Π½ΠΈΠ΅ΠΌ ΠΊ ΡƒΠΆΠ΅ освобоТдённой области памяти (use after free). ΠΡ‚Π°ΠΊΡƒΡŽΡ‰ΠΈΠΉ ΠΌΠΎΠΆΠ΅Ρ‚ Π΄ΠΎΠ±ΠΈΡ‚ΡŒΡΡ записи своСго значСния ΠΏΠΎ адрСсу, вычисляСмому ΠΊΠ°ΠΊ Β«Π½ΡƒΠ»Π΅Π²ΠΎΠΉ ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ + смСщСниС». ΠŸΡ€ΠΎΠ±Π»Π΅ΠΌΠ° рассматриваСтся ΠΊΠ°ΠΊ нСпрСднамСрСнная ошибка, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ Π²Ρ‹Π·Π²Π°Π²ΡˆΠ΅Π΅ Π΅Ρ‘ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Π±Ρ‹Π»ΠΎ внСсСно Π² ΠΊΠΎΠ΄ Π·Π°Π΄ΠΎΠ»Π³ΠΎ Π΄ΠΎ ΠΏΡ€ΠΈΡ…ΠΎΠ΄Π° Π² ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ° Jia Tan, Π΄Π΅ΡΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ ΠΏΡ€ΠΈΠ²Π΅Π»Π° ΠΊ Π²Π½Π΅Π΄Ρ€Π΅Π½ΠΈΡŽ бэкдора.

ΠŸΡ€ΠΎΠ±Π»Π΅ΠΌΠ° проявляСтся начиная с выпуска XZ Utils 5.3.3alpha ΠΏΡ€ΠΈ Π΄Π΅ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ Π² ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΡ‚ΠΎΡ‡Π½ΠΎΠΌ Ρ€Π΅ΠΆΠΈΠΌΠ΅ (ΠΎΠ΄Π½ΠΎΠΏΠΎΡ‚ΠΎΡ‡Π½Ρ‹Ρ… Π΄Π΅ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Ρ‰ΠΈΠΊ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° Π½Π΅ Π·Π°Ρ‚Ρ€Π°Π³ΠΈΠ²Π°Π΅Ρ‚). Помимо ΡˆΡ‚Π°Ρ‚Π½Ρ‹Ρ… ΡƒΡ‚ΠΈΠ»ΠΈΡ‚ ΠΈΠ· ΠΏΠ°ΠΊΠ΅Ρ‚Π° xz, ΡƒΡΠ·Π²ΠΈΠΌΠΎΡΡ‚ΡŒ проявляСтся ΠΈ Π² сторонних ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°Ρ…, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‰ΠΈΡ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ lzma_stream_decoder_mt ΠΈΠ· Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ liblzma. Π£ΡΠ·Π²ΠΈΠΌΠΎΡΡ‚ΡŒ устранСна Π² выпускС XZ Utils 5.8.1, Π° Ρ‚Π°ΠΊΠΆΠ΅ пСрСнСсСна Π² ΡΡ‚Π°Π±ΠΈΠ»ΡŒΠ½Ρ‹Π΅ Π²Π΅Ρ‚ΠΊΠΈ 5.4 ΠΈ 5.6. ΠŸΡ€ΠΎΡΠ»Π΅Π΄ΠΈΡ‚ΡŒ Π·Π° появлСниСм ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠΉ Π² дистрибутивах ΠΌΠΎΠΆΠ½ΠΎ Π½Π° ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… страницах: Debian, Ubuntu, RHEL, SUSE/openSUSE, Fedora, Arch, FreeBSD. Π’ качСствС ΠΎΠ±Ρ…ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΏΡƒΡ‚ΠΈ Π·Π°Ρ‰ΠΈΡ‚Ρ‹ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡ‚ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Π΄Π΅ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Ρ„Π°ΠΉΠ»ΠΎΠ² Π² ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΡ‚ΠΎΡ‡Π½ΠΎΠΌ Ρ€Π΅ΠΆΠΈΠΌΠ΅, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΠΏΡ€ΠΈ запускС xz ΠΎΠΏΡ†ΠΈΠΈ Β«β€”decompress β€”threads=1Β» ΠΈΠ»ΠΈ примСняя ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Ρƒ xzdec.

Из Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹Ρ… ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π² Π²Π΅Ρ‚ΠΊΠ΅ XZ Utils 5.8 ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡ‚ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ:

  • Π’ Π΄Π΅ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Ρ‰ΠΈΠΊ LZMA/LZMA2 Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ использования инструкций SSE2 вмСсто Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ memcpy() Π½Π° 32- ΠΈ 64-разрядных систСмах x86. ИзмСнСниС ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΠ»ΠΎ ΡΠΎΠΊΡ€Π°Ρ‚ΠΈΡ‚ΡŒ врСмя дСкодирования Π΄ΠΎ 5% ΠΏΡ€ΠΈ сборкС с Glibc, ΠΈ Π΄ΠΎ 15% ΠΏΡ€ΠΈ сборкС с musl ΠΏΡ€ΠΈ распаковкС Ρ„Π°ΠΉΠ»ΠΎΠ² с ΠΎΡ‡Π΅Π½ΡŒ высоким ΡƒΡ€ΠΎΠ²Π½Π΅ΠΌ сТатия.
  • Π’ liblzma ΠΏΠΎΠ²Ρ‹ΡˆΠ΅Π½Π° ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ кодирования Π½Π° 64-разрядных систСмах PowerPC ΠΈ RISC-V.
  • Π’ lzma/bcj.h Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ Π½ΠΈΠ·ΠΊΠΎΡƒΡ€ΠΎΠ²Π½Π΅Π²Ρ‹ΠΉ API BCJ-Ρ„ΠΈΠ»ΡŒΡ‚Ρ€ΠΎΠ² (Branch/Call/Jump) для систСм RISC-V, ARM64 ΠΈ x86.
  • ΠŸΠ΅Ρ€Π΅ΠΏΠΈΡΠ°Π½ ΠΊΠΎΠ΄ вычислСния CLMUL CRC для систСм x86, x86-64 ΠΈ E2K.
  • На ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ°Ρ… с процСссорами LoongArch задСйствованы инструкции для ускорСния вычислСния ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒΠ½Ρ‹Ρ… сумм CRC32.
  • Π’ ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Π΅ Β«xzΒ» обСспСчСн Π²Ρ‹Π·ΠΎΠ² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ fsync() для сброса Ρ„Π°ΠΉΠ»ΠΎΠ²Ρ‹Ρ… кэшСй для Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚ΠΈΡ€ΡƒΡŽΡ‰Π΅Π³ΠΎ Ρ„Π°ΠΉΠ»Π° ΠΏΠ΅Ρ€Π΅Π΄ ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅ΠΌ исходного Ρ„Π°ΠΉΠ»Π°. Для ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ синхронизации ΠΏΠ΅Ρ€Π΅Π΄ ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅ΠΌ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° опция Β«β€”no-syncΒ».
  • Π’ ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Π°Ρ… xz, xzdec ΠΈ lzmainfo ΠΏΡ€ΠΈ Π²Ρ‹Π²ΠΎΠ΄Π΅ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ Π½Π° экран обСспСчСна Π·Π°ΠΌΠ΅Π½Π° Π½Π΅ΠΏΠ΅Ρ‡Π°Ρ‚Π½Ρ‹Ρ… символов Π½Π° Π·Π½Π°ΠΊ вопроса.
  • Π’ xz ΠΈ xzdec Π½Π° ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅ Linux для изоляции процСсса Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° 5 ΠΈ 6 вСрсий ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠ° Landlock.
  • Π”ΠΎΠ±Π°Π²Π»Π΅Π½ скрипт для ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ Π»ΠΈΡ†Π΅Π½Π·ΠΈΠΉ build-aux/license-check.sh.
  • ΠžΠ±ΡŠΡΠ²Π»Π΅Π½Ρ‹ ΡƒΡΡ‚Π°Ρ€Π΅Π²ΡˆΠΈΠΌΠΈ скрипты lzcmp, lzdiff, lzless, lzmore, lzgrep, lzegrep ΠΈ lzfgrep, Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½Ρ‹Π΅ Π² Π²ΠΈΠ΄Π΅ надстроСк Π½Π°Π΄ ΡƒΡ‚ΠΈΠ»ΠΈΡ‚ΠΎΠΉ xz.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ: opennet.ru

Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ