Gwendidau gwreiddiau lleol ym mhecyn cymorth rheoli pecyn Snap

Mae Qualys wedi nodi dau wendid (CVE-2021-44731, CVE-2021-44730) yn y cyfleustodau snap-confine, a gyflenwir Γ’ baner gwraidd SUID ac a alwyd gan y broses snapd i greu amgylchedd gweithredadwy ar gyfer ceisiadau a gyflwynir mewn pecynnau hunangynhwysol yn y fformat snap. Mae'r gwendidau yn caniatΓ‘u i ddefnyddiwr difreintiedig lleol weithredu cod gyda breintiau gwraidd ar y system. Mae'r materion yn cael eu datrys yn y diweddariad pecyn snapd heddiw ar gyfer Ubuntu 21.10, 20.04 a 18.04.

Mae'r bregusrwydd cyntaf (CVE-2021-44730) yn caniatΓ‘u ymosodiad trwy drin cyswllt caled, ond mae angen amddiffyn cyswllt caled system analluogi (gosod sysctl fs.protected_hardlinks i 0). Achosir y broblem gan ddilysiad anghywir o leoliad ffeiliau gweithredadwy'r rhaglenni helpwr snap-update-ns a snap-discard-ns sy'n rhedeg fel gwraidd. Cyfrifwyd y llwybr i'r ffeiliau hyn yn y ffwythiant sc_open_snapd_tool() yn seiliedig ar ei lwybr ei hun o / proc/self/exe, sy'n eich galluogi i greu cyswllt caled i snap-confine yn eich cyfeiriadur a gosod eich fersiynau eich hun o'r snap- update-ns a snap- utilities yn y cyfeiriadur gwared-ns hwn. Ar Γ΄l rhedeg trwy gyswllt caled, bydd snap-confine gyda hawliau gwraidd yn lansio'r ffeiliau snap-update-ns a snap-discard-ns o'r cyfeiriadur cyfredol, a amnewidiwyd gan yr ymosodwr.

Mae'r ail fregusrwydd yn cael ei achosi gan gyflwr hil a gellir ei ecsbloetio yn y ffurfweddiad diofyn Ubuntu Desktop. Er mwyn i'r camfanteisio weithio'n llwyddiannus yn Ubuntu Server, rhaid i chi ddewis un o'r pecynnau o'r adran β€œFeatured Server Snaps” wrth osod. Mae cyflwr y ras yn amlwg yn y swyddogaeth setup_private_mount() a elwir wrth baratoi gofod enw'r pwynt gosod ar gyfer y pecyn snap. Mae'r swyddogaeth hon yn creu cyfeiriadur dros dro β€œ/ tmp/snap.$SNAP_NAME/tmp” neu'n defnyddio un sy'n bodoli eisoes i rwymo cyfeiriaduron ar gyfer pecyn snap i mewn iddo.

Gan fod enw'r cyfeiriadur dros dro yn rhagweladwy, gall ymosodwr ddisodli ei gynnwys gyda dolen symbolaidd ar Γ΄l gwirio'r perchennog, ond cyn ffonio galwad y system mount. Er enghraifft, gallwch greu symlink "/tmp/snap.lxd/tmp" yn y cyfeiriadur /tmp/snap.lxd yn pwyntio at gyfeiriadur mympwyol, a bydd galwad i mount() yn dilyn y symlink ac yn gosod y cyfeiriadur yn y snap namespace. Mewn ffordd debyg, gallwch osod eich cynnwys yn /var/lib a, thrwy ddisodli /var/lib/snapd/mount/snap.snap-store.user-fstab, trefnu gosod eich cyfeiriadur /etc yn y gofod enw o y pecyn snap i drefnu llwytho eich llyfrgell o gyda hawliau gwraidd trwy ddisodli /etc/ld.so.preload.

Nodir bod creu camfanteisio wedi troi allan yn dasg nad yw'n ddibwys, gan fod y cyfleustodau snap-confine wedi'i ysgrifennu yn Go gan ddefnyddio technegau rhaglennu diogel, mae ganddo amddiffyniad yn seiliedig ar broffiliau AppArmor, yn hidlo galwadau system yn seiliedig ar y mecanwaith seccomp, ac yn defnyddio gofod enw'r mownt ar gyfer ynysu. Fodd bynnag, roedd yr ymchwilwyr yn gallu paratoi camfanteisio gweithredol i ennill hawliau gwraidd ar y system. Bydd y cod manteisio yn cael ei gyhoeddi ymhen ychydig wythnosau ar Γ΄l i ddefnyddwyr osod y diweddariadau a ddarperir.

Ffynhonnell: opennet.ru

Ychwanegu sylw