Du qelsiyên di kernela Linuxê de hatine keşifkirin. Ev qelsiyên di xwezayê de dişibin qelsiya Copy Fail a ku çend roj berê hatiye eşkerekirin, lê ew bandorê li ser pergalên bin-sîstemê yên cûda dikin - xfrm-ESP û RxRPC. Ev rêzeqelsiyên bi navê kodkirî Dirty Frag (ku wekî Copy Fail 2 jî tê binavkirin) hatiye binavkirin. Ev qelsiyên dihêlin ku bikarhênerek bêmaf mafên root bi nivîsandina daneyên pêvajoyê di kaşeya rûpelê de bi dest bixe. Sûcdariyek heye ku li ser hemî belavkirinên Linux-ê yên heyî dixebite. Qelsiya berî ku patch werin weşandin hatiye eşkerekirin, lê çareseriyek heye.
Dirty Frag du lawaziyên cuda vedihewîne: ya yekem di modula xfrm-ESP de, ku ji bo lezandina operasyonên şîfrekirina IPsec bi karanîna protokola ESP (Encapsulating Security Payload) tê bikar anîn, û ya duyem di ajokera RxRPC de, ku malbata soketa AF_RXRPC û protokola RPC ya bi heman navî, ku li ser UDP-ê dixebite, pêk tîne. Her lawaziyek, ku bi serê xwe tê girtin, destûrê dide mafên root. Lawaziya xfrm-ESP ji Çileya 2017-an vir ve di kernela Linux-ê de heye, û lawaziya RxRPC ji Hezîrana 2023-an vir ve heye. Her du pirsgirêk ji ber çêtirkirinên ku destûrê didin nivîsandinên rasterast li ser keşeya rûpelê çêdibin.
Ji bo bikaranîna lawaziya xfrm-ESP, divê bikarhêner destûra çêkirina navcîhan hebe, û ji bo bikaranîna lawaziya RxRPC, divê modula kernel rxrpc.ko were barkirin. Mînakî, di Ubuntuyê de, qaîdeyên AppArmor rê li ber bikarhênerên bêmaf digirin ku navcîhan biafirînin, lê modula rxrpc.ko bi xweber tê barkirin. Hin belavkirin modula rxrpc.ko tune ye lê afirandina navcîhan asteng nakin. Lêkolînerê ku pirsgirêk kifş kir, îstîsnayek hevbeş pêşxist ku dikare bi rêya her du lawaziyan êrîşî pergalê bike, û ev yek gengaz kir ku pirsgirêk li ser hemî belavkirinên sereke were bikar anîn. Ev îstîsmar hatiye piştrastkirin ku li ser Ubuntu 24.04.4 bi kernel 6.17.0-23, RHEL 10.1 bi kernel 6.12.0-124.49.1, openSUSE Tumbleweed bi kernel 7.0.2-1, CentOS Stream 10 bi kernel 6.12.0-224, AlmaLinux 10 bi kernel 6.12.0-124.52.3, û Fedora 44 bi kernel 6.19.14-300 dixebite.
Wekî kêmasiya Copy Fail, pirsgirêkên di xfrm-ESP û RxRPC de ji ber şîfrekirina daneyan a di cîh de bi karanîna fonksiyona splice() çêdibin, ku daneyan di navbera danasînên pelan û lûleyan de bêyî kopîkirinê vediguhezîne, bi şandina referansên ji bo hêmanên di keşeya rûpelê de. Veqetandinên nivîsandinê bêyî kontrolên guncaw hatin hesab kirin da ku karanîna referansên rasterast ji bo hêmanên di keşeya rûpelê de hesab bikin, ku rê dide daxwazên bi taybetî hatine çêkirin ku 4 byte li veqetînek diyarkirî binivîsin û naveroka her pelê di keşeya rûpelê de biguherînin.
Hemû operasyonên xwendina pelan pêşî naverokê ji keşeya rûpelê vedigirin. Ger daneyên di keşeya rûpelê de werin guhertin, operasyonên xwendina pelan dê daneyên cîgir vegerînin, ne agahdariya rastîn a ku li ser ajokerê hatî hilanîn. Îstismara vê lawaziyê vedigere guhertina keşeya rûpelê ji bo pelek bicîhkirî bi ala root suid. Mînakî, ji bo bidestxistina mafên root, meriv dikare pelê bicîhkirî /usr/bin/su bixwîne da ku wê di keşeya rûpelê de bi cih bike, û dûv re koda xwe di naveroka vê pelê de ku di keşeya rûpelê de hatî barkirin biguhezîne. Piştî xebitandina amûra "su" dê bibe sedema barkirina kopiya guhertî ji keşeya rûpelê di bîrê de, ne pelê bicîhkirî yê orîjînal ji ajokerê.
Eşkerekirina lawaziyê û weşandina hevrêzkirî ya patchan ji bo 12ê Gulanê hatibû plankirin, lê ji ber rijandina xeletiyekê, agahdariya lawaziyê berî weşandina patchan diviyabû bihata weşandin. Di dawiya Nîsanê de, patchên ji bo rxrpc, ipsec, û xfrm bêyî ku behsa têkiliya wan bi lawaziyê re were kirin, li navnîşa nameyên giştî ya netdev hatin şandin. Di 5ê Gulanê de, parêzvanê jêrpergala IPsec guhertinek li depoya Git a netdev bi çareseriyek pêşniyarkirî di modula xfrm-esp de qebûl kir. Danasîna guhertinê bi piranî bi danasîna pirsgirêka ku bû sedema lawaziya Kopîkirina Têkçûnê di modula algif_aead de re yek bû. Lêkolînerek ewlehiyê bi vê çareserkirinê re eleqedar bû, karîbû îstîsnayek dixebite biafirîne, û ew weşand, bêyî ku hay jê hebe ku heta 12ê Gulanê ambargoyek li ser eşkerekirina agahdariya li ser pirsgirêkê hatiye ferzkirin.
Nûvekirinên bi çareseriyên ji bo kernel û pakêtên kernel ên Linux-ê di belavkirinan de hîn nehatine weşandin, lê patchên ku pirsgirêkan çareser dikin hene—xfrm-esp û rxrpc. Nasnameyên CVE nehatine destnîşankirin, ku şopandina nûvekirinên pakêtan di belavkirinan de tevlihev dike. Wekî çareseriyek ji bo vê, hûn dikarin barkirina modulên kernel ên esp4, esp6, û rxrpc asteng bikin: 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
