Неуспешно копирање: Рањивост у Линуксу која омогућава root приступ путем кеширања странице

Кључне тачке:
  • Нападач отвара AF_ALG сокет и захтева алгоритам за аутентификацију.
  • Нападач користи splice() да би у сокет убацио странице из кеша циљне датотеке (нпр. /usr/bin/su). Ове странице затим постају део излазне хеш листе (за писање).
  • Нападач шаље поруку (sendmsg) са злонамерно дизајнираним Придруженим аутентификованим подацима (AAD), где бајтови 4-7 садрже податке које желе да упишу (нпр. злонамерни код).
  • Када се покрене дешифровање, authencesn узима та 4 бајта из AAD-а и привремено их уписује на крај бафера. Због оптимизације на месту, овај крај бафера директно указује на страницу кеша датотеке.
  • Криптографска операција не успева (шифровани текст је неважећи), али је писање од 4 бајта већ извршено и никада се не враћа уназад.
  • Нападач понавља процес да би убризгао свој код. Када се изврши /usr/bin/su, језгро учитава модификовану верзију из меморије, извршавајући убризгани код са root привилегијама.

копирање неуспешно

Безбедност Линукса се суочава са још једним изазовом након открића... рањивост CVE-2026-31431, названа „Неуспешно копирање“ од стране истраживача у Xint Code-у. Далеко од тога да је теоретска грешка, овај проблем са дизајном Омогућава локалном кориснику без привилегија да подигне своја дозвола и добије потпун приступ. као суперкорисник на предвидљив и тих начин.

Истраживачи напомињу да је ова рањивост успешно искоришћена у водећим дистрибуцијама као што су Ubuntu, Amazon Linux, RHEL и SUSE, што потврђује да било који систем који користи кернел новији од верзије 4.14 и наставити Омогућавање подршке за AF_ALG сокете је потенцијално рањиво на овај напад.

Операције на месту и прекорачење кеша странице

Што се тиче пресуде, наводи се да је ова Датира из оптимизације уведене 2017. године у оквиру криптографског API-ја језгра (AF_ALG). Ова модификација Желео сам да елиминишем непотребно баферовање. извршавање операција аутентификованог шифровања (AEAD) директно у истом меморијском простору, што је познато као операције „на месту“.

El Критичан проблем настаје када се ова оптимизација комбинује са функцијом splice(), Ова метода преноси податке између дескриптора датотека тако што директно преноси референце на кеш странице језгра уместо физичког копирања података. Приликом захтева за дешифровање, структура меморије је конфигурисана тако да је одредишни бафер, који би требало да буде привремени простор за корисника, на крају био директно повезан са страницама кеша које садрже податке системских датотека.

Аутентификација и писање ван граница меморије

El Коначни окидач рањивости лежи у аномалном понашању алгоритма за аутентификацију. За разлику од других криптографских рутина које строго поштују границе својих одредишних бафера, Овај специфични алгоритам користи меморијски простор корисника као привремено радно подручје. (бележница) за преуређивање бајтних низова током израчунавања ознаке за аутентификацију.

У овом процесу, алгоритам уписује четири бајта изван утврђеног ограничења за излазну област. Због оптимизације на месту и ланца референци који је креирао splice(),Ово наизглед безопасно писање прелази границе корисникове меморије и директно се појављује на страници кеша језгра повезаној са датотеком која се обрађује.

Овај ланац логичких грешака Омогућава нападачу да произвољно пребрише четири бајта у одређеним позицијама кеша страница за било коју датотеку коју може да прочита. Слањем низа израчунатих захтева, нападач може убацити злонамерни код у меморијској верзији критичних извршних датотека са подешеним suid битом, као што је алат за пребацивање корисника.

Пошто све операције читања прво упитавају кеш странице, следећи пут када се легитимни услужни програм позове, Систем ће извршити убризгани код из меморије, додељујући тренутне root привилегије. без икакве измене физичке датотеке на чврстом диску. Још алармантније је то што, пошто изолација контејнера дели кеш странице основног хоста, ова рањивост служи као директна капија за избегавање виртуелизованих окружења попут Kubernetes кластера и угрожавање примарног чвора.

Закрпе за хитне случајеве и решења за ублажавање

С обзиром на озбиљност ове пресуде, Тимови за одржавање су распоредили хитне надоградње, где се налази дефинитивно решење Вратите оптимизацију на месту унутар датотеке algif_aead.c, строго одвајајући изворне и одредишне листе меморије да би се спречило да кеширане странице заврше у путањама у које се може писати.

Ове закрпе су већ интегрисане у језгра 6.18.22, 6.19.12 и 7.0 и враћају се у гране за дугорочну подршку. За администраторе који не могу одмах поново покренути или ажурирати своје сервере, препоручује се да онемогуће модул језгра algif_aead ако је компајлиран екстерно, или да озбиљно ограниче креирање AF_ALG сокета користећи безбедносне политике као што је SELinux, штит који је, на пример, заштитио тренутне Андроид уређаје од ове претње.

На крају, ако сте заинтересовани да сазнате више, детаље можете пронаћи на следећем линку.


Додај као жељени извор на Гуглу