Π£ΡΠ·Π²ΠΈΠΌΠΎΡΡ‚ΡŒ Π² подсистСмС netfilter, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰Π°Ρ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ ΠΊΠΎΠ΄ Π½Π° ΡƒΡ€ΠΎΠ²Π½Π΅ ядра Linux

Π’ Netfilter, подсистСмС ядра Linux, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΠΎΠΉ для Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Π°Ρ†ΠΈΠΈ ΠΈ ΠΌΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ сСтСвых ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ², выявлСна ΡƒΡΠ·Π²ΠΈΠΌΠΎΡΡ‚ΡŒ (CVE-2022-25636), ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰Π°Ρ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ ΠΊΠΎΠ΄ Π½Π° ΡƒΡ€ΠΎΠ²Π½Π΅ ядра. ЗаявлСно ΠΎ ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΊΠ΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π° эксплоита, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰Π΅Π³ΠΎ Π»ΠΎΠΊΠ°Π»ΡŒΠ½ΠΎΠΌΡƒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŽ ΠΏΠΎΠ΄Π½ΡΡ‚ΡŒ свои ΠΏΡ€ΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΠΈ Π² Ubuntu 21.10 c ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Ρ‘Π½Π½Ρ‹ΠΌ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠΎΠΌ Π·Π°Ρ‰ΠΈΡ‚Ρ‹ KASLR. ΠŸΡ€ΠΎΠ±Π»Π΅ΠΌΠ° проявляСтся начиная с ядра 5.4. Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΏΠΎΠΊΠ° доступно Π² Π²ΠΈΠ΄Π΅ ΠΏΠ°Ρ‚Ρ‡Π° (ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚ΠΈΡ€ΡƒΡŽΡ‰ΠΈΠ΅ выпуски ядра Π½Π΅ сформированы). ΠŸΡ€ΠΎΡΠ»Π΅Π΄ΠΈΡ‚ΡŒ Π·Π° ΠΏΡƒΠ±Π»ΠΈΠΊΠ°Ρ†ΠΈΠΉ обновлСния ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ² Π² дистрибутивах ΠΌΠΎΠΆΠ½ΠΎ Π½Π° Π΄Π°Π½Π½Ρ‹Ρ… страницах: Debian, SUSE, Ubuntu, RHEL, Fedora, Gentoo, Arch Linux.

Π£ΡΠ·Π²ΠΈΠΌΠΎΡΡ‚ΡŒ Π²Ρ‹Π·Π²Π°Π½Π° ошибкой вычислСния Ρ€Π°Π·ΠΌΠ΅Ρ€Π° массива flow->rule->action.entries Π² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ nft_fwd_dup_netdev_offload (ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π° Π² Ρ„Π°ΠΉΠ»Π΅ net/netfilter/nf_dup_netdev.c), которая ΠΌΠΎΠΆΠ΅Ρ‚ привСсти ΠΊ записи ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΠΈΡ€ΡƒΠ΅ΠΌΡ‹Ρ… Π°Ρ‚Π°ΠΊΡƒΡŽΡ‰ΠΈΠΌ Π΄Π°Π½Π½Ρ‹Ρ… Π² ΠΎΠ±Π»Π°ΡΡ‚ΡŒ памяти Π·Π° Π³Ρ€Π°Π½ΠΈΡ†Π΅ΠΉ Π²Ρ‹Π΄Π΅Π»Π΅Π½Π½ΠΎΠ³ΠΎ Π±ΡƒΡ„Π΅Ρ€Π°. Ошибка проявляСтся ΠΏΡ€ΠΈ настройкС ΠΏΡ€Π°Π²ΠΈΠ» «dup» ΠΈ «fwd» Π² Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠ°Ρ…, для ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… примСняСтся Π°ΠΏΠΏΠ°Ρ€Π°Ρ‚Π½ΠΎΠ΅ ускорСниС ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ² (offload). Π’Π°ΠΊ ΠΊΠ°ΠΊ ΠΏΠ΅Ρ€Π΅ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ Π½Π° этапС Π΄ΠΎ создания ΠΏΡ€Π°Π²ΠΈΠ»Π° ΠΏΠ°ΠΊΠ΅Ρ‚Π½ΠΎΠ³ΠΎ Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Π° ΠΈ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ offload, ΡƒΡΠ·Π²ΠΈΠΌΠΎΡΡ‚ΡŒ Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΠΌΠ° ΠΈ для сСтСвых устройств, Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‰ΠΈΡ… Π°ΠΏΠΏΠ°Ρ€Π°Ρ‚Π½ΠΎΠ΅ ускорСниС, Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ loopback-интСрфСйс.

ΠžΡ‚ΠΌΠ΅Ρ‡Π°Π΅Ρ‚ΡΡ, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° достаточно проста Π² эксплуатации, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ выходящиС Π·Π° ΠΏΡ€Π΅Π΄Π΅Π»Ρ‹ Π±ΡƒΡ„Π΅Ρ€Π° значСния ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΠ΅Ρ€Π΅Π·Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ Π½Π° структуру net_device, Π° Π΄Π°Π½Π½Ρ‹Π΅ ΠΎ пСрСзаписанном Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΈ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°ΡŽΡ‚ΡΡ Π² пространство ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ, Ρ‡Ρ‚ΠΎ позволяСт ΡƒΠ·Π½Π°Ρ‚ΡŒ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ для ΡΠΎΠ²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ Π°Ρ‚Π°ΠΊΠΈ адрСса Π² памяти. Для эксплуатации уязвимости трСбуСтся созданиС ΠΎΠΏΡ€Π΅Π΄Π΅Π»Ρ‘Π½Π½Ρ‹Ρ… ΠΏΡ€Π°Π²ΠΈΠ» Π² nftables, Ρ‡Ρ‚ΠΎ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΡ€ΠΈ Π½Π°Π»ΠΈΡ‡ΠΈΠΈ ΠΏΡ€ΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΠΉ CAP_NET_ADMIN, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Ρ‹ Π½Π΅ΠΏΡ€ΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΌ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ Π² ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΠΌ сСтСвом пространствС ΠΈΠΌΡ‘Π½ (network namespaces). Π£ΡΠ·Π²ΠΈΠΌΠΎΡΡ‚ΡŒ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ использована для Π°Ρ‚Π°ΠΊ Π½Π° систСмы ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π½ΠΎΠΉ изоляции.

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

Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ