Уязвимост Π² подсистСмата eBPF, която позволява изпълнСниС Π½Π° ΠΊΠΎΠ΄ Π½Π° Π½ΠΈΠ²ΠΎ ядро ​​на Linux

Π‘Π΅ΡˆΠ΅ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΡ†ΠΈΡ€Π°Π½Π° уязвимост (CVE-2021-4204) Π² подсистСмата eBPF, която позволява стартиранС Π½Π° ΠΌΠ°Π½ΠΈΠΏΡƒΠ»Π°Ρ‚ΠΎΡ€ΠΈ Π²ΡŠΡ‚Ρ€Π΅ Π² ядрото Π½Π° 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. ΠšΠ°Ρ‚ΠΎ Π·Π°ΠΎΠ±ΠΈΠΊΠΎΠ»Π½ΠΎ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ Π·Π° Π±Π»ΠΎΠΊΠΈΡ€Π°Π½Π΅ Π½Π° уязвимостта, ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° Π΄Π΅Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ€Π°Ρ‚Π΅ ΠΈΠ·ΠΏΡŠΠ»Π½Π΅Π½ΠΈΠ΅Ρ‚ΠΎ Π½Π° BPF ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΈ ΠΎΡ‚ Π½Π΅ΠΏΡ€ΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΡ€ΠΎΠ²Π°Π½ΠΈ ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΈΡ‚Π΅Π»ΠΈ с ΠΊΠΎΠΌΠ°Π½Π΄Π°Ρ‚Π° "sysctl -w kernel.unprivileged_bpf_disabled=1".

Π˜Π·Ρ‚ΠΎΡ‡Π½ΠΈΠΊ: opennet.ru

ДобавянС Π½Π° Π½ΠΎΠ² ΠΊΠΎΠΌΠ΅Π½Ρ‚Π°Ρ€