Ядро деңгээлиндеги кодду аткарууга мүмкүндүк берген eBPF ички системасындагы алсыздыктар Linux

eBPF ички системасында иштетүүчүлөрдү ядронун ичинде аткарууга мүмкүндүк берген эки жаңы алсыздык табылды. Linux JIT менен атайын виртуалдык машинада. Эки алсыздык тең изоляцияланган eBPF виртуалдык машинасынан тышкары ядро ​​​​артыкчылыктары менен кодду аткарууга мүмкүндүк берет. Көйгөйлөр жөнүндө маалыматты быйыл үч чабуулду көрсөткөн Pwn2Own сынагын өткөргөн Zero Day Initiative командасы жарыялады. Ubuntu Linux, мурда белгисиз болгон алсыздыктарды пайдаланган (eBPFтеги алсыздыктар бул чабуулдарга байланыштуубу же жокпу, кабарланган эмес).

  • CVE-2021-3490 - Аялуу eBPF ALU32де биттик ЖАНА, ЖЕ, жана XOR операцияларын аткарууда 32 бит чегинен тышкары текшерүүнүн жоктугунан келип чыгат. Чабуулчу бул катадан пайдаланып, бөлүнгөн буфердин чегинен тышкары маалыматтарды окуп жана жаза алат. XOR операцияларындагы көйгөй ядронун 5.7-rc1 версиясынан баштап, ЖАНА жана ЖЕ - 5.10-rc1ден баштап пайда болот.
  • CVE-2021-3489 - Аялуу шакек буферин ишке ашыруудагы катадан улам келип чыккан жана bpf_ringbuf_reserve функциясы бөлүнгөн эстутум аймагынын өлчөмү чыныгы өлчөмдөн азыраак болушу мүмкүндүгүн текшербегендигине байланыштуу. рингбуфтун. Көйгөй 5.8-rc1 чыккандан бери пайда болот.

Дистрибуциялардагы алсыздыктарды оңдоонун абалын төмөнкү баракчалардан көзөмөлдөөгө болот: Ubuntu, Debian, RHEL, Fedora, SUSE, Arch). Оңдоолор патчтар катары да жеткиликтүү (CVE-2021-3489, CVE-2021-3490). Пайдалануу мүмкүнчүлүгү колдонуучунун eBPF системалык чакыруусуна мүмкүнчүлүгүнө жараша болот. Мисалы, RHELдеги демейки конфигурацияда, алсыздыкты пайдалануу үчүн колдонуучудан CAP_SYS_ADMIN артыкчылыктары талап кылынат.

Ядродогу дагы бир алсыздыкты өзүнчө белгилеп кетүү керек. Linux — CVE-2021-32606, ал жергиликтүү колдонуучуга өзүнүн укуктарын rootко чейин кеңейтүүгө мүмкүндүк берет. Көйгөй ядродон баштап пайда болот. Linux 5.11 жана CAN ISOTP протоколун ишке ашыруудагы жарыш шартынан улам келип чыгат, ал CAN_ISOTP_SF_BROADCAST желегин иштетүүдө isotp_setsockopt() функциясында тийиштүү кулпулардын коюлбагандыгынан улам сокет байланыштыруу параметрлерин өзгөртүүгө мүмкүндүк берет.

ISOTP розеткасы жабылгандан кийин, алуучу розеткага байланыш күчүндө кала берет, алар менен байланышкан эстутум бошотулгандан кийин розетка менен байланышкан структураларды колдонууну уланта алат (isotp_sock структурасына чалуудан улам-акысыз колдонуу) isotp_rcv() чакырылганда мурунтан бошотулган). Берилиштерди манипуляциялоо аркылуу sk_error_report() функциясына көрсөткүчтү жокко чыгарып, өзүңүздүн кодуңузду ядро ​​деңгээлинде аткара аласыз.

Source: opennet.ru

DDoS коргоосу, VPS VDS серверлери бар сайттар үчүн ишенимдүү хостинг сатып алыңыз 🔥 DDoS коргоосу, VPS VDS серверлери бар ишенимдүү веб-сайт хостингин сатып алыңыз | ProHoster