Dirty Pipe: një dobësi që lejon të dhënat të mbishkruhen

Kohët e fundit lajmi dha se u identifikua një dobësi në kernelin Linux dhe i cili tashmë është i kataloguar nën CVE-2022-0847 dhe që ata e kanë emërtuar si "Tubacioni i pistë".

Kjo dobësi e quajtur "Dirty Pipe"ju lejon të mbishkruani përmbajtjen e cache e faqes për çdo skedar, duke përfshirë ato të vendosura vetëm për lexim, të hapura me flamurin O_RDONLY ose të vendosura në sistemet e skedarëve të montuar vetëm për lexim.

Nga ana praktike, cenueshmëria mund të përdoret për të injektuar kodin në procese arbitrare ose korrupton të dhënat në skedarët e hapur. Për shembull, mund të ndryshoni përmbajtjen e skedarit autorized_keys për procesin sshd.

Rreth tubit të pistë

Është e ngjashme me cenueshmërinë kritike Dirty COW i identifikuar në vitin 2016 dhe Dirty Pipe përmendet të jetë në të njëjtin nivel me Dirty COW për sa i përket rrezikut, por që kjo është shumë më e lehtë për t'u përdorur.

Dirty Pipe u identifikua gjatë analizës së ankesave për dëmtime periodike të arkivave shkarkohet përmes rrjetit në një sistem që shkarkon skedarë të ngjeshur nga një server logging (37 dëmtime në 3 muaj në një sistem të ngarkuar), të cilët u përgatitën duke përdorur funksionin splice() dhe tuba pa emër.

Prekshmëria është shfaqur që nga versioni 5.8 i kernelit Linux, lëshuar në gusht 2020.

E parë në një mënyrë tjetër mund të themi se është e pranishme në Debian 11 por nuk ndikon në kernelin bazë në Ubuntu 20.04 LTS, ndërsa për RHEL 8.x dhe openSUSE/SUSE 15 kernele që fillimisht bazohen në degë të vjetra, por është e mundur se ndryshimi që shkakton problemin u është transferuar atyre (ende nuk ka të dhëna të sakta).

Dobësia është për shkak të mungesës së inicializimit të vlerës "buf->flags" në kodin e funksioneve copy_page_to_iter_pipe() dhe push_pipe(), pavarësisht se memoria nuk pastrohet kur struktura është ndarë, dhe me manipulime të caktuara me të paemërtuar tuba, "buf->flamujt" mund të përmbajnë një vlerë nga një operacion tjetër. Me këtë veçori, një përdorues lokal i paprivilegjuar mund të arrijë pamjen e vlerës PIPE_BUF_FLAG_CAN_MERGE në flamur, duke i lejuar ata të mbishkruajnë të dhënat në cache të faqeve thjesht duke shkruar të dhëna të reja në një tub të përgatitur posaçërisht pa emër.

për një sulm mund të bëhet, ju duhet një skedar objektiv që duhet të jetë i lexueshëm dhe meqenëse të drejtat e aksesit nuk kontrollohen kur shkruani në një tub, një zëvendësim mund të kryhet në cache-in e faqeve, edhe për skedarët e vendosur në ndarje vetëm për lexim (për shembull, për skedarët c CD-ROM).

Me këtë, pas zëvendësimit të informacionit në cache-in e faqeve, procesi gjatë leximit të të dhënave nga skedari nuk do të marrë të dhënat reale, por ato të zëvendësuara.

Përmendet se operacioni Dirty Pipe zbret në krijimin e një tubi pa emër dhe mbushjen e tij me të dhëna arbitrare për të arritur vendosjen e flamurit PIPE_BUF_FLAG_CAN_MERGE në të gjitha strukturat e unazave që lidhen me të.

Të dhënat më pas lexohen nga tubacioni, por flamuri mbetet i vendosur në të gjitha rastet e strukturës pipe_buffer në strukturat e unazës pipe_inode_info. Më pas bëhet një thirrje për splice() për të lexuar të dhënat nga skedari i destinacionit në një tub pa emër, duke filluar nga kompensimi i kërkuar. Kur shkruani të dhëna në këtë tub pa emër, flamuri PIPE_BUF_FLAG_CAN_MERGE do t'i mbishkruajë të dhënat në memorien e faqes në vend që të krijojë një shembull të ri të strukturës pipe_buffer.

Më në fund Nëse jeni të interesuar të dini më shumë për këtë, mund t'i kontrolloni detajet në shënimin origjinal Në lidhjen vijuese.

Gjithashtu, nëse jeni të interesuar për të jetë në gjendje të ndjekë ose të dijë për publikimin e përditësimeve të paketave në shpërndarjet kryesore, mund ta bëni nga këto faqe: DebianSUSEUbuntuRHELFedoraGentooArchLinux.

Përmendet se rregullimi i propozuar i cenueshmërisë është i disponueshëm në versionet Linux Kernel 5.16.11, 5.15.25 dhe 5.10.102 dhe rregullimi është i përfshirë edhe në kernelin e përdorur në platformën Android.


Lini komentin tuaj

Adresa juaj e emailit nuk do të publikohet. Fusha e kërkuar janë shënuar me *

*

*

  1. Përgjegjës për të dhënat: AB Internet Networks 2008 SL
  2. Qëllimi i të dhënave: Kontrolloni SPAM, menaxhimin e komenteve.
  3. Legjitimimi: Pëlqimi juaj
  4. Komunikimi i të dhënave: Të dhënat nuk do t'u komunikohen palëve të treta përveç me detyrim ligjor.
  5. Ruajtja e të dhënave: Baza e të dhënave e organizuar nga Occentus Networks (BE)
  6. Të drejtat: Në çdo kohë mund të kufizoni, rikuperoni dhe fshini informacionin tuaj.