Zofooka za Dirty Frag zomwe zimasintha cache ya tsamba kuti zipeze mizu m'magawo onse a 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 c ядром 6.12.0-224, AlmaLinux 10 с ядром 6.12.0-124.52.3 ΠΈ Fedora 44 с ядром 6.19.14-300.

Как ΠΈ Π² случаС с ΡƒΡΠ·Π²ΠΈΠΌΠΎΡΡ‚ΡŒΡŽ Copy Fail, ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ Π² xfrm-ESP ΠΈ RxRPC Π²Ρ‹Π·Π²Π°Π½Ρ‹ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ΠΌ Ρ€Π°ΡΡˆΠΈΡ„Ρ€ΠΎΠ²ΠΊΠΈ Π΄Π°Π½Π½Ρ‹Ρ… ΠΏΠΎ мСсту c использованиСм Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ splice(), ΠΏΠ΅Ρ€Π΅Π΄Π°ΡŽΡ‰Π΅ΠΉ Π΄Π°Π½Π½Ρ‹Π΅ ΠΌΠ΅ΠΆΠ΄Ρƒ Ρ„Π°ΠΉΠ»ΠΎΠ²Ρ‹ΠΌΠΈ дСскрипторами ΠΈ ΠΊΠ°Π½Π°Π»Π°ΠΌΠΈ (pipe) Π±Π΅Π· копирования, ΠΏΡƒΡ‚Ρ‘ΠΌ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ ссылок Π½Π° элСмСнты Π² страничном кэшС. БмСщСния для ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ записи Ρ€Π°ΡΡΡ‡ΠΈΡ‚Ρ‹Π²Π°Π»ΠΈΡΡŒ Π±Π΅Π· Π΄ΠΎΠ»ΠΆΠ½Ρ‹Ρ… ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΎΠΊ, ΡƒΡ‡ΠΈΡ‚Ρ‹Π²Π°ΡŽΡ‰ΠΈΡ… использованиС прямой ссылки Π½Π° элСмСнты Π² страничном кэшС, Ρ‡Ρ‚ΠΎ позволяло Ρ‡Π΅Ρ€Π΅Π· ΠΎΡ‚ΠΏΡ€Π°Π²ΠΊΡƒ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎ ΠΎΡ„ΠΎΡ€ΠΌΠ»Π΅Π½Π½Ρ‹Ρ… запросов ΠΏΠ΅Ρ€Π΅Π·Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ 4 Π±Π°ΠΉΡ‚Π° ΠΏΠΎ Π²Ρ‹Π±Ρ€Π°Π½Π½ΠΎΠΌΡƒ ΡΠΌΠ΅Ρ‰Π΅Π½ΠΈΡŽ ΠΈ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ находящССся страничном кэшС содСрТимоС любого Ρ„Π°ΠΉΠ»Π°.

ВсС ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ чтСния ΠΈΠ· Ρ„Π°ΠΉΠ»ΠΎΠ² Π² ΠΏΠ΅Ρ€Π²ΡƒΡŽ ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ ΠΎΡ‚Π΄Π°ΡŽΡ‚ содСрТимоС ΠΈΠ· страничного кэша. Π’ случаС ΠΌΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ Π΄Π°Π½Π½Ρ‹Ρ… Π² страничном кэшС ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ чтСния ΠΈΠ· Ρ„Π°ΠΉΠ»Π° ΠΏΡ€ΠΈΠ²Π΅Π΄ΡƒΡ‚ ΠΊ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π΅Π½ΠΈΡŽ Π½Π΅ Ρ€Π΅Π°Π»ΡŒΠ½ΠΎ Ρ…Ρ€Π°Π½ΠΈΠΌΠΎΠΉ Π½Π° Π½Π°ΠΊΠΎΠΏΠΈΡ‚Π΅Π»Π΅ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ, Π° ΠΏΠΎΠ΄ΠΌΠ΅Π½Ρ‘Π½Π½Ρ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ…. Эксплуатация уязвимости сводится ΠΊ измСнСнию страничного кэша для исполняСмого Ρ„Π°ΠΉΠ»Π° с Ρ„Π»Π°Π³ΠΎΠΌ suid root. НапримСр, для получСния ΠΏΡ€Π°Π² root ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ исполняСмый Ρ„Π°ΠΉΠ» /usr/bin/su для Π΅Π³ΠΎ помСщСния Π² страничный кэш, послС Ρ‡Π΅Π³ΠΎ Π΄ΠΎΠ±ΠΈΡ‚ΡŒΡΡ подстановки своСго ΠΊΠΎΠ΄Π° Π² Π·Π°Π³Ρ€ΡƒΠΆΠ΅Π½Π½ΠΎΠ΅ Π² страничный кэш содСрТимого этого Ρ„Π°ΠΉΠ»Π°. ΠŸΠΎΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ запуск ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Ρ‹ Β«suΒ» ΠΏΡ€ΠΈΠ²Π΅Π΄Ρ‘Ρ‚ ΠΊ Ρ‚ΠΎΠΌΡƒ, Ρ‡Ρ‚ΠΎ Π² ΠΏΠ°ΠΌΡΡ‚ΡŒ Π±ΡƒΠ΄Π΅Ρ‚ Π·Π°Π³Ρ€ΡƒΠΆΠ΅Π½ Π½Π΅ ΠΎΡ€ΠΈΠ³ΠΈΠ½Π°Π»ΡŒΠ½Ρ‹ΠΉ исполняСмый Ρ„Π°ΠΉΠ» с накопитСля, Π° измСнённая копия ΠΈΠ· страничного кэша.

РаскрытиС ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΎΠ± уязвимостях ΠΈ скоординированный выпуск ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠΉ с устранСниСм ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ Π±Ρ‹Π»ΠΎ Π½Π°ΠΌΠ΅Ρ‡Π΅Π½ΠΎ Π½Π° 12 мая, Π½ΠΎ ΠΈΠ·-Π·Π° ΡƒΡ‚Π΅Ρ‡ΠΊΠΈ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ свСдСния ΠΎΠ± уязвимости ΠΏΡ€ΠΈΡˆΠ»ΠΎΡΡŒ ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Ρ‚ΡŒ Π΄ΠΎ ΠΏΡƒΠ±Π»ΠΈΠΊΠ°Ρ†ΠΈΠΈ исправлСний. Π’ ΠΊΠΎΠ½Ρ†Π΅ апрСля Π² ΠΏΡƒΠ±Π»ΠΈΡ‡Π½ΠΎΠΌ спискС рассылки netdev Π±Ρ‹Π»ΠΈ ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½Ρ‹ ΠΏΠ°Ρ‚Ρ‡ΠΈ ΠΊ rxrpc, ipsec ΠΈ xfrm, Π±Π΅Π· упоминания, Ρ‡Ρ‚ΠΎ ΠΎΠ½ΠΈ связаны с устранСниСм уязвимости. 5 мая мэйнтСйнСр подсистСмы IPsec принял Π² git-Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ netdev ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ c ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Π΅ΠΌΡ‹ΠΌ исправлСниСм Π² ΠΌΠΎΠ΄ΡƒΠ»Π΅ 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Β»

Source: opennet.ru