0 dienu ievainojamība n_gsm draiverī, kas ļauj izpildīt kodu Linux kodola līmenī

Publiskajā domēnā ir atklāti divi ekspluatācijas veidi, kas ietver iepriekš nezināmu ievainojamību n_gsm draiverī, kas ir daļa no Linux kodola. Ievainojamība ļauj nepievilinātam lokālajam lietotājam izpildīt kodu kodola līmenī un palielināt savas privilēģijas sistēmā. Nav piešķirts CVE identifikators. Problēma pagaidām nav novērsta.

n_gsm draiveris nodrošina GSM 07.10 protokola ieviešanu, ko izmanto GSM modemos, lai multipleksētu savienojumus ar seriālo portu. Ievainojamība ir radusies sacensību nosacījuma dēļ GSMIOC_SETCONF_DLCI ioctl apdarinātājā, ko izmanto datu saites savienojuma identifikatora (DLCI) konfigurācijas atjaunināšanai. Veicot manipulācijas ar ioctl, varat piekļūt atmiņai pēc tās atbrīvošanas (izmantot pēc brīvas).

Ekspluatāciju var izmantot sistēmās ar Linux kodoliem no 5.15 līdz 6.5. Piemēram, veiksmīga root piekļuve ir demonstrēta Fedora, Ubuntu 22.04 ar 6.5 kodolu un Debian 12 ar 6.1 kodolu. Sākot ar kodolu 6.6, darbībai ir nepieciešamas CAP_NET_ADMIN atļaujas. Kā risinājumu ievainojamības bloķēšanai varat novērst n_gsm kodola moduļa automātisku ielādi, failam /etc/modprobe.d/blacklist.conf pievienojot rindiņu “blacklist n_gsm”.

Zīmīgi, ka janvārī tika atklāta informācija par citu ievainojamību (CVE-2023-6546) n_gsm draiverī, kurai ir publiski pieejams arī ļaunprātīgs risinājums. Šī ievainojamība nepārklājas ar pirmo problēmu, lai gan to izraisa arī piekļuve atmiņai pēc atbrīvošanas, strādājot ar gsm_dlci struktūru, bet gan GSMIOC_SETCONF ioctl apdarinātājā. Problēma tika novērsta pagājušā gada augustā (labojums tika iekļauts kodolā 6.5).

Avots: opennet.ru

Pievieno komentāru