Уязвимости Π² snapd ΠΈ Rust Π‘oreutils, позволяващи ΠΏΠΎΠ»ΡƒΡ‡Π°Π²Π°Π½Π΅ Π½Π° root-ΠΏΡ€ΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΠΈ Π² Ubuntu

ΠšΠΎΠΌΠΏΠ°Π½ΠΈΡΡ‚Π° Qualys ΠΎΡ‚ΠΊΡ€ΠΈ уязвимост (CVE-2026-3888) Π² Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚Π° Π½Π° ΡΠ²ΡŠΡ€Π·Π²Π°Π½Π΅Ρ‚ΠΎ ΠΌΠ΅ΠΆΠ΄Ρƒ snap-confine ΠΈ systemd-tmpfiles Π² Ubuntu, ΠΊΠΎΠ΅Ρ‚ΠΎ позволява Π½Π° Π½Π΅ΠΏΡ€ΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΡ€ΠΎΠ²Π°Π½ ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΈΡ‚Π΅Π» Π΄Π° ΠΏΠΎΠ»ΡƒΡ‡ΠΈ root Π΄ΠΎΡΡ‚ΡŠΠΏ Π΄ΠΎ систСмата. ΠŸΡ€ΠΎΠ±Π»Π΅ΠΌΡŠΡ‚ сС проявява Π² Ubuntu с конфигурация ΠΏΠΎ ΠΏΠΎΠ΄Ρ€Π°Π·Π±ΠΈΡ€Π°Π½Π΅ ΠΎΡ‚ вСрсия 24.04. Π’ Ubuntu 16.04-22.04 уязвимостта ΠΌΠΎΠΆΠ΅ Π΄Π° сС Сксплоатира Π² нСстандартни ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ, ΠΈΠΌΠΈΡ‚ΠΈΡ€Π°Ρ‰ΠΈ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅Ρ‚ΠΎ Π½Π° ΠΏΠΎ-Π½ΠΎΠ²ΠΈΡ‚Π΅ вСрсии Π½Π° дистрибутива. Π’ Ubuntu, ΠΏΠΎΠΏΡ€Π°Π²ΠΊΠ°Ρ‚Π° Π΅ Π½Π°Π»ΠΈΡ‡Π½Π° Π² ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅Ρ‚ΠΎ Π½Π° ΠΏΠ°ΠΊΠ΅Ρ‚Π° snapd ΠΎΡ‚ Π²Ρ‡Π΅Ρ€Π°. Π’ snapd ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡŠΡ‚ Π΅ отстранСн Π² ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅Ρ‚ΠΎ 2.75.

Уязвимостта възниква Π² Ρ€Π΅Π·ΡƒΠ»Ρ‚Π°Ρ‚ Π½Π° Π½Π΅ΠΏΡ€Π°Π²ΠΈΠ»Π½ΠΎΡ‚ΠΎ взаимодСйствиС Π½Π° ΡƒΡ‚ΠΈΠ»ΠΈΡ‚ΠΈΡ‚Π΅ snap-confine ΠΈ systemd-tmpfiles, изпълнявани с повишСни ΠΏΡ€ΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΠΈ. Π£Ρ‚ΠΈΠ»ΠΈΡ‚Π°Ρ‚Π° snap-confine създава sandbox срСда Π·Π° изпълнСниС Π½Π° snap прилоТСния, Π΄ΠΎΠΊΠ°Ρ‚ΠΎ systemd-tmpfiles ΠΈΠ·Π²ΡŠΡ€ΡˆΠ²Π° Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΡ‡Π½ΠΎ почистванС Π½Π° Π²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΈ Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅ ΠΈ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ. По ΠΏΠΎΠ΄Ρ€Π°Π·Π±ΠΈΡ€Π°Π½Π΅, ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Π°Ρ‚Π° systemd-tmpfiles Π΅ настроСна Π΄Π° ΠΈΠ·Ρ‚Ρ€ΠΈΠ²Π° всички стари Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅ ΠΈ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ Π² /tmp, ΠΊΠΎΠ΅Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅ Π΄Π° бъдС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½ΠΎ ΠΎΡ‚ нападатСля Π·Π° подмяна Π½Π° дирСкторията /tmp/.snap Π² ΠΌΠΎΠΌΠ΅Π½Ρ‚Π° слСд Π½Π΅ΠΉΠ½ΠΎΡ‚ΠΎ ΠΈΠ·Ρ‚Ρ€ΠΈΠ²Π°Π½Π΅ ΠΎΡ‚ ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Π°Ρ‚Π° systemd-tmpfiles, Π½ΠΎ ΠΏΡ€Π΅Π΄ΠΈ тя Π΄Π° бъдС ΠΏΡ€Π΅ΡΡŠΠ·Π΄Π°Π΄Π΅Π½Π° ΠΎΡ‚ ΠΊΠΎΠΌΠ°Π½Π΄Π°Ρ‚Π° snap-confine.

Атаката сС ΡΡŠΡΡ‚ΠΎΠΈ Π² ΠΈΠ·Ρ‡Π°ΠΊΠ²Π°Π½Π΅ Π½Π° стартиранС Π½Π° процСса ΠΏΠΎ почистванС Π½Π° Π²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΈ Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅, подмяна Π½Π° дирСкторията /tmp/.snap слСд Π½Π΅ΠΉΠ½ΠΎΡ‚ΠΎ ΠΈΠ·Ρ‚Ρ€ΠΈΠ²Π°Π½Π΅ ΠΈ поставянС Π½Π° ΠΌΠΎΠ΄ΠΈΡ„ΠΈΡ†ΠΈΡ€Π°Π½Π° копия Π½Π° Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈΡ‚Π΅ Π² /tmp/.snap/usr/lib/x86_64-linux-gnu.exchange. На нападатСля ΠΌΠΎΠΆΠ΅ Π΄Π° ΠΌΡƒ ΠΎΡ‚Π½Π΅ΠΌΠ΅ няколко Π΄Π½ΠΈ Π΄Π° ΠΈΠ·Ρ‡Π°ΠΊΠ° стартиранСто Π½Π° systemd-tmpfiles, Ρ‚ΡŠΠΉ ΠΊΠ°Ρ‚ΠΎ Π² Ubuntu 24.04 ΠΏΡ€ΠΎΡ†Π΅ΡΡŠΡ‚ Π½Π° почистванС сС стартира вСднъТ Π½Π° 10 Π΄Π½ΠΈ, Π° Π² ΠΏΠΎ-Π½ΠΎΠ²ΠΈ вСрсии β€” вСднъТ Π½Π° 30 Π΄Π½ΠΈ. Π‘Π»Π΅Π΄ подмяната Π½Π° дирСкторията, нападатСлят успява Π΄Π° ΠΈΠ½ΠΈΡ†ΠΈΠΈΡ€Π° Π½ΠΎΠ²Π° sandbox срСда с ΠΏΠΎΠΌΠΎΡ‰Ρ‚Π° Π½Π° snap-confine.

По Π²Ρ€Π΅ΠΌΠ΅ Π½Π° ΡΡŠΠ·Π΄Π°Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° sandbox срСдата Π² Π²Ρ€Π΅ΠΌΠ΅Π½Π½Π°Ρ‚Π° дирСктория /tmp/.snap, нападатСлят ΠΈΠ·Ρ‡Π°ΠΊΠ²Π° подходящия ΠΌΠΎΠΌΠ΅Π½Ρ‚ ΠΈ ΠΏΡ€Π΅ΠΈΠΌΠ΅Π½ΡƒΠ²Π° /tmp/.snap/usr/lib/x86_64-linux-gnu.exchange Π½Π° /tmp/.snap/usr/lib/x86_64-linux-gnu, ΠΏΠΎ Ρ‚Π°ΠΊΡŠΠ² Π½Π°Ρ‡ΠΈΠ½ подмСняйки Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈΡ‚Π΅ ΠΈ осигурявайки тяхното bind-ΠΌΠΎΠ½Ρ‚ΠΈΡ€Π°Π½Π΅ с ΠΏΡ€Π°Π²Π° root. По Ρ‚ΠΎΠ·ΠΈ Π½Π°Ρ‡ΠΈΠ½ нападатСлят ΠΏΠΎΠ»ΡƒΡ‡Π°Π²Π° ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ» Π½Π°Π΄ сподСлСнитС Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ ΠΈ Π·Π°Ρ€Π΅ΠΆΠ΄Π°Ρ‡Π° ld.so, ΠΊΠΎΠΈΡ‚ΠΎ сС ΠΈΠ·ΠΏΡŠΠ»Π½ΡΠ²Π°Ρ‚ Π² sandbox срСдата Π½Π° snap, ΠΈ ΠΌΠΎΠΆΠ΅ Π΄Π° постигнС изпълнСниС Π½Π° ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»Π΅Π½ ΠΊΠΎΠ΄ с ΠΏΡ€Π°Π²Π° root Ρ‡Ρ€Π΅Π· стартиранС Π½Π° всяка suid ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠ°, Π² която сС ΠΏΡ€ΠΈΠ»Π°Π³Π° Π΄ΠΈΠ½Π°ΠΌΠΈΡ‡Π½ΠΎ ΡΠ²ΡŠΡ€Π·Π²Π°Π½Π΅.

Π‘ root-Π΄ΠΎΡΡ‚ΡŠΠΏ Π² sandbox-срСда, ΠΈΠ·ΠΎΠ»ΠΈΡ€Π°Π½Π° Ρ‡Ρ€Π΅Π· AppArmor ΠΈ Ρ„ΠΈΠ»Ρ‚ΡŠΡ€ Π·Π° систСмни ΠΏΠΎΠ²ΠΈΡ†ΠΈ Π½Π° Π±Π°Π·Π°Ρ‚Π° Π½Π° seccomp, Π°Ρ‚Π°ΠΊΡƒΠ²Π°Ρ‡ΡŠΡ‚ ΠΌΠΎΠΆΠ΅ Π΄Π° ΠΊΠΎΠΏΠΈΡ€Π° /bin/bash Π² дирСктория /var/snap/$SNAP/common/ ΠΈ Π΄Π° Π·Π°Π΄Π°Π΄Π΅ ΠΏΡ€Π°Π²Π° Β«04755Β» (suid root). Π’ΡŠΠΏΡ€Π΅ΠΊΠΈ Ρ‡Π΅ ΠΏΡ€Π°Π²Π°Ρ‚Π° са ΠΏΡ€ΠΎΠΌΠ΅Π½Π΅Π½ΠΈ Π² sandbox-срСдата, Ρ„Π°ΠΉΠ»ΡŠΡ‚ с ΠΏΡ€ΠΎΠΌΠ΅Π½Π΅Π½ΠΈΡ‚Π΅ ΠΏΡ€Π°Π²Π° Π΅ Π΄ΠΎΡΡ‚ΡŠΠΏΠ΅Π½ ΠΈ Π² основната систСма, ΠΏΠΎΡ€Π°Π΄ΠΈ ΠΊΠΎΠ΅Ρ‚ΠΎ Π·Π° ΠΏΠΎΠ»ΡƒΡ‡Π°Π²Π°Π½Π΅ Π½Π° пълно root Π΄ΠΎΡΡ‚ΡŠΠΏ Π΅ Π΄ΠΎΡΡ‚Π°Ρ‚ΡŠΡ‡Π½ΠΎ просто Π΄Π° стартиратС /var/snap//common/bash ΠΊΠ°Ρ‚ΠΎ ΠΎΠ±ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ Π½Π΅ΠΏΡ€ΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΡ€ΠΎΠ²Π°Π½ ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΈΡ‚Π΅Π» ΠΎΡ‚ стандартната систСмна срСда.

ΠŸΠ°Ρ€Π°Π»Π΅Π»Π½ΠΎ Π±Π΅ ΠΎΡ‚ΠΊΡ€ΠΈΡ‚Π° уязвимост Π² инструмСнтария uutils coreutils (Rust Coreutils), Π°Π½Π°Π»ΠΎΠ³ Π½Π° ΠΏΠ°ΠΊΠ΅Ρ‚Π° GNU Coreutils, написан Π½Π° Π΅Π·ΠΈΠΊΠ° Rust. Уязвимостта позволява Π½Π° Π½Π΅ΠΏΡ€ΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΡ€ΠΎΠ²Π°Π½ ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΈΡ‚Π΅Π» Π΄Π° ΠΏΠΎΠ»ΡƒΡ‡ΠΈ ΠΏΡ€Π°Π²Π° root Π² систСмата. ΠŸΡ€ΠΎΠ±Π»Π΅ΠΌΡŠΡ‚ бСшС ΠΎΡ‚ΠΊΡ€ΠΈΡ‚ ΠΏΠΎ Π²Ρ€Π΅ΠΌΠ΅ Π½Π° ΠΏΡ€Π΅Π³Π»Π΅Π΄Π° Π½Π° ΠΏΡ€ΠΎΠΌΠ΅Π½ΠΈΡ‚Π΅ Π² Ubuntu 25.10 ΠΈ Π±Π΅ отстранСн ΠΎΠ±Ρ…ΠΎΠ΄Π½ΠΎ ΠΏΡ€Π΅Π΄ΠΈ Ρ€Π΅Π»ΠΈΠ·Π° Π½Π° Ubuntu 25.10 Ρ‡Ρ€Π΅Π· прСдоставянС Π½Π° /usr/bin/gnurm вмСсто uutils rm. Π’ ΠΏΠ°ΠΊΠ΅Ρ‚Π° uutils ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡŠΡ‚ бСшС отстранСн Π² ΠΈΠ·Π΄Π°Π½ΠΈΠ΅Ρ‚ΠΎ uutils coreutils 0.3.0, Π±Π΅Π· ΠΎΡ‚ΠΌΠ΅Ρ‚ΠΊΠΈ Π² списъка Π½Π° ΠΏΡ€ΠΎΠΌΠ΅Π½ΠΈΡ‚Π΅ Π·Π° отстраняванС Π½Π° уязвимостта (бСшС посочСно, Ρ‡Π΅ Π² rm, du, chmod ΠΈ chgrp Π΅ Ρ€Π΅Π°Π»ΠΈΠ·ΠΈΡ€Π°Π½ бСзопасСн ΠΌΠ΅Ρ‚ΠΎΠ΄ Π·Π° ΠΎΠ±Ρ…ΠΎΠ΄ Π½Π° ΠΏΡŠΡ‚ΠΈΡ‰Π°).

ΠŸΡ€ΠΎΠ±Π»Π΅ΠΌΡŠΡ‚ Π΅ ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π΅Π½ ΠΎΡ‚ ΡΡŠΡΡ‚Π΅Π·Π°Ρ‚Π΅Π»Π½ΠΎΡ‚ΠΎ ΡΡŠΡΡ‚ΠΎΡΠ½ΠΈΠ΅ Π² ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Π°Ρ‚Π° Β«rmΒ», ΠΊΠΎΠ΅Ρ‚ΠΎ позволява Π½Π° локалния ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΈΡ‚Π΅Π» Π΄Π° ΠΏΠΎΠ΄ΠΌΠ΅Π½ΠΈ ΡΡŠΠ΄ΡŠΡ€ΠΆΠ°Π½ΠΈΠ΅Ρ‚ΠΎ Π½Π° дирСкторията с символична Π²Ρ€ΡŠΠ·ΠΊΠ° ΠΏΠΎ Π²Ρ€Π΅ΠΌΠ΅ Π½Π° ΠΈΠ·Ρ‚Ρ€ΠΈΠ²Π°Π½Π΅Ρ‚ΠΎ Π½Π° Ρ„Π°ΠΉΠ», ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΠΈΡ€Π°Π½ΠΎ ΠΎΡ‚ потрСбитСля, ΠΎΡ‚ процСса Β«rmΒ» с ΠΏΡ€Π°Π²Π° root. ΠœΠ΅ΠΆΠ΄Ρƒ Π΄Ρ€ΡƒΠ³ΠΎΡ‚ΠΎ, уязвимостта ΠΌΠΎΠΆΠ΅ Π΄Π° бъдС Сксплоатирана ΠΏΡ€ΠΈ Π΅ΠΆΠ΅Π΄Π½Π΅Π²Π½ΠΎΡ‚ΠΎ стартиранС ΠΎΡ‚ cron скрипта /etc/cron.daily/apport, ΠΊΠΎΠΉΡ‚ΠΎ сС стартира с ΠΏΡ€Π°Π²Π° root ΠΈ рСкурсивно ΠΈΠ·Ρ‚Ρ€ΠΈΠ²Π° ΡΡŠΠ΄ΡŠΡ€ΠΆΠ°Π½ΠΈΠ΅Ρ‚ΠΎ Π½Π° дирСкторията /var/crash, Π΄ΠΎΡΡ‚ΡŠΠΏΠ½Π° Π·Π° запис Π·Π° всички ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΈΡ‚Π΅Π»ΠΈ Π² систСмата.

ΠŸΡ€ΠΈ рСкурсивно ΠΈΠ·Ρ‚Ρ€ΠΈΠ²Π°Π½Π΅ Π½Π° Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Π°Ρ‚Π° rm ΠΏΡŠΡ€Π²ΠΎ провСрява всичкитС Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ, Π° слСд Ρ‚ΠΎΠ²Π° послСдоватСлно Π³ΠΈ ΠΈΠ·Ρ‚Ρ€ΠΈΠ²Π° Π² ΠΎΠ±Ρ€Π°Ρ‚Π΅Π½ Ρ€Π΅Π΄, ΠΈΠ·Π²ΠΈΠΊΠ²Π°ΠΉΠΊΠΈ функцията rmdir(). Ако успССтС Π΄Π° ΠΏΠΎΠ΄ΠΌΠ΅Π½ΠΈΡ‚Π΅ родитСлската дирСктория с символична Π²Ρ€ΡŠΠ·ΠΊΠ° Π²Π΅Π΄Π½Π°Π³Π° слСд ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ°Ρ‚Π° Π½Π° Ρ‚Π°Π·ΠΈ дирСктория, Π½ΠΎ ΠΏΡ€Π΅Π΄ΠΈ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ°Ρ‚Π° Π½Π° Π²Π»ΠΎΠΆΠ΅Π½ΠΈΡ‚Π΅ Π² нСя Π΄ΡŠΡ‰Π΅Ρ€Π½ΠΈ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ, опСрацията Ρ‰Π΅ Π΄ΠΎΠ²Π΅Π΄Π΅ Π΄ΠΎ ΠΈΠ·Ρ‚Ρ€ΠΈΠ²Π°Π½Π΅ Π½Π° дирСкторията, Π½Π° която сочи символичната Π²Ρ€ΡŠΠ·ΠΊΠ°. Π’Π°ΠΊΠ° ΠΌΠΎΠΆΠ΅ Π΄Π° сС постигнС Π½Π΅ само ΠΈΠ·Ρ‚Ρ€ΠΈΠ²Π°Π½Π΅ Π½Π° всСки Ρ„Π°ΠΉΠ» Π² систСмата, Π½ΠΎ ΠΈ повишаванС Π½Π° ΠΏΡ€ΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΠΈΡ‚Π΅ Ρ‡Ρ€Π΅Π· ΠΈΠ·Ρ‚Ρ€ΠΈΠ²Π°Π½Π΅ Π½Π° дирСкторията /tmp/snap-private-tmp/$SNAP/tmp/.snap Π·Π° подмяна Π½Π° ΡΡŠΠ΄ΡŠΡ€ΠΆΠ°Π½ΠΈΠ΅Ρ‚ΠΎ Π½Π° sandbox-срСдата Π½Π° snap-ΠΏΠ°ΠΊΠ΅Ρ‚Π° (ΠΌΠ΅Ρ‚ΠΎΠ΄ΡŠΡ‚ Π·Π° ΠΏΠΎΠ»ΡƒΡ‡Π°Π²Π°Π½Π΅ Π½Π° root Π΅ Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π΅Π½ Π½Π° ΠΏΡŠΡ€Π²Π°Ρ‚Π° уязвимост).

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

ΠšΡƒΠΏΠ΅Ρ‚Π΅ Π½Π°Π΄Π΅ΠΆΠ΄Π΅Π½ хостинг Π·Π° сайтовС с Π·Π°Ρ‰ΠΈΡ‚Π° ΠΎΡ‚ DDoS, VPS VDS ΡΡŠΡ€Π²ΡŠΡ€ΠΈ πŸ”₯ ΠšΡƒΠΏΠ΅Ρ‚Π΅ Π½Π°Π΄Π΅ΠΆΠ΄Π΅Π½ хостинг Π·Π° сайтовС с Π·Π°Ρ‰ΠΈΡ‚Π° ΠΎΡ‚ DDoS, VPS VDS ΡΡŠΡ€Π²ΡŠΡ€ΠΈ | ProHoster