Hauv lub plawv Linux Muaj ib qho tsis muaj zog (CVE-2022-0847) tau pom tias tso cai rau cov ntsiab lus ntawm nplooj ntawv cache kom raug sau dua rau txhua cov ntaub ntawv, suav nrog cov uas nyob hauv hom nyeem xwb, qhib nrog tus chij O_RDONLY, lossis nyob rau ntawm cov ntaub ntawv systems uas tau teeb tsa hauv hom nyeem xwb. Hauv kev siv tiag tiag, qhov tsis muaj zog no tuaj yeem siv los txhaj cov lej rau hauv cov txheej txheem tsis raug cai lossis ua rau cov ntaub ntawv puas tsuaj hauv cov ntaub ntawv qhib. Piv txwv li, cov ntsiab lus ntawm cov ntaub ntawv authorized_keys rau cov txheej txheem sshd tuaj yeem hloov kho. Ib qho prototype exploit muaj rau kev sim.
Qhov teeb meem tau raug codenamed Dirty Pipe, zoo ib yam li qhov tseem ceeb ntawm qhov tsis zoo Dirty COW tau txheeb xyuas xyoo 2016. Nws tau muab sau tseg tias nyob rau hauv cov nqe lus ntawm kev txaus ntshai, Dirty Pipe nyob rau tib theem li Dirty COW, tab sis yog yooj yim dua rau kev khiav hauj lwm. Qhov tsis txaus ntseeg tau raug txheeb xyuas thaum lub sijhawm kev tshuaj xyuas kev tsis txaus siab txog kev ua tsis ncaj ntawm cov ntaub ntawv rub tawm hauv lub network hauv lub kaw lus rub tawm cov ntaub ntawv compressed los ntawm lub cav server (37 kev noj nyiaj txiag hauv 3 lub hlis ntawm lub tshuab thauj khoom), kev npaj siv cov splice() ua haujlwm. thiab cov kav dej tsis muaj npe.
Qhov tsis muaj zog tshwm sim nws tus kheej pib los ntawm lub kernel Linux 5.8, tso tawm thaum Lub Yim Hli 2020, piv txwv li nws muaj nyob rau hauv Debian 11, tab sis tsis cuam tshuam rau lub hauv paus tseem ceeb hauv Ubuntu 20.04 LTS. Lub RHEL 8.x thiab openSUSE/SUSE 15 kernels yog thawj raws li cov ceg qub, tab sis nws muaj peev xwm hais tias qhov teeb meem tau rov qab los rau ntawd (tsis tau muaj cov ntsiab lus tseeb). Koj tuaj yeem taug qab qhov kev tso tawm ntawm cov pob khoom hloov tshiab rau cov kev faib tawm no ntawm cov nplooj ntawv no: Debian, SUSE, Ubuntu, RHEL, Fedora, Gentoo, Arch LinuxKev kho rau qhov tsis muaj zog no tau muab tso rau hauv cov ntawv tso tawm 5.16.11, 5.15.25, thiab 5.10.102. Qhov kev kho no kuj suav nrog hauv lub kernel siv hauv lub platform. Android.
Qhov tsis zoo yog tshwm sim los ntawm qhov tsis muaj qhov pib ntawm "buf-> chij" tus nqi hauv cov cai ntawm lub luag haujlwm copy_page_to_iter_pipe() thiab push_pipe(), txawm tias qhov tseeb tias lub cim xeeb tsis raug tshem tawm thaum faib cov qauv thiab thaum lub sijhawm ua haujlwm nrog. cov kav dej tsis muaj npe, tus nqi los ntawm lwm txoj haujlwm. Siv cov yam ntxwv no, ib tus neeg siv tsis muaj cai hauv zos tuaj yeem ua tiav qhov zoo li ntawm PIPE_BUF_FLAG_CAN_MERGE tus nqi hauv tus chij, uas tso cai rau koj los npaj cov ntaub ntawv overwriting hauv nplooj ntawv cache los ntawm kev sau cov ntaub ntawv tshiab rau cov yeeb nkab tshwj xeeb uas tsis muaj npe.
Rau kev tawm tsam, cov hom phiaj cov ntaub ntawv yuav tsum tau nyeem tau, thiab txij li cov cai nkag tsis tau kuaj xyuas thaum sau rau hauv cov yeeb nkab, kev hloov pauv hauv nplooj ntawv cache kuj tseem tuaj yeem tsim rau cov ntaub ntawv nyob rau hauv partitions mounted nyeem nkaus xwb (piv txwv li, rau cov ntaub ntawv c CD- ROM). Tom qab hloov cov ntaub ntawv hauv nplooj ntawv cache, thaum nyeem cov ntaub ntawv los ntawm cov ntaub ntawv, cov txheej txheem yuav tsis tau txais cov ntaub ntawv tiag tiag, tab sis cov ntaub ntawv hloov.
Kev ua haujlwm los ntawm kev tsim cov channel tsis muaj npe thiab sau nws nrog cov ntaub ntawv tsis txaus ntseeg txhawm rau kom ntseeg tau tias tus chij PIPE_BUF_FLAG_CAN_MERGE tau teeb tsa hauv txhua lub nplhaib sib txuas nrog nws. Tom ntej no, cov ntaub ntawv yog nyeem los ntawm cov channel, tab sis tus chij tseem nyob rau hauv tag nrho cov piv txwv ntawm pipe_buffer qauv nyob rau hauv lub pipe_inode_info nplhaib qauv. Kev hu mus rau splice() yog ua kom nyeem cov ntaub ntawv los ntawm lub hom phiaj cov ntaub ntawv mus rau hauv cov yeeb nkab tsis muaj npe, pib ntawm qhov xav tau offset. Thaum sau cov ntaub ntawv rau cov yeeb nkab tsis muaj npe no, vim yog tus chij PIPE_BUF_FLAG_CAN_MERGE tau teeb tsa, cov ntaub ntawv hauv nplooj ntawv cache yuav raug sau dua es tsis txhob tsim qhov piv txwv tshiab ntawm cov qauv pipe_buffer.
Tau qhov twg los: opennet.ru
