Те откриха VFS уязвимост в Linux, която позволява ескалация на привилегиите

Преди няколко дни беше публикувана новина, че уязвимостта е идентифицирана (вече каталогизиран под CVE-2022-0185) иn API на контекста на файловата система предоставена от ядро на Linux което може да позволи на локален потребител да получи root привилегии в системата.

Споменава се, че проблемът е, че непривилегирован потребител може да получи такива разрешения в изолиран контейнер ако поддръжката за потребителски пространства от имена е разрешена в системата.

Например, потребителските пространства от имена са активирани по подразбиране в Ubuntu и Fedora, но не са активирани в Debian и RHEL (освен ако не се използват платформи за изолация на контейнери). В допълнение към ескалацията на привилегиите, уязвимостта може да се използва и за излизане от изолиран контейнер, ако контейнерът има правомощия CAP_SYS_ADMIN.

Уязвимост съществува във функцията legacy_parse_param() във VFS и се дължи на липса на правилно валидиране на максималния размер на предоставените параметри на файлови системи, които не поддържат API на контекста на файловата система.

Наскоро няколко приятели от моя CTF Crusaders of Rust екип и аз се сблъскахме с 0-дневно препълване на купчина на ядрото на Linux. Открихме грешката чрез fuzzing със syzkaller и бързо я разработихме в експлойт на Ubuntu LPE. След това го пренаписахме, за да избягаме и да руутваме втвърдената CTF инфраструктура Kubernetes на Google. Тази грешка засяга всички версии на ядрото от 5.1 (5.16 в момента е в процес на изпълнение) и й е назначен CVE-2022-0185. Вече съобщихме за това на пощенския списък за дистрибуция и сигурност на Linux и грешката беше коригирана към пускането на тази статия.

Предаването на твърде голям параметър може да причини препълване на целочислената променлива, използвана за изчисляване на размера на записаните данни; кодът има проверка за препълване на буфера "if (len > PAGE_SIZE - 2 - size)", която не работи, ако стойността на размера е по-голяма от 4094 поради преливане на цяло число през долната граница (препълване на цяло число, когато преобразува 4096 – 2 – 4095 към unsigned int, получава 2147483648).

Тази грешка позволява при достъп до специално създадено FS изображение, причиняват препълване на буфера и презаписват данните на ядрото след разпределената област на паметта. За да се използва уязвимостта, са необходими права CAP_SYS_ADMIN, т.е. администраторски права.

От 2022 г. нашите съотборници решиха да намерят ден 0 през 2022 г. Не бяхме съвсем сигурни как точно да започнем, но тъй като екипът ни имаше висока степен на запознаване с уязвимостите на ядрото на Linux, решихме просто да купим някои специални сървъри. и стартирайте syzkaller fuzzer на Google. На 6 януари в 22:30 PST, chop0 получи следния доклад за грешка на KASAN в legacy_parse_param: slab-out-of-bounds Напишете в legacy_parse_param. Изглежда, че syzbot откри този проблем само 6 дни по-рано при fuzzing Android, но проблемът не беше решен и наивно си помислихме, че никой друг не е забелязал.

И накрая, заслужава да се спомене, че проблемът се проявява от версията на ядрото на Linux 5.1 и беше решен в актуализациите, които бяха пуснати преди няколко дни във версии 5.16.2, 5.15.16, 5.10.93, 5.4.173.

Освен, че актуализациите на пакета за уязвимости вече са пуснати за RHELDebianFedora и Ubuntu. Докато решението все още не е налично на Arch LinuxGentooSUSE y openSUSE.

В тези случаи се споменава, че като решение за сигурност за системи, които не използват изолация на контейнери, можете да зададете стойността на sysctl "user.max_user_namespaces" на 0:

Изследователят, идентифицирал проблема, публикува демонстрация на експлойт que позволява стартиране на код като root на Ubuntu 20.04 в конфигурацията по подразбиране. Планирано е това експлойт кодът се публикува в GitHub в рамките на една седмица след това че дистрибуциите пускат актуализация, която коригира уязвимостта.

Накрая ако се интересувате да научите повече за това, можете да проверите подробностите в следваща връзка.


Оставете вашия коментар

Вашият имейл адрес няма да бъде публикуван. Задължителните полета са отбелязани с *

*

*

  1. Отговорник за данните: AB Internet Networks 2008 SL
  2. Предназначение на данните: Контрол на СПАМ, управление на коментари.
  3. Легитимация: Вашето съгласие
  4. Съобщаване на данните: Данните няма да бъдат съобщени на трети страни, освен по законово задължение.
  5. Съхранение на данни: База данни, хоствана от Occentus Networks (ЕС)
  6. Права: По всяко време можете да ограничите, възстановите и изтриете информацията си.

  1.   Galego каза той

    Още една причина да не пипате щрак с пръчка.