Уязвимости Dirty Frag, ΠΊΠΎΠΈΡ‚ΠΎ промСнят кСша Π½Π° страницитС, Π·Π° Π΄Π° ΠΏΠΎΠ»ΡƒΡ‡Π°Ρ‚ root Π΄ΠΎΡΡ‚ΡŠΠΏ във всички Linux дистрибуции.

Π’ ядрото Π½Π° Linux са ΠΎΡ‚ΠΊΡ€ΠΈΡ‚ΠΈ Π΄Π²Π΅ уязвимости. Π’Π΅Π·ΠΈ уязвимости са ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΈ ΠΏΠΎ СстСството си Π½Π° уязвимостта Copy Fail, Ρ€Π°Π·ΠΊΡ€ΠΈΡ‚Π° ΠΏΡ€Π΅Π΄ΠΈ няколко Π΄Π½ΠΈ, Π½ΠΎ засягат Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΈ подсистСми - xfrm-ESP ΠΈ RxRPC. Π’Π°Π·ΠΈ сСрия ΠΎΡ‚ уязвимости Π΅ с ΠΊΠΎΠ΄ΠΎΠ²ΠΎ ΠΈΠΌΠ΅ Dirty Frag (Π½Π°Ρ€ΠΈΡ‡Π°Π½Π° ΠΎΡ‰Π΅ Copy Fail 2). Π’Π΅Π·ΠΈ уязвимости позволяват Π½Π° Π½Π΅ΠΏΡ€ΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΡ€ΠΎΠ²Π°Π½ ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΈΡ‚Π΅Π» Π΄Π° ΠΏΠΎΠ»ΡƒΡ‡ΠΈ root ΠΏΡ€Π°Π²Π°, ΠΊΠ°Ρ‚ΠΎ ΠΏΡ€Π΅Π·Π°ΠΏΠΈΡˆΠ΅ Π΄Π°Π½Π½ΠΈ Π·Π° процСса Π² кСша Π½Π° страницитС. Налична Π΅ Сксплойт, ΠΊΠΎΠΉΡ‚ΠΎ Ρ€Π°Π±ΠΎΡ‚ΠΈ Π½Π° всички Ρ‚Π΅ΠΊΡƒΡ‰ΠΈ Linux дистрибуции. Уязвимостта бСшС Ρ€Π°Π·ΠΊΡ€ΠΈΡ‚Π° ΠΏΡ€Π΅Π΄ΠΈ ΠΏΡƒΠ±Π»ΠΈΠΊΡƒΠ²Π°Π½Π΅Ρ‚ΠΎ Π½Π° ΠΊΠΎΡ€Π΅ΠΊΡ†ΠΈΠΈ, Π½ΠΎ Π΅ Π½Π°Π»ΠΈΡ‡Π½ΠΎ Π·Π°ΠΎΠ±ΠΈΠΊΠΎΠ»Π½ΠΎ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅.

Dirty Frag ΠΎΠ±Ρ…Π²Π°Ρ‰Π° Π΄Π²Π΅ Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΈ уязвимости: ΠΏΡŠΡ€Π²Π°Ρ‚Π° Π² ΠΌΠΎΠ΄ΡƒΠ»Π° xfrm-ESP, ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½ Π·Π° ускоряванС Π½Π° ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈΡ‚Π΅ ΠΏΠΎ IPsec ΠΊΡ€ΠΈΠΏΡ‚ΠΈΡ€Π°Π½Π΅ с ΠΏΠΎΠΌΠΎΡ‰Ρ‚Π° Π½Π° ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π° ESP (Encapsulating Security Payload), ΠΈ Π²Ρ‚ΠΎΡ€Π°Ρ‚Π° Π² Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€Π° RxRPC, ΠΊΠΎΠΉΡ‚ΠΎ ΠΈΠΌΠΏΠ»Π΅ΠΌΠ΅Π½Ρ‚ΠΈΡ€Π° сСмСйството сокСти AF_RXRPC ΠΈ СдноимСнния RPC ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ», Ρ€Π°Π±ΠΎΡ‚Π΅Ρ‰ ΠΏΡ€Π΅Π· UDP. Всяка уязвимост, Ρ€Π°Π·Π³Π»Π΅Π΄Π°Π½Π° ΠΏΠΎΠΎΡ‚Π΄Π΅Π»Π½ΠΎ, позволява root ΠΏΡ€Π°Π²Π°. Уязвимостта xfrm-ESP ΠΏΡ€ΠΈΡΡŠΡΡ‚Π²Π° Π² ядрото Π½Π° Linux ΠΎΡ‚ януари 2017 Π³., Π° уязвимостта RxRPC Π΅ Π½Π°Π»ΠΈΡ†Π΅ ΠΎΡ‚ юни 2023 Π³. И Π΄Π²Π°Ρ‚Π° ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° са ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π΅Π½ΠΈ ΠΎΡ‚ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ, ΠΊΠΎΠΈΡ‚ΠΎ позволяват Π΄ΠΈΡ€Π΅ΠΊΡ‚Π΅Π½ запис Π² кСша Π½Π° страницитС.

Π—Π° Π΄Π° сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° уязвимостта xfrm-ESP, потрСбитСлят трябва Π΄Π° ΠΈΠΌΠ° Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ Π·Π° създаванС Π½Π° ΠΈΠΌΠ΅Π½Π°, Π° Π·Π° Π΄Π° сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° уязвимостта RxRPC, трябва Π΄Π° сС Π·Π°Ρ€Π΅Π΄ΠΈ ΠΌΠΎΠ΄ΡƒΠ»ΡŠΡ‚ Π½Π° ядрото rxrpc.ko. НапримСр, Π² Ubuntu ΠΏΡ€Π°Π²ΠΈΠ»Π°Ρ‚Π° Π½Π° AppArmor Π½Π΅ позволяват Π½Π° Π½Π΅ΠΏΡ€ΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΡ€ΠΎΠ²Π°Π½ΠΈ ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΈΡ‚Π΅Π»ΠΈ Π΄Π° ΡΡŠΠ·Π΄Π°Π²Π°Ρ‚ ΠΈΠΌΠ΅Π½Π°, Π½ΠΎ ΠΌΠΎΠ΄ΡƒΠ»ΡŠΡ‚ rxrpc.ko сС Π·Π°Ρ€Π΅ΠΆΠ΄Π° ΠΏΠΎ ΠΏΠΎΠ΄Ρ€Π°Π·Π±ΠΈΡ€Π°Π½Π΅. Някои дистрибуции нямат ΠΌΠΎΠ΄ΡƒΠ»Π° rxrpc.ko, Π½ΠΎ Π½Π΅ Π±Π»ΠΎΠΊΠΈΡ€Π°Ρ‚ ΡΡŠΠ·Π΄Π°Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° ΠΈΠΌΠ΅Π½Π°. Π˜Π·ΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡΡ‚, ΠΊΠΎΠΉΡ‚ΠΎ Π΅ ΠΎΡ‚ΠΊΡ€ΠΈΠ» ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ°, Π΅ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΈΠ» ΠΊΠΎΠΌΠ±ΠΈΠ½ΠΈΡ€Π°Π½ Сксплойт, способСн Π΄Π° Π°Ρ‚Π°ΠΊΡƒΠ²Π° систСмата Ρ‡Ρ€Π΅Π· Π΄Π²Π΅Ρ‚Π΅ уязвимости, ΠΊΠΎΠ΅Ρ‚ΠΎ ΠΏΡ€Π°Π²ΠΈ възмоТно ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° във всички основни дистрибуции. ΠŸΠΎΡ‚Π²ΡŠΡ€Π΄Π΅Π½ΠΎ Π΅, Ρ‡Π΅ Π΅ΠΊΡΠΏΠ»ΠΎΠΉΡ‚ΡŠΡ‚ Ρ€Π°Π±ΠΎΡ‚ΠΈ Π½Π° Ubuntu 24.04.4 с ядро ​​6.17.0-23, RHEL 10.1 с ядро ​​6.12.0-124.49.1, openSUSE Tumbleweed с ядро ​​7.0.2-1, CentOS Stream 10 с ядро ​​6.12.0-224, AlmaLinux 10 с ядро ​​6.12.0-124.52.3 ΠΈ Fedora 44 с ядро ​​6.19.14-300.

ΠšΠ°ΠΊΡ‚ΠΎ ΠΏΡ€ΠΈ уязвимостта Copy Fail, ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΈΡ‚Π΅ Π² xfrm-ESP ΠΈ RxRPC са ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π΅Π½ΠΈ ΠΎΡ‚ Π΄Π΅ΠΊΡ€ΠΈΠΏΡ‚ΠΈΡ€Π°Π½Π΅ Π½Π° Π΄Π°Π½Π½ΠΈ Π½Π° място, ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΉΠΊΠΈ функцията splice(), която ΠΏΡ€Π΅Ρ…Π²ΡŠΡ€Π»Ρ Π΄Π°Π½Π½ΠΈ ΠΌΠ΅ΠΆΠ΄Ρƒ Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΈ дСскриптори ΠΈ ΠΊΠ°Π½Π°Π»ΠΈ Π±Π΅Π· ΠΊΠΎΠΏΠΈΡ€Π°Π½Π΅, Ρ‡Ρ€Π΅Π· ΠΏΡ€Π΅Π΄Π°Π²Π°Π½Π΅ Π½Π° ΠΏΡ€Π΅ΠΏΡ€Π°Ρ‚ΠΊΠΈ към Π΅Π»Π΅ΠΌΠ΅Π½Ρ‚ΠΈ Π² кСша Π½Π° страницитС. ΠžΡ‚ΠΌΠ΅ΡΡ‚Π²Π°Π½ΠΈΡΡ‚Π° Π·Π° запис са изчислСни Π±Π΅Π· подходящи ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ, Π·Π° Π΄Π° сС ΠΎΡ‚Ρ‡Π΅Ρ‚Π΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° Π΄ΠΈΡ€Π΅ΠΊΡ‚Π½ΠΈ ΠΏΡ€Π΅ΠΏΡ€Π°Ρ‚ΠΊΠΈ към Π΅Π»Π΅ΠΌΠ΅Π½Ρ‚ΠΈ Π² кСша Π½Π° страницитС, ΠΊΠΎΠ΅Ρ‚ΠΎ позволява Π½Π° спСциално създадСни заявки Π΄Π° прСзаписват 4 Π±Π°ΠΉΡ‚Π° ΠΏΡ€ΠΈ Π΄Π°Π΄Π΅Π½ΠΎ отмСстванС ΠΈ Π΄Π° промСнят ΡΡŠΠ΄ΡŠΡ€ΠΆΠ°Π½ΠΈΠ΅Ρ‚ΠΎ Π½Π° всСки Ρ„Π°ΠΉΠ» Π² кСша Π½Π° страницитС.

Всички ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ Π·Π° Ρ‡Π΅Ρ‚Π΅Π½Π΅ Π½Π° Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅ ΠΏΡŠΡ€Π²ΠΎ ΠΈΠ·Π²Π»ΠΈΡ‡Π°Ρ‚ ΡΡŠΠ΄ΡŠΡ€ΠΆΠ°Π½ΠΈΠ΅Ρ‚ΠΎ ΠΎΡ‚ кСша Π½Π° страницитС. Ако Π΄Π°Π½Π½ΠΈΡ‚Π΅ Π² кСша Π½Π° страницитС Π±ΡŠΠ΄Π°Ρ‚ ΠΏΡ€ΠΎΠΌΠ΅Π½Π΅Π½ΠΈ, ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈΡ‚Π΅ Π·Π° Ρ‡Π΅Ρ‚Π΅Π½Π΅ Π½Π° Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅ Ρ‰Π΅ Π²ΡŠΡ€Π½Π°Ρ‚ замСстСни Π΄Π°Π½Π½ΠΈ, Π° Π½Π΅ дСйствитСлната информация, ΡΡŠΡ…Ρ€Π°Π½Π΅Π½Π° Π½Π° устройството. Експлоатацията Π½Π° уязвимостта сС свСТда Π΄ΠΎ промяна Π½Π° кСша Π½Π° страницитС Π·Π° изпълним Ρ„Π°ΠΉΠ» с root Ρ„Π»Π°Π³ suid. НапримСр, Π·Π° Π΄Π° сС ΠΏΠΎΠ»ΡƒΡ‡Π°Ρ‚ root ΠΏΡ€Π°Π²Π°, Ρ‡ΠΎΠ²Π΅ΠΊ ΠΌΠΎΠΆΠ΅ Π΄Π° ΠΏΡ€ΠΎΡ‡Π΅Ρ‚Π΅ изпълнимия Ρ„Π°ΠΉΠ» /usr/bin/su, Π·Π° Π΄Π° Π³ΠΎ постави Π² кСша Π½Π° страницитС, ΠΈ слСд Ρ‚ΠΎΠ²Π° Π΄Π° замСсти собствСния си ΠΊΠΎΠ΄ Π² ΡΡŠΠ΄ΡŠΡ€ΠΆΠ°Π½ΠΈΠ΅Ρ‚ΠΎ Π½Π° Ρ‚ΠΎΠ·ΠΈ Ρ„Π°ΠΉΠ», Π·Π°Ρ€Π΅Π΄Π΅Π½ Π² кСша Π½Π° страницитС. ΠŸΠΎΡΠ»Π΅Π΄Π²Π°Ρ‰ΠΎΡ‚ΠΎ изпълнСниС Π½Π° ΠΏΠΎΠΌΠΎΡ‰Π½Π°Ρ‚Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠ° "su" Ρ‰Π΅ Π΄ΠΎΠ²Π΅Π΄Π΅ Π΄ΠΎ Π·Π°Ρ€Π΅ΠΆΠ΄Π°Π½Π΅ Π½Π° ΠΌΠΎΠ΄ΠΈΡ„ΠΈΡ†ΠΈΡ€Π°Π½ΠΎΡ‚ΠΎ ΠΊΠΎΠΏΠΈΠ΅ ΠΎΡ‚ кСша Π½Π° страницитС Π² ΠΏΠ°ΠΌΠ΅Ρ‚Ρ‚Π°, Π° Π½Π΅ Π½Π° оригиналния изпълним Ρ„Π°ΠΉΠ» ΠΎΡ‚ устройството.

Π Π°Π·ΠΊΡ€ΠΈΠ²Π°Π½Π΅Ρ‚ΠΎ Π½Π° уязвимостта ΠΈ ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½ΠΈΡ€Π°Π½ΠΎΡ‚ΠΎ пусканС Π½Π° ΠΊΠΎΡ€Π΅ΠΊΡ†ΠΈΠΈ бяха ΠΏΠ»Π°Π½ΠΈΡ€Π°Π½ΠΈ Π·Π° 12 ΠΌΠ°ΠΉ, Π½ΠΎ ΠΏΠΎΡ€Π°Π΄ΠΈ ΠΈΠ·Ρ‚ΠΈΡ‡Π°Π½Π΅ Π½Π° информация, информацията Π·Π° уязвимостта Ρ‚Ρ€ΡΠ±Π²Π°ΡˆΠ΅ Π΄Π° бъдС ΠΏΡƒΠ±Π»ΠΈΠΊΡƒΠ²Π°Π½Π° ΠΏΡ€Π΅Π΄ΠΈ пусканСто Π½Π° ΠΊΠΎΡ€Π΅ΠΊΡ†ΠΈΠΈΡ‚Π΅. Π’ края Π½Π° Π°ΠΏΡ€ΠΈΠ», ΠΊΠΎΡ€Π΅ΠΊΡ†ΠΈΠΈ Π·Π° rxrpc, ipsec ΠΈ xfrm бяха ΠΏΡƒΠ±Π»ΠΈΠΊΡƒΠ²Π°Π½ΠΈ Π² публичния пощСнски списък Π½Π° netdev, Π±Π΅Π· Π΄Π° сС спомСнава, Ρ‡Π΅ са ΡΠ²ΡŠΡ€Π·Π°Π½ΠΈ с уязвимостта. На 5 ΠΌΠ°ΠΉ, ΠΏΠΎΠ΄Π΄ΡŠΡ€ΠΆΠ°Ρ‰ΠΈΡΡ‚ подсистСмата IPsec ΠΏΡ€ΠΈΠ΅ промяна Π² Git Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅Ρ‚ΠΎ Π½Π° netdev с ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½Π° корСкция Π² ΠΌΠΎΠ΄ΡƒΠ»Π° xfrm-esp. ΠžΠΏΠΈΡΠ°Π½ΠΈΠ΅Ρ‚ΠΎ Π½Π° промяната бСшС Π΄ΠΎ голяма стСпСн ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ‡Π½ΠΎ с описаниСто Π½Π° ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ°, Π΄ΠΎΠ²Π΅Π» Π΄ΠΎ уязвимостта Copy Fail Π² ΠΌΠΎΠ΄ΡƒΠ»Π° algif_aead. Π˜Π·ΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π» ΠΏΠΎ сигурността сС заинтСрСсува ΠΎΡ‚ Ρ‚Π°Π·ΠΈ корСкция, успя Π΄Π° създадС Ρ€Π°Π±ΠΎΡ‚Π΅Ρ‰ Сксплойт ΠΈ Π³ΠΎ ΠΏΡƒΠ±Π»ΠΈΠΊΡƒΠ²Π°, Π±Π΅Π· Π΄Π° Π·Π½Π°Π΅, Ρ‡Π΅ Π΅ Π½Π°Π»ΠΎΠΆΠ΅Π½ΠΎ Π΅ΠΌΠ±Π°Ρ€Π³ΠΎ Π²ΡŠΡ€Ρ…Ρƒ Ρ€Π°Π·ΠΊΡ€ΠΈΠ²Π°Π½Π΅Ρ‚ΠΎ Π½Π° информация Π·Π° ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° Π΄ΠΎ 12 ΠΌΠ°ΠΉ.

ВсС ΠΎΡ‰Π΅ Π½Π΅ са ΠΏΡƒΠ±Π»ΠΈΠΊΡƒΠ²Π°Π½ΠΈ Π°ΠΊΡ‚ΡƒΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ с ΠΊΠΎΡ€Π΅ΠΊΡ†ΠΈΠΈ Π·Π° ядрото Π½Π° Linux ΠΈ ΠΏΠ°ΠΊΠ΅Ρ‚ΠΈΡ‚Π΅ с ядрото Π² дистрибуциитС, Π½ΠΎ са Π½Π°Π»ΠΈΡ‡Π½ΠΈ ΠΊΠΎΡ€Π΅ΠΊΡ†ΠΈΠΈ, ΠΊΠΎΠΈΡ‚ΠΎ отстраняват ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΈΡ‚Π΅ – xfrm-esp ΠΈ rxrpc. НС са Π·Π°Π΄Π°Π΄Π΅Π½ΠΈ CVE ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ΠΈ, ΠΊΠΎΠ΅Ρ‚ΠΎ услоТнява прослСдяванСто Π½Π° Π°ΠΊΡ‚ΡƒΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈΡ‚Π΅ Π½Π° ΠΏΠ°ΠΊΠ΅Ρ‚ΠΈΡ‚Π΅ Π² дистрибуциитС. ΠšΠ°Ρ‚ΠΎ Π·Π°ΠΎΠ±ΠΈΠΊΠΎΠ»Π½ΠΎ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° Π±Π»ΠΎΠΊΠΈΡ€Π°Ρ‚Π΅ Π·Π°Ρ€Π΅ΠΆΠ΄Π°Π½Π΅Ρ‚ΠΎ Π½Π° ΠΌΠΎΠ΄ΡƒΠ»ΠΈΡ‚Π΅ Π½Π° ядрото esp4, esp6 ΠΈ rxrpc: sh -c "printf 'install esp4 /bin/false\ninstall esp6 /bin/false\ninstall rxrpc /bin/false\n' > /etc/modprobe.d/dirtyfrag.conf; rmmod esp4 esp6 rxrpc 2>/dev/null; true"

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