Vulnerability nyob rau hauv Linux ntsiav uas tso cai rau cov ntaub ntawv nyeem nkaus xwb kom raug

Qhov tsis zoo tau raug txheeb xyuas nyob rau hauv Linux ntsiav (CVE-2022-0847) uas tso cai rau cov ntsiab lus ntawm nplooj ntawv cache tau sau dua rau txhua cov ntaub ntawv, suav nrog cov hauv hom nyeem nkaus xwb, qhib nrog O_RDONLY chij, lossis nyob rau ntawm cov ntaub ntawv kaw lus mounted nyob rau hauv hom nyeem nkaus xwb. Hauv cov ntsiab lus siv tau, qhov tsis zoo tuaj yeem siv los txhaj cov lej rau hauv cov txheej txheem tsis ncaj ncees lossis cov ntaub ntawv tsis raug hauv cov ntaub ntawv qhib. Piv txwv li, koj tuaj yeem hloov cov ntsiab lus ntawm cov ntawv tso cai_keys rau cov txheej txheem sshd. Ib tsab qauv ntawm kev siv yog 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 zoo tshwm sim pib nrog Linux ntsiav 5.8, tso tawm thaum Lub Yim Hli 2020, piv txwv li. tam sim no hauv Debian 11, tab sis tsis cuam tshuam rau lub hauv paus ntsiav hauv Ubuntu 20.04 LTS. Lub RHEL 8.x thiab openSUSE / SUSE 15 kernels yog thawj zaug raws li cov ceg qub, tab sis nws muaj peev xwm hais tias qhov kev hloov pauv uas ua rau muaj teeb meem rov qab mus rau lawv (tsis muaj cov ntaub ntawv qhia tseeb). Koj tuaj yeem taug qab kev tshaj tawm ntawm pob hloov tshiab hauv kev faib tawm ntawm nplooj ntawv no: Debian, SUSE, Ubuntu, RHEL, Fedora, Gentoo, Arch Linux. Ib qho kev txhim kho rau qhov tsis muaj zog tau thov hauv kev tshaj tawm 5.16.11, 5.15.25 thiab 5.10.102. Qhov kev txhim kho kuj suav nrog cov ntsiav siv hauv Android platform.

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

Ntxiv ib saib