Cyflwr ras yn y casglwr sbwriel cnewyllyn Linux, a allai arwain at gynnydd mewn breintiau

Cyhoeddodd Jann Horn o dîm Project Zero Google, a ddarganfu'r gwendidau Spectre a Meltdown, dechneg ar gyfer manteisio ar wendid (CVE-2021-4083) yn y casglwr sbwriel cnewyllyn. LinuxMae'r bregusrwydd yn cael ei achosi gan gyflwr hil wrth glirio disgrifwyr ffeiliau soced Unix ac mae'n bosibl y bydd yn caniatáu i ddefnyddiwr lleol heb freintiau weithredu cod cnewyllyn.

Mae'r broblem yn ddiddorol oherwydd ystyriwyd bod y ffenestr amser y mae'r cyflwr ras yn amlygu ei hun ynddi yn rhy fach i ganiatáu creu manteision go iawn. Fodd bynnag, dangosodd awdur yr astudiaeth y gall hyd yn oed bregusrwydd o'r fath, a oedd yn amheus i ddechrau, ddod yn ffynhonnell ymosodiadau go iawn os oes gan greawdwr yr anfanteision y sgiliau a'r amser angenrheidiol. Dangosodd Jann Horn sut, trwy driniaethau manwl, y gellir lleihau cyflwr ras sy'n digwydd wrth alw close() ac fget() ar yr un pryd i fregusrwydd defnydd-ar-ôl-ryddhau y gellir ei fanteisio'n llawn, gan ganiatáu mynediad i strwythur data cnewyllyn sydd eisoes wedi'i ryddhau.

Mae cyflwr ras yn digwydd wrth gau disgrifiwr ffeil trwy alw close() ac fget() ar yr un pryd. Gall yr alwad close() gwblhau cyn fget(), sy'n drysu'r casglwr sbwriel oherwydd, yn ôl y refcount, ni fydd gan strwythur y ffeil unrhyw gyfeiriadau allanol, ond bydd yn parhau i fod ynghlwm wrth y disgrifiwr ffeil. Mae hyn yn golygu y bydd y casglwr sbwriel yn tybio bod ganddo fynediad unigryw i'r strwythur, ond mewn gwirionedd, am gyfnod byr o amser, bydd y cofnod sy'n weddill yn y tabl disgrifiwr ffeiliau yn dal i bwyntio at y strwythur sy'n cael ei ryddhau.

Er mwyn cynyddu'r tebygolrwydd o ddod ar draws amodau ras, defnyddiwyd sawl tric, a oedd yn caniatáu i'r gyfradd llwyddiant ecsbloetio gael ei chynyddu i 30% gyda chyflwyniad optimeiddiadau penodol i'r system. Er enghraifft, i gynyddu'r amser y mae'n ei gymryd i gael mynediad at strwythur gyda disgrifwyr ffeiliau gan gannoedd o nanoeiliadau, cafodd data ei droi allan o storfa'r prosesydd trwy lygru'r storfa â gweithgaredd ar graidd CPU arall. Roedd hyn yn caniatáu i'r strwythur gael ei adfer o'r cof yn hytrach nag o storfa'r CPU cyflym.

Yr ail nodwedd bwysig oedd defnyddio ymyriadau a gynhyrchwyd gan yr amserydd caledwedd i ymestyn yr amod ras. Dewiswyd yr amseru fel y byddai'r trinwr ymyriadau yn sbarduno yn ystod yr amod ras, gan ymyrryd â gweithredu cod dros dro. I ohirio dychweliad rheolaeth ymhellach, cynhyrchodd epoll tua 50 o gofnodion ciw aros, gan olygu bod angen ailadrodd yn y trinwr ymyriadau.

Datgelwyd y dechneg ecsbloetio ar gyfer y bregusrwydd hwn ar ôl cyfnod di-ddatgelu o 90 diwrnod. Amlygodd y broblem ei hun gan ddechrau gyda chnewyllyn 2.6.32 a chafodd ei thrwsio ddechrau mis Rhagfyr. Cynhwyswyd y trwsio yng nghnewyllyn 5.16 a chafodd ei ôl-gludo hefyd i ganghennau cnewyllyn LTS a phecynnau cnewyllyn a gynhwysir mewn dosraniadau. Yn nodedig, darganfuwyd y bregusrwydd yn ystod dadansoddiad o broblem debyg, CVE-2021-0920, sy'n effeithio ar y casglwr sbwriel wrth drin y faner MSG_PEEK.

Ffynhonnell: opennet.ru

Prynu gwesteio dibynadwy ar gyfer gwefannau sydd â diogelwch DDoS, gweinyddwyr VPS VDS 🔥 Prynu cynnal gwefannau dibynadwy gyda diogelwch DDoS, gweinyddion VPS VDS | ProHoster