Mae ymchwilwyr o Xint wedi nodi cnewyllyn Linux Mae bregusrwydd (CVE-2026-31431) yn caniatΓ‘u i ddefnyddiwr difreintiedig gael mynediad gwraidd i system. Enw cod y broblem yw Copy Fail. Mae ecsbloetio prototeip ar gael. Dangoswyd y posibilrwydd o ecsbloetio'r bregusrwydd yn Ubuntu 24.04 LTS, Amazon Linux 2023, RHEL 10.1 a SUSE 16, ond nodir bod pecynnau cnewyllyn o ddosraniadau eraill, gan gynnwys DebianMae Arch, Fedora, Rocky ac Alma hefyd wedi'u heffeithio gan y broblem, ond nid ydynt wedi cael eu profi ar wahΓ’n.
Mae'r gwendid yn cael ei achosi gan wall rhesymegol yn API crypto'r cnewyllyn (AF_ALG). LinuxDeilliodd optimeiddio yn 2017 a ddileodd glustogi diangen trwy weithredu codau bloc AEAD (Amgryptio Dilys gyda Data Cysylltiedig) yn eu lle o ddefnydd diofal o'r swyddogaeth splice(), sy'n trosglwyddo data rhwng disgrifwyr ffeiliau a phibellau heb gopΓ―o, trwy basio cyfeiriadau at elfennau yn y storfa dudalen. Ar Γ΄l yr optimeiddio, wrth drosglwyddo ffeil i'r soced AF_ALG i'w dadgryptio, ysgrifennwyd strwythur y rhestr wasgaru nid i glustogi ar wahΓ’n, ond i gyfeiriad uniongyrchol at elfennau storfa tudalen y cnewyllyn sy'n cynnwys data'r ffeil.
Yn ddiweddarach, yn ystod y broses dadgryptio AEAD, cymysgwyd y data tag dilysu y cyfeiriwyd ato Γ’'r data dilys ychwanegol (AAD, Associated Authenticated Data) a'r testun amgryptio a gopΓ―wyd i'r byffer RX, a chyfrifwyd y gwrthbwyso ar gyfer y llawdriniaeth ysgrifennu i'r tag dilysu o'i gymharu Γ’'r data a gopΓ―wyd heb wiriadau priodol, a oedd yn ei gwneud hi'n bosibl trosysgrifennu ardaloedd mympwyol yn storfa'r dudalen.
Mae'r bregusrwydd yn caniatΓ‘u i bob cais drosysgrifennu 4 beit ar wrthbwyso penodol, gan ganiatΓ‘u i ymosodwr anfon cyfres o geisiadau i addasu cynnwys unrhyw ffeil ddarllenadwy yn storfa'r dudalen ar Γ΄l sicrhau ei bod wedi'i storio yn y storfa yn gyntaf. Gan fod pob gweithrediad darllen ffeiliau yn adfer y cynnwys o storfa'r dudalen yn gyntaf, ar Γ΄l disodli'r wybodaeth yn storfa'r dudalen, bydd y cnewyllyn neu'r broses sy'n darllen y ffeil yn derbyn data amnewidiol yn hytrach na'r data gwirioneddol. Gellir defnyddio hyn i chwistrellu cod i ffeiliau gweithredadwy neu lyfrgelloedd a rennir a lwythodd.
I weithredu cod gyda breintiau gwraidd, mae'n ddigon newid storfa'r dudalen ar gyfer unrhyw ffeil weithredadwy gyda'r faner gwraidd suid.
Mae'r camfanteisio arfaethedig yn darllen y ffeil weithredadwy /usr/bin/su ac yn addasu cynnwys y ffeil hon a lwythwyd i'r storfa dudalen i fewnosod ei chod ei hun. Pan fydd y cyfleustodau "su" yn cael eu lansio wedi hynny, bydd y copi wedi'i addasu o'r storfa dudalen yn cael ei lwytho i'r cof, nid y ffeil weithredadwy wreiddiol o'r gyriant.
Mae'r ecsbloetiad yn gyffredinol, nid oes angen ei addasu i ddosraniadau penodol na fersiynau cnewyllyn, a gellir ei ddefnyddio gydag unrhyw ddosbarthiad. Gan fod ynysu cynwysyddion yn defnyddio storfa dudalen a rennir ar gyfer pob cynhwysydd, gellir defnyddio'r bregusrwydd i gael mynediad i'r amgylchedd gwesteiwr o fewn cynhwysydd (disgwylir cyhoeddi ecsbloetiad ar gyfer osgoi ynysu yn Kubernetes yn ddiweddarach).
Darganfuwyd y bregusrwydd gan ddefnyddio deallusrwydd artiffisial ar Γ΄l tua awr o arbrofi wrth ddadansoddi cod is-system crypto'r cnewyllyn. Mae'r broblem yn amlygu ei hun gan ddechrau gyda'r cnewyllyn. Linux 4.14, a ryddhawyd yn 2017, ac a drwsiwyd yng nghnewyllynnau 6.18.22, 6.19.12, a 7.0. Gellir asesu statws y datrysiadau bregusrwydd mewn dosraniadau ar y tudalennau hyn: Debian, Ubuntu, SUSE/openSUSE, RHEL, Gentoo, Arch,
Fedora, ROSA.
Fel ateb dros dro, gallwch analluogi'r modiwl cnewyllyn algif_aead, a ddefnyddir yn OpenSSL pan fydd yr injan afalg wedi'i galluogi'n benodol ac mewn cymwysiadau unigol (gallwch wirio am gymwysiadau o'r fath sy'n rhedeg gan ddefnyddio'r gorchymyn "lsof | grep AF_ALG"):
adleisio "gosod algif_aead /bin/false" > /etc/modprobe.d/disable-algif.conf
rmmod algif_aead
Ffynhonnell: opennet.ru
