Kerentanan ing OpenBSD ngidini eskalasi hak istimewa lan lulus otentikasi ing smtpd, ldapd lan radiusd

Perusahaan Qualys dicethakakΓ© papat vulnerabilities ing OpenBSD, salah siji sing ngijini sampeyan kanggo nyambung mbatalake tanpa bukti asli kanggo sawetara layanan jaringan, lan telu liyane kanggo nambah hak istimewa ing sistem. Laporan Qualys nyathet respon cepet saka pangembang OpenBSD - kabeh masalah diilangi Π² OpenBSD 6.5 ΠΈ OpenBSD 6.6 ing 40 jam sawise kabar pribadi.

Kerentanan sing bisa dieksploitasi jarak jauh disebabake kesalahan nalika ngatur telpon menyang pawang otentikasi ing perpustakaan libc, sing nelpon
/usr/libexec/auth/login_style program maringaken argumen ing baris printah. Kalebu nalika nelpon login_style nggunakake parameter opsional "-s layanan", maringaken jeneng protokol diijini. Yen karakter "-" digunakake ing wiwitan jeneng panganggo, jeneng iki bakal dianggep minangka pilihan nalika login_style wis mbukak. Mulane, yen sampeyan nemtokake "-schallenge" utawa "-schallenge: passwd" minangka jeneng panganggo sajrone otentikasi, banjur login_style bakal nganggep panyuwunan kasebut minangka panyuwunan kanggo nggunakake pawang. S/Kunci.

Masalah iku S / Protokol Key ing login_style didhukung mung formal, nanging bener digatèkaké karo output saka tandha otentikasi sukses. Dadi, panyerang bisa dadi pangguna "-schallenge" lan ngliwati otentikasi lan entuk akses tanpa nemtokake tembung sandhi utawa kunci. Kabeh layanan jaringan sing nggunakake panggilan libc biasa kanggo otentikasi bisa kena pengaruh masalah kasebut. Contone, kemampuan kanggo ngliwati otentikasi dikonfirmasi ing smtpd (AUTH PLAIN), ldapd lan radiusd.

Kerentanan ora katon ing sshd, amarga nduweni proteksi tambahan kanthi mriksa pangguna ing sistem kasebut. Nanging, sshd bisa digunakake kanggo nyoba yen sistem rentan kanggo kerentanan - nalika ngakses jeneng pangguna "-sresponse: passwd", sambungan macet, amarga sshd ngenteni login_passwd kanggo ngasilake paramèter telpon (tantangan), lan login_passwd ngenteni transfer parameter sing ilang (jeneng "- sresponse" dijupuk minangka pilihan). Penyerang lokal sing potensial bisa nyoba ngliwati otentikasi ing utilitas su, nanging ngliwati jeneng "-sresponse" nyebabake proses kasebut kacilakan amarga bali pointer null nalika nglakokake fungsi getpwnam_r("-schallenge", ...) .

Kerentanan liyane:

  • CVE-2019-19520 - Eskalasi hak istimewa lokal liwat manipulasi utilitas xlock sing dilengkapi karo gendera sgid sing ngganti grup kasebut dadi "auth". Ing kode xlock, redefinisi jalur perpustakaan dilarang mung nalika ID pangguna (setuid) diganti, sing ngidini panyerang ngganti variabel lingkungan "LIBGL_DRIVERS_PATH" lan ngatur loading perpustakaan sing dienggo bareng, kode sing bakal dieksekusi. sawise escalation hak istimewa kanggo grup "auth".
  • CVE-2019-19522 - Ngidini pangguna lokal ing grup "auth" kanggo mbukak kode minangka ROOT nalika S / Key utawa bukti asli YubiKey diaktifake ing sistem (ora diaktifake minangka standar). Keanggotaan ing grup "auth", sing bisa diakses kanthi ngeksploitasi kerentanan xlock ing ndhuwur, ngidini file ditulis menyang direktori /etc/skey lan /var/db/yubikey. Contone, panyerang bisa nambah file /etc/skey/root anyar kanggo ngasilake kunci siji-wektu kanggo otentikasi root liwat S/Key.
  • CVE-2019-19519 - Kemungkinan kanggo nambah watesan sumber daya liwat manipulasi karo sarana su. Nalika nemtokake "-L" pilihan, kang gawe katut a cyclic Ambalan nyoba otentikasi ing cilik saka Gagal, kelas pangguna disetel mung sapisan lan ora ngreset ing sakteruse nyoba. Panyerang bisa nglakokake "su -l -L" ing upaya pisanan kanggo ngetik login wong liya kanthi kelas akun sing beda, nanging ing upaya kaping pindho kanggo kasil otentikasi miturut awake dhewe. Ing kahanan iki, pangguna bakal nyetel watesan sing cocog karo kelas pangguna sing ditemtokake ing upaya pisanan (contone, jumlah maksimum proses utawa ukuran memori kanggo proses). Cara kasebut mung bisa digunakake kanggo watesan utang saka pangguna sing ora duwe hak istimewa, amarga pangguna root kudu ana ing grup roda).

Kajaba iku, bisa dicathet implementasine ing OpenBSD cara anyar kanggo mriksa validitas telpon sistem, luwih complicating eksploitasi kerentanan. Cara kasebut ngidini telpon sistem dieksekusi mung yen diakses saka area memori sing wis kadhaptar sadurunge. Kanggo nandhani area memori ngajokaken telpon sistem anyar msyscall().

Source: opennet.ru