Linux kernel VFS ahultasuna pribilegioak handitzea ahalbidetzen duena

Ahultasun bat (CVE-2022-0185) identifikatu da Linux kernelak eskaintzen duen Filesystem Context APIan, eta horri esker, tokiko erabiltzaile bati sisteman root pribilegioak lor ditzake. Arazoa identifikatu duen ikertzaileak Ubuntu 20.04 konfigurazio lehenetsian kodea root gisa exekutatzeko aukera ematen duen ustiapen baten erakustaldia argitaratu du. Ustiapen-kodea GitHub-en argitaratzea aurreikusita dago, banaketak ahultasuna konpontzen duen eguneraketa bat kaleratu eta astebete barru.

Ahultasuna VFS-ko legacy_parse_param() funtzioan dago eta Fitxategien Testuinguruaren APIa onartzen ez duten fitxategi-sistemetan emandako parametroen gehienezko tamaina behar bezala egiaztatzeak huts egiteak eragiten du. Handiegia den parametro bat pasatzeak idatzi beharreko datuen tamaina kalkulatzeko erabiltzen den aldagai osoaren gainezkatzea eragin dezake - kodeak "if (len > PAGE_SIZE - 2 - size)" buffer gainezkatzea du, eta horrek ez du. funtziona ezazu tamaina-balioa 4094 baino handiagoa bada. Beheko mugatik osoko gainezka egiteko (osokoen underflow, 4096 - 2 - 4095 unsigned int-era igortzean, emaitza 2147483648 da).

Errore honek aukera ematen du, bereziki diseinatutako fitxategi-sistemaren irudi batera sartzean, buffer gainezka egitea eta nukleoaren datuak gainidaztea esleitutako memoria-eremuari jarraituz. Ahultasuna ustiatzeko, CAP_SYS_ADMIN eskubideak izan behar dituzu, hau da. administratzaile ahalmenak. Arazoa da pribilegiorik gabeko erabiltzaile batek baimen horiek lor ditzakeela edukiontzi isolatu batean, sistemak erabiltzailearen izen-espazioetarako euskarria gaituta badu. Adibidez, erabiltzailearen izen-espazioak lehenespenez gaituta daude Ubuntun eta Fedoran, baina ez daude gaituta Debian eta RHEL-en (edukiontzien isolamendu plataformak erabiltzen ez badira behintzat).

Arazoa Linux kernel 5.1etik agertzen da eta atzoko 5.16.2, 5.15.16, 5.10.93, 5.4.173 eguneraketetan konpondu zen. Ahultasuna konpontzen duten paketeen eguneraketak dagoeneko kaleratu dira RHEL, Debian, Fedora eta Ubunturentzat. Konponketa ez dago oraindik eskuragarri Arch Linux, Gentoo, SUSE eta openSUSE-n. Edukiontzien isolamendua erabiltzen ez duten sistemen segurtasun konponbide gisa, sysctl "user.max_user_namespaces" balioa 0 gisa ezar dezakezu: echo "user.max_user_namespaces=0" > /etc/sysctl.d/userns.conf # sysctl -p /etc/ sysctl.d/userns.conf

Iturria: opennet.ru

Gehitu iruzkin berria