Kerentanan dalam PAM dan libblockdev yang memungkinkan hak akses root diperoleh dalam sistem

Компания Qualys выявила ΡƒΡΠ·Π²ΠΈΠΌΠΎΡΡ‚ΡŒ (CVE-2025-6019) Π² Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ΅ libblockdev, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΡƒΡŽ Ρ‡Π΅Ρ€Π΅Π· манипуляции с Ρ„ΠΎΠ½ΠΎΠ²Ρ‹ΠΌ процСссом udisks ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΏΡ€Π°Π²Π° root Π² систСмС. Π Π°Π±ΠΎΡ‚Π° ΠΏΡ€ΠΎΡ‚ΠΎΡ‚ΠΈΠΏΠ° эксплоита продСмонстрирована Π² Ubuntu, Debian, Fedora ΠΈ openSUSE Leap 15.

ΠŸΡ€ΠΎΡ†Π΅ΡΡ udisks примСняСтся практичСски Π²ΠΎ всСх дистрибутивах Linux ΠΈ прСдоставляСт интСрфСйс D-Bus для выполнСния ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ с накопитСлями, Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ ΠΌΠΎΠ½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅. Для ΡΠΎΠ²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ дСйствий с накопитСлями udisks Π²Ρ‹Π·Ρ‹Π²Π°Π΅Ρ‚ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ libblockdev. Доступ ΠΊ udisks ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ, Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‰ΠΈΡ… Π² контСкстС Β«allow_activeΒ», Ρ‚.Π΅. ΠΈΠΌΠ΅ΡŽΡ‰ΠΈΡ… физичСский доступ ΠΊ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Ρƒ ΠΈ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΠ²ΡˆΠΈΡ…ΡΡ Ρ‡Π΅Ρ€Π΅Π· Π»ΠΎΠΊΠ°Π»ΡŒΠ½ΡƒΡŽ консоль ΠΈΠ»ΠΈ Π·Π°ΠΏΡƒΡΡ‚ΠΈΠ²ΡˆΠΈΡ… графичСский сСанс. ΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈ, ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‰ΠΈΠ΅ΡΡ ΡƒΠ΄Π°Π»Ρ‘Π½Π½ΠΎ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΏΠΎ ssh, Π½Π΅ ΠΏΠΎΠΏΠ°Π΄Π°ΡŽΡ‚ Π² этот контСкст ΠΈ Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ Π½Π΅ ΠΌΠΎΠ³ΡƒΡ‚ ΡΠΊΡΠΏΠ»ΡƒΠ°Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΡƒΡΠ·Π²ΠΈΠΌΠΎΡΡ‚ΡŒ.

Untuk mengatasi batasan ini, Anda dapat menggunakan trik yang memungkinkan Anda menaikkan level autentikasi ke "allow_active" dengan memanipulasi peluncuran layanan pengguna oleh utilitas systemctl, yang akan dianggap polkitd sebagai tanda sesi lokal. Inti dari metode ini adalah polkitd menentukan keberadaan akses fisik dan menetapkan level "allow_active" berdasarkan tanda tidak langsung yang dapat dipengaruhi. Keterbatasan metode ini adalah untuk menipu polkitd, diperlukan sesi pengguna lokal dengan akses fisik yang sudah aktif dalam sistem.

Π’Ρ‚ΠΎΡ€Ρ‹ΠΌ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠΌ получСния ΠΏΡ€Π°Π² Β«allow_activeΒ» являСтся эксплуатация уязвимости (CVE-2025-6018) Π² PAM (Pluggable Authentication Modules), ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ исслСдоватСли ΠΈΠ· Qualys выявили Π² Ρ…ΠΎΠ΄Π΅ Π°Π½Π°Π»ΠΈΠ·Π° уязвимости Π² libblockdev. Π£ΡΠ·Π²ΠΈΠΌΠΎΡΡ‚ΡŒ позволяСт Π»ΡŽΠ±ΠΎΠΌΡƒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŽ, Π² Ρ‚ΠΎΠΌ числС ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΠ²ΡˆΠ΅ΠΌΡƒΡΡ ΠΏΠΎ SSH, Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ Π² контСкстС Β«allow_activeΒ». ΠŸΡ€ΠΎΠ±Π»Π΅ΠΌΠ° спСцифична для настроСк PAM Π² openSUSE Leap 15 ΠΈ SUSE Linux Enterprise 15, ΠΈ проявляСтся Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² этих дистрибутивах.

Π’ ΠΌΠΎΠ΄ΡƒΠ»Π΅ pam_env Π² openSUSE ΠΈ SUSE ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΎ Ρ‡Ρ‚Π΅Π½ΠΈΠ΅ Ρ„Π°ΠΉΠ»Π° ~/.pam_environment. Π§Π΅Ρ€Π΅Π· Π΄Π°Π½Π½Ρ‹ΠΉ Ρ„Π°ΠΉΠ» ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ ΠΌΠΎΠΆΠ΅Ρ‚ Π²Ρ‹ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ окруТСния XDG_SEAT=seat0 ΠΈ XDG_VTNR=1, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΡ€ΠΈ дальнСйшСй ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ Π±ΡƒΠ΄ΡƒΡ‚ восприняты ΠΊΠ°ΠΊ ΠΏΡ€ΠΈΠ·Π½Π°ΠΊ физичСского присутствия ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ, Π΄Π°ΠΆΠ΅ Ссли фактичСски Π²Ρ…ΠΎΠ΄ осущСствлён ΠΏΠΎ SSH. ΠœΠΎΠ΄ΡƒΠ»ΡŒ pam_env Ρ‚Π°ΠΊΠΆΠ΅ вызываСтся ΠΏΡ€ΠΈ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΈ ΠΏΠΎ ssh Π² Debian 12 dan Ubuntu 24.04 (Π² Debian 13 dan Ubuntu 24.10+ ΠΎΠ½ ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Ρ‘Π½), Π½ΠΎ выставлСниС ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… окруТСния Π² Π΄Π°Π½Π½Ρ‹Ρ… дистрибутивах Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒΡΡ для ΠΏΠΎΠ²Ρ‹ΡˆΠ΅Π½ΠΈΡ уровня доступа Π΄ΠΎ Β«allow_activeΒ», Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ pam_env вызываСтся Π½Π° Ρ„ΠΈΠ½Π°Π»ΡŒΠ½ΠΎΠΌ этапС послС Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ модуля pam_systemd ΠΈ выставлСнныС ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ окруТСния Π½Π΅ ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΠΎΠ²Π»ΠΈΡΡ‚ΡŒ Π½Π° ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ сСанса.

Mengenai kerentanan dalam libblockdev, penyerang dapat memasang citra sistem berkas sembarangan dalam mode loop, menempatkan berkas yang dapat dieksekusi dengan tanda root SUID atau perangkat khusus (/dev/mem) untuk akses tingkat rendah ke disk atau memori dalam citra ini. Untuk memblokir serangan tersebut, citra FS dipasang oleh sistem dengan tanda nosuid dan nodev, tetapi kerentanan dalam libblockdev memungkinkan untuk memasang citra tanpa tanda nosuid dan nodev. Inti dari kerentanan ini adalah bahwa udisks memungkinkan pengguna dengan tingkat akses "allow_active" untuk mengubah ukuran sistem berkas mereka, dan libblockdev memasang FS untuk sementara tanpa menyetel tanda nosuid dan nodev selama operasi ini.

Maka, serangannya adalah dengan membuat perangkat loop berdasarkan citra sistem berkas XFS yang memuat berkas root suid, menginisiasi operasi untuk mengubah ukuran perangkat loop, dan memantau saat perangkat tersebut dipasang dalam direktori /tmp/blockdev*: victim> killall -KILL gvfs-udisks2-volume-monitor victim> udisksctl loop-setup β€”file ./xfs.image β€”no-user-interaction Mapped file ./xfs.image as /dev/loop0.victim> while true; do /tmp/blockdev*/bash -c 'sleep 10; ls -l /tmp/blockdev*/bash' && break; selesai 2>/dev/null & korban> panggilan gdbus β€”sistem β€”tujuan org.freedesktop.UDisks2 β€”jalur-objek /org/freedesktop/UDisks2/block_devices/loop0 β€”metode org.freedesktop.UDisks2.Filesystem.Resize 0 '{}' Kesalahan: GDBus.Error:org.freedesktop.UDisks2.Error.Failed: Kesalahan mengubah ukuran sistem berkas di /dev/loop0: Gagal melepas '/dev/loop0' setelah mengubah ukurannya: target sedang sibuk -r-sr-xr-x. 1 root root 1406608 18 Jun 09:42 /tmp/blockdev.RSM429/bash korban> /tmp/blockdev*/bash -p korban# id uid=65534(tak seorang pun) gid=65534(tak seorang pun) euid=0(root) grup=65534(tak seorang pun)

Π£ΡΠ·Π²ΠΈΠΌΠΎΡΡ‚ΡŒ Π² libblockdev ΠΏΠΎΠΊΠ° устранСна Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² Π²ΠΈΠ΄Π΅ ΠΏΠ°Ρ‚Ρ‡Π΅ΠΉ. ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ состояниС Π½ΠΎΠ²ΠΎΠΉ вСрсии ΠΏΠ°ΠΊΠ΅Ρ‚Π° ΠΈΠ»ΠΈ ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΊΠΈ исправлСния Π² дистрибутивах ΠΌΠΎΠΆΠ½ΠΎ Π½Π° ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… страницах (Ссли страница нСдоступна, Π·Π½Π°Ρ‡ΠΈΡ‚ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ дистрибутива Π΅Ρ‰Ρ‘ Π½Π΅ приступили ΠΊ Ρ€Π°ΡΡΠΌΠΎΡ‚Ρ€Π΅Π½ΠΈΡŽ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹): Debian, Ubuntu, Fedora, SUSE/openSUSE, RHEL, Gentoo ΠΈ Arch (1, 2). Π’ качСствС ΠΎΠ±Ρ…ΠΎΠ΄Π½Ρ‹Ρ… ΠΏΡƒΡ‚Π΅ΠΉ для блокирования уязвимости ΠΌΠΎΠΆΠ½ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ доступа ΠΊ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ Β«org.freedesktop.udisks2.modify-deviceΒ» Π² polkit, ΠΈΠ·ΠΌΠ΅Π½ΠΈΠ² Π² Ρ„Π°ΠΉΠ»Π΅ /usr/share/polkit-1/actions/org.freedesktop.UDisks2.policy Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° Β«allow_activeΒ» с Β«yesΒ» Π½Π° Β«auth_adminΒ».

Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡ‚ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ Ρ€Π°ΡΠΊΡ€Ρ‹Ρ‚ΡƒΡŽ нСсколько часов Π½Π°Π·Π°Π΄ ΡƒΡΠ·Π²ΠΈΠΌΠΎΡΡ‚ΡŒ (CVE-2025-6020) Π² ΠΏΠ°ΠΊΠ΅Ρ‚Π΅ linux-pam, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΡƒΡŽ Π»ΠΎΠΊΠ°Π»ΡŒΠ½ΠΎΠΌΡƒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŽ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΏΡ€Π°Π²Π° root. ΠœΠΎΠ΄ΡƒΠ»ΡŒ pam_namespace Π΄ΠΎΠ»ΠΆΠ½Ρ‹ΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ Π½Π΅ провСрял Ρ„Π°ΠΉΠ»ΠΎΠ²Ρ‹Π΅ ΠΏΡƒΡ‚ΠΈ, ΠΏΠΎΠ΄ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒΠ½Ρ‹Π΅ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŽ, Ρ‡Ρ‚ΠΎ позволяло Ρ‡Π΅Ρ€Π΅Π· манипуляции с символичСскими ссылками ΠΈ достиТСниСм состояния Π³ΠΎΠ½ΠΊΠΈ Π΄ΠΎΠ±ΠΈΡ‚ΡŒΡΡ пСрСзаписи ΠΏΡ€ΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Ρ… Ρ„Π°ΠΉΠ»ΠΎΠ² Π² систСмС. Π£ΡΠ·Π²ΠΈΠΌΠΎΡΡ‚ΡŒ устранСна Π² выпускС linux-pam 1.7.1. ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ состояниС Π½ΠΎΠ²ΠΎΠΉ вСрсии ΠΏΠ°ΠΊΠ΅Ρ‚Π° ΠΈΠ»ΠΈ ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΊΠΈ исправлСния Π² дистрибутивах ΠΌΠΎΠΆΠ½ΠΎ Π½Π° ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… страницах: Debian, Ubuntu, Fedora, SUSE/openSUSE, RHEL, Gentoo ΠΈ Arch (1, 2).

Sumber: opennet.ru

Beli hosting yang andal untuk situs dengan perlindungan DDoS, server VPS VDS πŸ”₯ Beli hosting website andal dengan perlindungan DDoS, server VPS VDS | ProHoster