So-leòntachd ann an cdnjs a leig le còd a chuir an gnìomh air frithealaichean Cloudflare

Chaidh so-leòntachd èiginneach a chomharrachadh ann an lìonra lìbhrigidh susbaint cdnjs Cloudflare, a tha air a dhealbhadh gus lìbhrigeadh leabharlannan JavaScript a luathachadh, a’ ceadachadh còd neo-riaghailteach a chuir an gnìomh air frithealaichean CDN. Tha cunnart na trioblaid air a dhèanamh nas miosa leis gu bheil timcheall air 12.7% de na làraich air an eadar-lìn a’ cleachdadh na seirbheis gus leabharlannan JavaScript a luchdachadh sìos, agus tha co-rèiteachadh a’ bhun-structair ga dhèanamh comasach na leabharlannan a tha air an toirt seachad le gin de na làraich sin a chuir an àite.

Bidh an t-seirbheis cdnjs a’ luchdachadh sìos pasganan bho Git no stòr NPM, às deidh sin leigidh e le làrach sam bith lìonra lìbhrigidh susbaint Cloudflare a chleachdadh an-asgaidh gus luchdachadh leabharlannan JavaScript a luathachadh. Nuair a bhios tu a’ sgrùdadh còd nan co-phàirtean cdnjs a chaidh fhoillseachadh air GitHub, chaidh innse gun tèid am modal àbhaisteach tasglann / teàrr anns a’ chànan Go a chleachdadh, a chruthaicheas liosta de fhaidhlichean mar a tha, gun a bhith a’ gnàthachadh nan slighean. . Ma tha an sgriobt a’ dì-phapadh an t-susbaint a tha stèidhichte air an liosta a chaidh a thoirt seachad, faodaidh làthaireachd ann an tasglann fhaidhlichean mar “../../../../../../../tmp/test” leantainn gu ath-sgrìobhadh fhaidhlichean neo-riaghailteach san t-siostam, cho fad 's a cheadaicheas còraichean-slighe.

Chaidh a mholadh gum faodadh neach-ionnsaigh tagradh a dhèanamh gus an leabharlann aige a chuir ri cdnjs agus tasglann a chaidh a dhealbhadh gu sònraichte a luchdachadh suas anns a bheil faidhlichean le caractaran “../” air an t-slighe gu stòr NPM. Air frithealaichean cdnjs, thèid gnìomhachd “fèin-ùrachadh” a dhèanamh bho àm gu àm, nuair a bhios an neach-làimhseachaidh a’ luchdachadh sìos dreachan ùra den leabharlann a tha san amharc agus a’ dì-phapadh na tha ann. A’ cleachdadh fhaidhlichean le slighean “../”, faodaidh neach-ionnsaigh ath-sgrìobhadh a dhèanamh air faidhlichean le sgriobtaichean seirbheis agus an còd aca a chuir an gnìomh air an fhrithealaiche air an deach an dì-phapadh a dhèanamh.

A thaobh luchdachadh sìos ùrachaidhean bho Git, chaidh a lorg nach tug an neach-làimhseachaidh a bha a’ luchdachadh sìos na h-ùrachaidhean aire do cheanglaichean samhlachail nuair a bha iad a’ dèanamh lethbhreac de fhaidhlichean bho Git. Rinn am feart seo e comasach leughadh faidhlichean sam bith bhon fhrithealaiche a chuir air dòigh le bhith a’ cur ceanglaichean samhlachail ri Git.

Chaidh co-dhùnadh tòiseachadh air deuchainnean le taisbeanadh de hacking cdnjs gus duais fhaighinn aig HackerOne le bhith a’ dèanamh deuchainn air a’ bheachd-bharail a thaobh leughadh fhaidhlichean. Chaidh test.js ceangail samhlachail a chuir ris an stòr Git den leabharlann JavaScript air a fhrithealadh tro CDN, a’ comharrachadh am faidhle /proc/self/maps. Às deidh dha dreach ùr den leabharlann fhoillseachadh, ghiollaich an neach-làimhseachaidh ùrachadh an stòr seo agus dh’ fhoillsich e am faidhle ainmichte ann an cdnjs (chaidh test.js a chruthachadh mar cheangal samhlachail agus nuair a chaidh am faidhle seo iarraidh, chaidh susbaint /proc/self/maps a thilleadh ).

A’ cur ceangal samhlachail an àite an fhaidhle /proc/self/environ, mhothaich ùghdar an sgrùdaidh gun robh luachan caochladairean àrainneachd GITHUB_REPO_API_KEY agus WORKERS_KV_API_TOKEN anns an dàta a chaidh a thoirt seachad. Bha a’ chiad chaochladair a’ stòradh an iuchair API airson sgrìobhadh cothrom air stòr robocdnjs air GitHub. Bha an dàrna caochladair a’ stòradh an tòcan gu stòr KV ann an cdnjs. A’ cleachdadh an fhiosrachaidh a fhuaireadh, dh’ fhaodadh an neach-ionnsaigh atharrachaidhean a dhèanamh air cdnjs agus am bun-structair a mhilleadh gu tur.

Source: fosgailtenet.ru

Cuir beachd ann