Kerentanan ing networkd-dispatcher sing ngidini akses root

Peneliti keamanan saka Microsoft wis nemtokake rong kerentanan (CVE-2022-29799, CVE-2022-29800) ing layanan networkd-dispatcher, kanthi jeneng kode Nimbuspwn, sing ngidini pangguna sing ora duwe hak kanggo nglakokake prentah sewenang-wenang kanthi hak istimewa root. Masalah kasebut diatasi ing release networkd-dispatcher 2.2. Ora ana informasi babagan publikasi nganyari miturut distribusi (Debian, RHEL, Fedora, SUSE, Ubuntu, Arch Linux).

Networkd-dispatcher digunakake ing akeh distribusi Linux, kalebu Ubuntu, kang nggunakake proses latar mburi systemd-networkd kanggo konfigurasi paramèter jaringan, lan nindakake fungsi padha NetworkManager-dispatcher, i.e. melu miwiti skrip nalika kahanan sambungan jaringan diganti, contone, digunakake kanggo miwiti VPN sawise sambungan jaringan utama wis ditetepake.

Proses latar mburi digandhengake karo networkd-dispatcher mlaku minangka ROOT lan nampa sinyal acara liwat D-Bus. Informasi babagan acara sing ana gandhengane karo owah-owahan ing kahanan sambungan jaringan dikirim dening layanan systemd-networkd. Masalahe yaiku pangguna sing ora duwe hak bisa ngasilake acara negara sing ora ana lan micu skrip supaya dieksekusi minangka root.

Systemd-networkd dirancang kanggo mbukak mung skrip handler sistem sing ana ing direktori /etc/networkd-dispatcher lan ora bisa diakses kanggo panggantos pangguna, nanging amarga kerentanan (CVE-2022-29799) ing kode pangolahan jalur file, ana kamungkinan direktori dhasar sing ora ana watese lan ngluncurake skrip sewenang-wenang. Utamane, nalika mbentuk path file menyang skrip, nilai OperationalState lan AdministrativeState sing dikirim liwat D-Bus digunakake, ing ngendi karakter khusus ora dibusak. Panyerang bisa ngasilake negarane dhewe, sing jenenge ngemot karakter "../" lan pangalihan panggilan networkd-dispatcher menyang direktori liya.

Kerentanan kapindho (CVE-2022-29800) ana hubungane karo kondisi balapan - antarane mriksa paramèter skrip (kanggo ROOT) lan mlaku, ana wektu sing cendhak, cukup kanggo ngganti file lan ngliwati mriksa manawa script belongs kanggo pangguna root. Kajaba iku, networkd-dispatcher ora mriksa pranala simbolis, kalebu nalika mbukak script liwat subprocess.Popen telpon, kang Ngartekno simplified saka serangan.

Teknik operasi:

  • Direktori "/tmp/nimbuspwn" lan pranala simbolis "/tmp/nimbuspwn/poc.d" digawe ngarahake menyang direktori "/ sbin", sing digunakake kanggo mriksa file eksekusi sing diduweni dening root.
  • Kanggo file eksekusi saka "/ sbin", file kanthi jeneng sing padha digawe ing direktori "/ tmp / nimbuspwn", contone, kanggo file "/ sbin / vgs" file eksekusi "/tmp/nimbuspwn/vgs" yaiku digawe, diduweni dening pangguna sing ora duwe hak istimewa, ing ngendi kode sing pengin ditindakake panyerang diselehake.
  • Sinyal dikirim liwat D-Bus menyang proses networkd-dispatcher sing nuduhake nilai "../../../tmp/nimbuspwn/poc" ing OperationalState. Kanggo ngirim sinyal ing namespace "org.freedesktop.network1", kemampuan kanggo nyambungake panangane menyang systemd-networkd digunakake, contone, liwat manipulasi karo gpgv utawa epmd, utawa sampeyan bisa njupuk kauntungan saka kasunyatan sing systemd-networkd. ora mlaku kanthi gawan (contone, ing Linux Mint).
  • Sawise nampa sinyal kasebut, Networkd-dispatcher nggawe dhaptar file eksekusi sing diduweni dening pangguna root lan kasedhiya ing direktori "/etc/networkd-dispatcher/../../../tmp/nimbuspwn/poc.d", kang bener pranala menyang "/ sbin".
  • Ing wayahe nalika dhaftar file ditampa, nanging script durung dibukak, link simbolis redirected saka "/tmp/nimbuspwn/poc.d" kanggo "/tmp/nimbuspwn" lan networkd-dispatcher bakal miwiti skrip sing di-host dening panyerang kanthi hak root.

Kerentanan ing networkd-dispatcher sing ngidini akses root


Source: opennet.ru

Add a comment