O chionn ghoirid bhris an naidheachd sin Chaidh so-leòntachd èiginneach a chomharrachadh ann an an stòr pacaid rubygems.org (tha an so-leòntachd mu thràth air a chlàradh fo CVE-2022-29176), a tha ceadachadh gun chead ceart, cuir pacaidean dhaoine eile an àite anns an stòr le bhith a’ cuir a-steach pasgan dligheach agus a’ luchdachadh suas faidhle eile leis an aon ainm agus àireamh tionndaidh na àite.
Tha e air ainmeachadh sin tha an so-leòntachd mar thoradh air bug anns an inneal-làimhseachaidh gnìomh “yank”., a bhios a’ làimhseachadh a’ phàirt den ainm às deidh an tàthan mar ainm an àrd-ùrlair, a thug air tòiseachadh toirt air falbh pasganan taobh a-muigh a tha a’ freagairt ris a’ phàirt den ainm suas ris a’ charactar tàthan.
Gu sònraichte ann an còd rianadair na h-obrach "Yank", a 'ghairm 'find_by!(full_name: "#{rubygem.name} -#{slug})' chaidh a chleachdadh gus pacaidean a lorg, agus chaidh am paramadair “slug” a chuir gu sealbhadair a’ phacaid gus faighinn a-mach dè an dreach a bu chòir a thoirt air falbh.
Dh’ fhaodadh sealbhadair a’ phacaid “rails-html” a bhith air “sanitizer-1.2.3” a shònrachadh an àite an tionndaidh “1.2.3”, a bheireadh air an obrachadh a bhith a’ buntainn ris an “rails-html-sanitizer-1.2.3” pasgan ″ bho chuideigin eile. »
Chaidh comhairleachadh tèarainteachd airson Rubygems.org fhoillseachadh an-dè.
Bha an comhairliche co-cheangailte ri bug a leig le neach-cleachdaidh droch-rùnach seudan sònraichte a mhèinneadh agus diofar fhaidhlichean a luchdachadh suas leis an aon ainm, àireamh tionndaidh, agus àrd-ùrlar eadar-dhealaichte.
Bheir sinn sùil nas doimhne gus faicinn dè chaidh ceàrr fhad ‘s a bha sinn a’ dol tron phròiseas às-tharraing. Mar chùis-lagha, smaoinichidh sinn air suidheachadh far am bi sinn a’ cruthachadh seud ris an canar “rails-html” leis an rùn cothrom fhaighinn gun chead air an t-seud “rails-html-sanitizer” a thathas a’ cleachdadh fad is farsaing.
Tha e air ainmeachadh sin feumar trì cumhaichean a choileanadh, gus brath a ghabhail gu soirbheachail air an so-leòntachd seo:
- Chan urrainnear an ionnsaigh a dhèanamh ach air pacaidean aig a bheil caractar tàthan nan ainm.
- Bu chòir gum biodh e comasach do neach-ionnsaigh pasgan geam le pàirt den ainm suas ris a’ charactar tàthan. Mar eisimpleir, ma tha an ionnsaigh an-aghaidh a’ phacaid “rails-html-sanitizer”, feumaidh an neach-ionnsaigh am pasgan “rails-html” aca fhèin a chuir anns an ionad-tasgaidh.
- Feumaidh gun deach am pasgan ionnsaigh a chruthachadh anns na 30 latha a dh’ fhalbh no gun a bhith air ùrachadh airson 100 latha.
An duilgheadas air a chomharrachadh le neach-rannsachaidh tèarainteachd mar phàirt de phrògram bounty HackerOne gus cùisean tèarainteachd a lorg ann am pròiseactan stòr fosgailte aithnichte.
An duilgheadas stèidhichte aig RubyGems.org air 5 Cèitean agus a rèir an luchd-leasachaidh, chan eil iad air comharran brathaidh aithneachadh fhathast den so-leòntachd anns na logaichean airson nan 18 mìosan a dh’ fhalbh. Aig an aon àm, cha deach ach sgrùdadh uachdarach a dhèanamh gu ruige seo, agus tha sgrùdadh nas doimhne san amharc san àm ri teachd.
Aig an àm seo, tha sinn den bheachd nach deach brath a ghabhail air an so-leòntachd seo.
Bidh RubyGems.org a’ cur post-d chun a h-uile neach-seilbh seud nuair a thèid dreach gem a leigeil ma sgaoil no a thoirt air falbh. Chan eil sinn air post-d taic sam bith fhaighinn bho luchd-seilbh seudan a’ nochdadh gun deach an t-seud aca a mhèinneadh gun chead.
Cha do lorg sgrùdadh air atharrachaidhean gem thairis air na 18 mìosan a dh’ fhalbh eisimpleirean sam bith de chleachdadh droch-rùnach den so-leòntachd seo. Cha do lorg sgrùdadh a bharrachd airson cleachdadh sam bith a dh’ fhaodadh a bhith air a dhèanamh den bhuannachd seo a bhith a’ cleachdadh a’ bhuannachd seo gus seud a ghabhail thairis gun chead ann an eachdraidh RubyGems. Chan urrainn dhuinn gealltainn nach do thachair e a-riamh, ach chan eil coltas ann.
Gus dearbhadh a dhèanamh air na pròiseactan agad, thathas a ’moladh eachdraidh gnìomhachd a sgrùdadh anns an fhaidhle Gemfile.lock Tha gnìomhachd droch-rùnach air a chuir an cèill ann an làthaireachd atharrachaidhean leis an aon ainm agus dreach, no atharrachadh àrd-ùrlar (mar eisimpleir, nuair a bhios pasgan xxx-1.2.3 ann). .1.2.3 air ùrachadh gu xxx-XNUMX-xxx).
Mar fhuasgladh an aghaidh spoofing de phasganan falaichte ann an siostaman amalachaidh leantainneach no nuair a thathar a’ foillseachadh phròiseactan, Thathas a’ moladh do luchd-leasachaidh Bundler a chleachdadh leis na roghainnean “–frozen” no “–deployment” gus eisimeileachd a dhearbhadh.
Mu dheireadh, ma tha ùidh agad barrachd fhaighinn a-mach mu dheidhinn, faodaidh tu sgrùdadh a dhèanamh air mion-fhiosrachadh anns an ceangal a leanas.
Bi a 'chiad fhear a thog beachd