Linux nüvəsinin eBPF alt sistemində zəifliklər

eBPF altsistemində Linux nüvəsi daxilində JIT ilə xüsusi virtual maşında icra edilən, alt sistemlərin işini izləmək, təhlil etmək və trafikin idarə edilməsi üçün işləyiciləri işə salmağa imkan verən zəiflik (CVE-2021-29154) müəyyən edilib. yerli istifadəçi öz kodunun nüvə səviyyəsində icrasına nail olmaq üçün. Problem 5.11.12 (daxil olmaqla) buraxılışına qədər görünür və hələ paylamalarda (Debian, Ubuntu, RHEL, Fedora, SUSE, Arch) düzəldilməyib. Düzəliş yamaq kimi mövcuddur.

Zəifliyi müəyyən edən tədqiqatçıların fikrincə, onlar imtiyazsız istifadəçinin istifadə edə biləcəyi 32 və 64 bitlik x86 sistemləri üçün istismarın işləyən prototipini hazırlaya biliblər. Bununla belə, Red Hat qeyd edir ki, problemin ciddiliyi eBPF sistem zənginin istifadəçi üçün əlçatan olub-olmamasından asılıdır. Məsələn, defolt konfiqurasiyada RHEL və əksər digər Linux paylamalarında BPF JIT aktivləşdirildikdə və istifadəçinin CAP_SYS_ADMIN hüquqları varsa, zəiflikdən istifadə edilə bilər. Çözüm olaraq, BPF JIT-i deaktiv etmək tövsiyə olunur: echo 0 > /proc/sys/net/core/bpf_jit_enable

Problem, JIT kompilyatorunun maşın kodunun yaradılması prosesi zamanı filial təlimatları üçün ofsetin hesablanmasında səhvdən qaynaqlanır. Xüsusilə, filial təlimatlarını yaradan zaman, optimallaşdırma mərhələsindən keçdikdən sonra ofsetin dəyişə biləcəyi nəzərə alınmır. Bu qüsur anomal maşın kodu yaratmaq və onu nüvə səviyyəsində icra etmək üçün istifadə edilə bilər.

Maraqlıdır ki, bu, eBPF alt sistemində son vaxtlar yeganə zəiflik deyil. Martın sonunda nüvədə daha iki boşluq (CVE-2020-27170, CVE-2020-27171) müəyyən edildi ki, bu da nüvə yaddaşının məzmununu təyin etməyə imkan verən Spectre sinif zəifliklərindən qorunmaq üçün eBPF-dən istifadə etməyə imkan verir. müəyyən əməliyyatların spekulyativ icrasına şərait yaradılması nəticəsində . Spectre hücumu imtiyazlı kodda təlimatların spekulyativ icrasına səbəb olan müəyyən əmrlər ardıcıllığının olmasını tələb edir. eBPF-də icra üçün ötürülən BPF proqramları ilə manipulyasiyalar vasitəsilə bu cür təlimatları yaratmağın bir neçə yolu tapıldı.

CVE-2020-27170 zəifliyi, spekulyativ əməliyyatların bufer sərhədlərindən kənar əraziyə daxil olmasına səbəb olan BPF yoxlayıcısında göstərici manipulyasiyasından qaynaqlanır. CVE-2020-27171 zəifliyi göstəricilərlə işləyərkən buferdən kənar verilənlərə spekulyativ girişə səbəb olan tam ədədin aşağı axını xətası ilə bağlıdır. Bu problemlər artıq 5.11.8, 5.10.25, 5.4.107, 4.19.182 və 4.14.227 nüvə buraxılışlarında aradan qaldırılıb və həmçinin əksər Linux paylamaları üçün nüvə yeniləmələrinə daxil edilib. Tədqiqatçılar imtiyazsız istifadəçiyə nüvə yaddaşından məlumat çıxarmağa imkan verən eksploit prototipi hazırlayıblar.

Mənbə: opennet.ru

Добавить комментарий