I kÀrnan av Linux har en sÄrbarhet identifierats, liknande sÄrbarheterna Copy Fail, Dirty Frag och Fragnesia, som tillÄter en icke-privilegierad anvÀndare att fÄ root-rÀttigheter genom att skriva över data i sidcache. Denna sÄrbarhet har fÄtt kodnamnet DirtyDecrypt (problemet nÀmns ocksÄ under namnet DirtyCBC). En prototyp av ett exploit Àr tillgÀnglig.
CVE-ID:et nÀmns inte i noterna till exploitet, det anges bara att forskarna identifierade problemet den 9 maj och informerade kÀrnutvecklarna, som svarade att deras upptÀckte problem duplicerade en annan rapport om en redan ÄtgÀrdad sÄrbarhet. Eftersom patchen med ÄtgÀrden redan har inkluderats i kÀrnan valde forskarna att publicera sitt utvecklade exploit. Bedömd utifrÄn beskrivningen i exploitet anvÀnds sÄrbarheten CVE-2026-31635, vars fix antogs i kÀrnan i april och inkluderades i version 7.0.0 och utgÄvan 6.18.23 den 18 april. Problemet uppstÄr frÄn kÀrna 6.16.
Som med serien av sĂ„rbarheter i Dirty Frag, finns den nya sĂ„rbarheten i RxRPC-drivrutinen, som implementerar familjen av sockets AF_RXRPC och den namngivna RPC-protokollet som arbetar ovanpĂ„ UDP. Problemet orsakas av ett fel i storlekskontrollen av data i funktionen rxgk_verify_response() â istĂ€llet för kontrollen 'if (auth_len > len)' angavs 'if (auth_len < len)' i koden, vilket ledde till att data med storlek större Ă€n den tillĂ„tna skickades till funktionen rxgk_decrypt_skb(). NĂ€r funktionen rxgk_decrypt_skb() kördes, avkrypterades data genom att direkt införa Ă€ndringar i sidcache för att undvika onödig buffring. PĂ„ grund av den felaktiga storlekskontrollen fanns det en möjlighet att skriva över data i sidcache pĂ„ den valda förskjutningen.
Utnyttjandet av sÄrbarheten gÄr ut pÄ att lÀsa en programfil med suid root-flaggan (för att den ska lagras i sidcache) och ersÀtta en del av programmets kod i sidcache med kod för att köra /usr/bin/sh. Efterföljande körning av programmet kommer att ladda in en modifierad kopia frÄn sidcache i stÀllet för den ursprungliga körbara filen frÄn lagringsenheten. I exploitet finns möjlighet att anvÀnda suid-program som '/usr/bin/su', '/bin/su', '/usr/bin/mount', '/usr/bin/passwd' och '/usr/bin/chsh'.
För att nyttja sÄrbarheten vid kompilering av kÀrnan mÄste alternativet CONFIG_RXGK vara aktiverat, och för automatisk laddning mÄste kÀrnmodulen rxrpc.ko vara tillgÀnglig (i vissa system kompilera den inte). Status för ÄtgÀrder mot sÄrbarheter i distributionerna kan utvÀrderas pÄ följande sidor: Debian, Ubuntu, SUSE/openSUSE, RHEL, Arch, Fedora. Ett skyddande alternativ kan vara att blockera laddningen av kÀrnmodulen rxrpc:
sh -c "printf 'install rxrpc /bin/false\n' > /etc/modprobe.d/dirtydecrypt.conf; rmmod rxrpc 2>/dev/null; true"
Dessutom kan det nÀmnas att en publikationen i mailinglistan för Linux-kÀrnutvecklare har slÀppt patchar som helt inaktiverar optimiseringar i crypto API (AF_ALG) som anvÀnder direkt adressering av sidan cache vid avkodning med anvÀndning av algoritmerna "skcipher" och "aead". Optimeringarna utesluter överflödig buffring av data men skapar risker för allvarliga sÄrbarheter. Det antas att deras inaktivering endast kommer att leda till en obetydlig prestanda minskning pÄ grund av behovet av ytterligare kopiering av data till en separat buffert. Patcharna har accepterats av den som underhÄller crypto API subsystemet och har inkluderats i grenen "cryptodev", dÀr möjligheter för att överföra till framtida versioner av Linux-kÀrnan utvecklas.
KĂ€lla: opennet.ru
