Осебпазирӣ дар зерсистемаи eBPF, ки ба иҷрои код дар сатҳи ядрои Linux имкон медиҳад

Дар зерсистемаи eBPF осебпазирӣ (CVE-2021-4204) муайян карда шудааст, ки ба шумо имкон медиҳад коркардкунандагонро дар дохили ядрои Linux дар мошини махсуси виртуалӣ бо JIT иҷро кунед, ки ба корбари беимтиёзи маҳаллӣ имкон медиҳад, ки ба афзоиши имтиёз ноил шавад ва рамзи худро дар Сатҳи ядрои Linux. Мушкилот аз замони ядрои Linux 5.8 пайдо мешавад ва ҳалнашуда боқӣ мемонад (аз ҷумла нашри 5.16). Ҳолати навсозиҳое, ки барои ислоҳи мушкилот дар тақсимот тавлид мешаванд, дар ин саҳифаҳо пайгирӣ кардан мумкин аст: Debian, RHEL, SUSE, Fedora, Ubuntu, Arch. Эълон шудааст, ки эксплоити корӣ эҷод шудааст, ки қарор аст 18 январ нашр шавад (корбарон ва таҳиягарон барои ислоҳи осебпазирӣ як ҳафта вақт дода шудаанд).

Ин осебпазирӣ дар натиҷаи санҷиши нодурусти барномаҳои eBPF, ки барои иҷро интиқол дода шудаанд, ба вуҷуд омадааст. Зерсистемаи eBPF вазифаҳои ёрирасонро таъмин мекунад, ки истифодаи дурусти онҳо аз ҷониби верфикатори махсус тасдиқ карда мешавад. Баъзе функсияҳо интиқоли арзиши PTR_TO_MEM-ро ҳамчун аргумент талаб мекунанд ва барои пешгирӣ кардани фаромадани эҳтимолии буфер, тафтишкунанда бояд андозаи хотираи бо аргумент алоқамандро донад. Барои функсияҳои bpf_ringbuf_submit ва bpf_ringbuf_discard, маълумот дар бораи андозаи хотираи интиқолшуда ба тафтишкунанда гузориш дода нашуд, ки он метавонад барои баргардонидани минтақаҳои хотираи берун аз ҳудуди буферӣ ҳангоми иҷрои рамзи махсус тарҳрезишудаи eBPF истифода шавад.

Барои анҷом додани ҳамла, корбар бояд барномаи BPF-и худро бор кунад ва бисёре аз дистрибюторҳои охирини Linux ин қобилиятро ба таври нобаёнӣ масдуд мекунанд (аз ҷумла дастрасии беимтиёз ба eBPF ҳоло дар худи ядро ​​​​бо нобаёнӣ манъ аст, аз версияи 5.16). Масалан, осебпазириро дар конфигуратсияи пешфарз дар Ubuntu 20.04 LTS истифода бурдан мумкин аст, аммо дар муҳитҳои Ubuntu 22.04-dev, Debian 11, openSUSE 15.3, RHEL 8.5, SUSE 15-SP4 ва Fedora 33 он танҳо дар сурате пайдо мешавад, ки агар маъмур танзим карда бошад. параметри kernel.unprivileged_bpf_disabled ба 0. Ҳамчун роҳи ҳал барои бастани осебпазирӣ, шумо метавонед бо фармони "sysctl -w kernel.unprivileged_bpf_disabled=1" иҷрои барномаҳои BPF аз ҷониби корбарони беимтиёзро пешгирӣ кунед.

Манбаъ: opennet.ru

Илова Эзоҳ