Cloudflare parandas oma tasuta ja avatud lähtekoodiga CDNJS-is potentsiaalselt šokeeriva kriitilise haavatavuse 12,7% kõigist veebisaitidest Internetis.
CDNJS teenindab miljoneid veebisaite, kus on GitHubis avalikult salvestatud üle 4000 JavaScripti ja CSS-i teegi, mis teeb sellest suuruselt teise JavaScripti CDN-i.
Haavatavuse ärakasutamine hõlmas pakettide avaldamist Cloudflare'i CDNJS-i GitHubi ja npm-i abil, et käivitada haavatavus Path Traversal, ja lõpuks koodi kaugkäivitamist.
Kui seda haavatavust ära kasutatakse, viiks see CDNJS-i infrastruktuuri täieliku kahjustamiseni.
Alates 'ZIP-slipist' kuni koodi kaugkäitamiseni
Sel nädalal turvateadlane RyotaK selgitab, kuidas ta suutis tarneahela rünnakuid otsides leida meetodi Cloudflare'i CDNJS-võrgu täielikuks kahjustamiseks.
Sisu edastamise võrgud (CDN) mängivad olulist rolli Interneti turvalisuse, terviklikkuse ja kättesaadavuse toetamisel, kuna enamik veebisaite tugineb populaarsete JavaScripti teekide ja CSS-i skriptide laadimiseks nendele teenustele.
CDN-idest võib saada vastaste sihtimisvõimalus, kuna ohu korral võivad rünnakul olla kaugeleulatuvad tagajärjed paljudele veebisaitidele, veebipoodidele ja nende klientidele.
Vaadates veebisaiti cdnjs.com, märkas RyotaK, et raamatukogude jaoks, mida CDNJS-is veel polnud, võib ta soovitada lisada CDNJS-i kaudu uus teek GitHubi arhiiv .

Kasutajad saavad taotleda paketi avaldamist CDNJS GitHubi hoidlas
Pärast selle GitHubi hoidla ja külgnevate hoidlate uurimist, mis koos CDNJS-i ökosüsteemi toimima panevad, on RyotaK leidnud viisi, kuidas meelitada servereid suvalise koodi käivitamisele.
Eelkõige uuris teadlane aastal leitud skripte cdnjs / bot-ansible see on cdnjs/tööriistad , sealhulgas a automaatne värskendus skript, mis hõlbustas raamatukogu värskenduste automaatset taastamist.
Need skriptid värskendaksid perioodiliselt CDNJS-serverit tarkvarateekide uusimate versioonidega, mille vastavad autorid on vastavas npm-registris välja andnud.
Teisisõnu, iga CDNJS GitHubi hoidlas avaldatud teegi jaoks laaditakse selle uusim versioon alla lingitud npm-registrist ja npm-versiooni haldaks ka raamatukogu autor.
RyotaK mõtles, mis juhtuks, kui tema CDNJS-ile avaldatud raamatukogul oleks vastav npm versioon, mis sisaldab Risttee löök.
Pange tähele, et npm-paketid avaldatakse TGZ (.tar.gz) arhiividena, mida saab hõlpsasti luua peidetud tee läbimise exploitidega.
Teadlane avaldas esmalt testraamatukogu nimega hei-sven CDNJS-ile GitHubi abil ja hakkas seejärel npm-registris hey-sveni uuemaid versioone välja andma.
Uuemates versioonides 'hei-sven' avaldatud npm-ni, mis lõpuks oleks vastutusele võtta CDNJS-i värskendusrobotidest süstis teadlane Bashi skripte kummalise välimusega radadele.
Need erinevad teed pole midagi muud kui ZIP-/TGZ-failidesse peidetud Path Traversali ärakasutamine – kontseptsioon, mida 2018. aastal populariseeriti kui 'ZIP Slip'.

Teegi 'hey-sven' Npm versioonid 1.0.1 ja 1.0.2 sisaldasid Path Traversal exploite
Allikas: BleepingComputer
Kui CDNJS-serverid on loodud 'hey-sven' npm-failid töödelnud, käivitatakse nende Bashi skriptide sisu serveris.
Kuid teadlane ei tahtnud kogemata olemasolevat skripti üle kirjutada, seetõttu kasutas ta kõigepealt a sümboolsete linkide haavatavused selle kontseptsiooni tõestamise (PoC) testi ajal selle faili sisu lugemiseks, mida see pidi üle kirjutama.
'Kuna Git toetab vaikimisi sümboolseid linke, on Giti hoidlasse sümboolse lingi lisamisega võimalik lugeda suvalisi faile cdnjs teegi uuendusserverist.'
'Kui regulaarselt töötav skriptifail kirjutatakse üle suvaliste käskude täitmiseks, võib automaatse värskendamise funktsioon katkeda, mistõttu otsustasin kõigepealt kontrollida suvalise faili lugemist,' ütles teadlane.
Niipea kui teie loodud PoC on serverisse jõudnud, RyotaK suutis ootamatult alla laadida tundlikke saladusi, nagu GITHUB_REPO_API_KEY ja WORKERS_KV_API_TOKEN CDN-i pakutavates skriptides aadressil https: //cdnjs.cloudflare.com / ...
Algse sümboolse lingi PoC väljund andis uurijale salajased võtmed
Allikas: BleepingComputer
GITHUB_REPO_API_KEY on API-võti, mis annab kirjutamisõigused, võimaldades ründajal muuta mis tahes raamatukogu CDNJS-is või muutke cdnjs.com veebisait ise!
WORKERS_KV_API_TOKEN Saladust saab selle asemel kasutada Cloudflare Workersi vahemälus olevate raamatukogude muutmiseks.
'Nende õiguste kombineerimisel saab CDNJS-i põhiosa, nagu CDNJS-i lähteandmed, KV vahemälu ja isegi CDNJS-i veebisaiti, täielikult manipuleerida. [koos]”, selgitab uurija.
Cloudflare annab vea kõrvaldamiseks välja palju parandusi
Teadlane teatas sellest haavatavusest Cloudflare'ile HackerOne'i haavatavuse avalikustamise programmi kaudu 6. aprillil 2021 ja nägi, et Cloudflare'i meeskond rakendas mõne tunni jooksul vahelduva paranduse.
BleepingComputeri poolt nähtud esialgse paranduse eesmärk on kõrvaldada sümboolse lingi haavatavus:
Esialgse paranduse rakendas CDNJS. autor Cloudflare ( GitHub )
CDNJS-i ökosüsteemi keerukuse tõttu rakendati teadlase sõnul aga järgnevatel nädalatel erinevatele hoidlatele mitmeid spetsiifilisemaid parandusi.
RyotaK jagas ettevõttega BleepingComputer, et kuigi esimene parandus keskendus sümlinkide (sümbolite) keelamisele Giti hoidlates, lahendas see vaid osa probleemist.
'Nad proovisid esmalt sümbollinke keelata, kuid mõistsid, et praegune roboti kujundus on liiga ohtlik. Nii eraldasid nad kõige ohtlikumad omadused.
'Ja muude funktsioonide jaoks rakendatud AppArmors, ' ütles teadlane BleepingComputerile meiliintervjuus.
Application Armor või AppArmor on turvafunktsioon, mis piirab Unixi-põhistes keskkondades töötavate programmide võimalusi eelmääratletud profiilidega, et programmid ei ületaks kogemata neile ettenähtud juurdepääsu ulatust.
Teadlane jagas ka mitmeid parandusi Cloudflare'i levitatava BleepingComputeriga, et kaitsta värskendatud teeke töötlevat automatiseeritud robotit:
Cloudflare teeb vea parandamiseks CDNJS-is mitmeid muudatusi
'Kuigi seda haavatavust saab kasutada ilma erioskusteta, võib see mõjutada paljusid veebisaite.'
'Kuna tarneahelas on palju haavatavusi, mida on lihtne ära kasutada, kuid millel on tohutu mõju, on see minu arvates väga hirmutav,' ütleb RyotaK oma ajakirjas. ajaveebi postitus .
Nagu BleepingComputer varem teatas, põhjustas Magecarti tarneahela rünnak, mis mõjutas tuhandeid veebipoode, Volusioni CDN-i infrastruktuuri kompromissi.
Teadlane kiitis Cloudflare'i välkkiireid intsidentidele reageerimise meeskondi, kes mõne minuti jooksul pärast teadlase aruande saamist muutsid lekkinud saladusi ja tegid temaga koostööd, et uurida PoC haavatavusi.
BleepingComputer võttis ühendust Cloudflare'iga, et teha kindlaks, kas seda haavatavust kasutatakse laialdaselt ära.
Cloudflare'i pressiesindaja ütles BleepingComputerile, et haavatavust ei kasutatud ja nad on teadlasele probleemist teatamise eest tänulikud.
'Nagu aruandest näha, on automatiseeritud süsteemid tuvastanud [teadlase] töö ja volitused tühistati kohe.'
'Uurija teavitas meid tulemustest 6. aprillil ja me lahendasime probleemi 24 tunni jooksul.'
'Samuti on oluline märkida, et me näeme üha rohkem teadlasi selliseid asju postitamas, eriti kui laiendame oma boonusprogrammi ja muudame selle aja jooksul avalikumaks.'
„Meil on hea meel näha teadlasi seda tüüpi teste tegemas ja seda meiega jagada. Me tahame rohkem näha, ' ütles Cloudflare BleepingComputerile.
Värskendus 13:47 ET: lisatud avaldus Cloudflare'ilt.
Mida sa arvad?