Дар асл Linux Осебпазирӣ (CVE-2022-0847) муайян карда шуд, ки имкон медиҳад мундариҷаи кеши саҳифа барои ҳама гуна файлҳо, аз ҷумла онҳое, ки дар ҳолати танҳо хондан ҳастанд, бо парчами O_RDONLY кушода шудаанд ё дар системаҳои файлии дар ҳолати танҳо хондан насбшуда ҷойгиршуда, аз нав навишта шавад. Аз нигоҳи амалӣ, ин осебпазирӣ метавонад барои ворид кардани код ба равандҳои худсарона ё маълумоти вайроншуда дар файлҳои кушодашуда истифода шавад. Масалан, мундариҷаи файли authorized_keys барои раванди sshd метавонад тағир дода шавад. Барои санҷиш прототипи эксплойт дастрас аст.
Мушкилот бо шабеҳи осебпазирии муҳими Dirty COW, ки соли 2016 муайян шудааст, номи рамзии Dirty Pipe дода шудааст. Қайд карда мешавад, ки қубури Dirty Pipe аз нигоҳи хатар дар як сатҳ бо Dirty COW қарор дорад, аммо кораш хеле осонтар аст. осебпазирӣ ҳангоми таҳлили шикоятҳо дар бораи осеби даврии файлҳои аз шабака зеркашидашуда дар системае, ки архивҳои фишурдашударо аз сервери лог (37 зарар дар 3 моҳ дар системаи пурборшуда) зеркашӣ мекунад, ки бо истифода аз амалиёти splice() таҳия шудаанд, муайян карда шуд. ва кубурхои бе ном.
Осебпазирӣ аз ядро сар карда зоҳир мешавад Linux 5.8, ки моҳи августи соли 2020 бароварда шудааст, яъне он дар он мавҷуд аст Debian 11, аммо ба асли асосӣ таъсир намерасонад Ubuntu 20.04 LTS. Ядроҳои RHEL 8.x ва openSUSE/SUSE 15 дар аввал бар асоси шохаҳои кӯҳна сохта шудаанд, аммо эҳтимол дорад, ки мушкилот дар он ҷо нусхабардорӣ шуда бошад (ҳанӯз тафсилоти дақиқ нест). Шумо метавонед нашри навсозиҳои бастаҳоро ба ин тақсимот дар ин саҳифаҳо пайгирӣ кунед: Debian, СУСЕ, Ubuntu, RHEL, Fedora, Gentoo, Arch LinuxИслоҳи ин осебпазирӣ дар версияҳои 5.16.11, 5.15.25 ва 5.10.102 пешниҳод карда мешавад. Ислоҳ инчунин дар ядрои истифодашуда дар платформа дохил карда шудааст. Android.
осебпазирӣ аз сабаби набудани инициализатсияи арзиши "buf->flags" дар коди функсияҳои copy_page_to_iter_pipe() ва push_pipe(), сарфи назар аз он, ки хотира ҳангоми ҷудо кардани сохтор тоза карда намешавад ва бо муайян. манипуляцияҳо бо қубурҳои беном, "buf-> flags" метавонад арзиши амалиёти дигарро дар бар гирад. Бо истифода аз ин хусусият, як корбари маҳаллӣ беимтиёз метавонад пайдоиши арзиши PIPE_BUF_FLAG_CAN_MERGE дар парчам ба даст орад, ки ба шумо имкон медиҳад, ки маълумотро дар кэши саҳифа тавассути навиштани маълумоти нав ба қубури (қубури) махсус омодашудаи номнамуд.
Барои ҳамла файли мавриди ҳадаф бояд хондашаванда бошад ва азбаски ҳангоми навиштан ба қубур ҳуқуқи дастрасӣ тафтиш карда намешавад, иваз кардани кэши саҳифа мумкин аст, аз ҷумла барои файлҳое, ки дар қисмҳои танҳо барои хондан ҷойгир шудаанд (масалан, барои файлҳои c CD-ROM). Пас аз иваз кардани маълумот дар кэши саҳифа, раванд ҳангоми хондани маълумот аз файл на воқеиро, балки маълумоти ивазшударо мегирад.
Амалиёт ба эҷоди қубури номашом ва пур кардани он бо маълумоти худсарона барои ноил шудан ба танзими парчами PIPE_BUF_FLAG_CAN_MERGE дар ҳама сохторҳои ҳалқаи бо он алоқаманд аст. Баъдан, маълумот аз қубур хонда мешавад, аммо парчам дар ҳама ҳолатҳои сохтори pipe_buffer дар сохторҳои ҳалқаи pipe_inode_info гузошта мешавад. Сипас занги splice() барои хондани маълумот аз файли мавриди ҳадаф ба қубури номношуда аз ҷуброни зарурӣ оғоз карда мешавад. Вақте ки маълумот ба ин қубури беном навишта мешавад, парчами PIPE_BUF_FLAG_CAN_MERGE ба ҷои сохтани як мисоли нави сохтори pipe_buffer маълумотро дар кэши саҳифа аз нав менависад.
Манбаъ: opennet.ru
