Vulnerabilities hauv eBPF uas tso cai rau Spectre 4 tiv thaiv kev tiv thaiv kom dhau

Ob qhov tsis zoo tau raug txheeb xyuas hauv Linux ntsiav uas tso cai rau eBPF subsystem siv los hla kev tiv thaiv Spectre v4 nres (SSB, Speculative Store Bypass). Siv qhov kev pab cuam BPF uas tsis tsim nyog, tus neeg tawm tsam tuaj yeem tsim cov xwm txheej rau kev ua tiav ntawm qee qhov kev ua haujlwm thiab txiav txim siab cov ntsiab lus ntawm qhov chaw tsis txaus ntseeg ntawm cov ntsiav nco. Cov neeg saib xyuas ntawm eBPF subsystems hauv cov ntsiav tau txais kev nkag mus rau tus qauv siv los ua pov thawj tias muaj peev xwm ua rau muaj kev tawm tsam hauv kev xyaum. Cov teeb meem tau raug kho nyob rau hauv daim ntawv ntawm thaj ua rau thaj (1, 2), uas yuav suav nrog hauv qhov hloov tshiab Linux kernel tom ntej. Kev hloov tshiab hauv cov khoom siv faib khoom tseem tsis tau tsim (Debian, RHEL, SUSE, Arch, Fedora, Ubuntu).

Spectre 4 txoj kev tawm tsam yog ua raws li kev rov ua kom cov ntaub ntawv khaws cia hauv lub processor cache tom qab muab pov tseg qhov tshwm sim ntawm kev ua tiav ntawm kev ua haujlwm thaum ua kev sib hloov sau thiab nyeem cov haujlwm uas siv qhov chaw tsis ncaj. Thaum kev nyeem ntawv ua raws li kev sau ntawv (piv txwv li, mov [rbx + rcx], 0x0; mov rax, [rdx + rsi]), qhov offset ntawm qhov chaw nyeem ntawv yuav raug paub vim muaj kev ua haujlwm zoo sib xws (nyeem cov haujlwm yog ua tau ntau zaus thiab nyeem tau tuaj yeem ua tau los ntawm lub cache) thiab tus processor tuaj yeem ua qhov kev nyeem ua ntej sau yam tsis tau tos rau qhov kev sau ntawv indirection offset xam.

Yog hais tias, tom qab xam qhov offset, ib qho kev sib tshuam ntawm lub cim xeeb cheeb tsam rau kev sau ntawv thiab nyeem ntawv yog kuaj pom, lub processor yuav tsuas muab pov tseg qhov twb speculatively tau nyeem tau tshwm sim thiab rov ua haujlwm no. Qhov no tso cai rau kev nyeem cov lus qhia kom nkag mus rau tus nqi qub ntawm qee qhov chaw nyob thaum lub khw lag luam tseem tsis tau ua tiav. Tom qab muab pov tseg qhov kev ua haujlwm tsis tiav, cov cim ntawm nws qhov kev ua tiav tseem nyob hauv lub cache, tom qab uas ib qho ntawm cov txheej txheem rau kev txiav txim siab cov ntsiab lus ntawm cov cache tuaj yeem siv los khaws nws raws li kev txheeb xyuas ntawm cov kev hloov pauv hauv lub sijhawm nkag mus rau cached thiab uncached cov ntaub ntawv.

Thawj qhov muaj qhov tsis zoo (CVE-2021-35477) yog tshwm sim los ntawm qhov tsis txaus ntseeg hauv BPF qhov kev txheeb xyuas cov txheej txheem. Txhawm rau tiv thaiv kev tawm tsam Spectre 4, tus neeg pov thawj ntxiv cov lus qhia ntxiv tom qab cov khw muag khoom muaj teeb meem rau lub cim xeeb uas khaws cov nqi tsis muaj txiaj ntsig kom tshem tawm cov kab ntawm kev ua haujlwm dhau los. Kev sau ntawv tsis ua haujlwm tau xav tias yuav nrawm heev thiab thaiv kev ua tiav vim tias nws tsuas yog nyob ntawm tus taw tes rau BPF pawg ncej. Tab sis qhov tseeb, nws tau dhau los ua tau los tsim cov xwm txheej raws li cov lus qhia ua rau kev txiav txim siab ua kom tiav ua ntej lub khw muag khoom ua ntej.

Qhov thib ob qhov tsis zoo (CVE-2021-3455) yog vim qhov tseeb tias thaum BPF tus neeg txheeb xyuas txheeb xyuas qhov muaj peev xwm ua rau lub cim xeeb txuag kev ua haujlwm, nws tsis suav nrog thaj chaw tsis raug cai ntawm pawg BPF, thawj zaug sau ua haujlwm uas tsis muaj kev tiv thaiv. Qhov no feature ua rau muaj peev xwm ua tau ib tug speculative nyeem ua hauj lwm, nyob ntawm ib tug uninitialized nco cheeb tsam, ua ntej ua raws li cov lus qhia hauv khw. Lub cim xeeb tshiab rau BPF pawg yog faib yam tsis tau txheeb xyuas cov ntsiab lus uas twb muaj nyob hauv lub cim xeeb uas tau muab faib, thiab muaj ib txoj hauv kev ua ntej BPF qhov kev pab cuam khiav los tswj cov ntsiab lus ntawm cheeb tsam nco uas yuav muab faib rau BPF pawg.

Tau qhov twg los: opennet.ru

Ntxiv ib saib