Vulnerabbiltà fis-cdnjs li ppermettiet l-eżekuzzjoni tal-kodiċi fuq is-servers Cloudflare

Ġiet identifikata vulnerabbiltà kritika fin-netwerk tal-kunsinna tal-kontenut cdnjs ta' Cloudflare, li huwa ddisinjat biex iħaffef il-kunsinna ta' libreriji JavaScript, li jippermetti l-eżekuzzjoni ta' kodiċi arbitrarja fuq is-servers CDN. Il-periklu tal-problema huwa aggravat mill-fatt li madwar 12.7% tas-siti kollha fuq l-Internet jużaw is-servizz biex tniżżel libreriji JavaScript, u ​​l-kompromess tal-infrastruttura jagħmilha possibbli li tissostitwixxi l-libreriji pprovduti minn kwalunkwe minn dawn is-siti.

Is-servizz cdnjs iniżżel pakketti minn Git jew repożitorju tal-NPM, u wara jippermetti lil kwalunkwe sit juża n-netwerk tal-kunsinna tal-kontenut Cloudflare b'xejn biex iħaffef it-tagħbija tal-libreriji JavaScript. Meta studjat il-kodiċi tal-komponenti cdnjs ippubblikati fuq GitHub, ġie żvelat li biex tneħħi l-pakkjar tal-pakketti NPM fl-arkivji tgz, jintuża l-modulu standard arkivju/tar fil-lingwa Go, li jipproduċi lista ta 'fajls kif inhi, mingħajr ma jiġu normalizzati l-mogħdijiet. . Fil-każ meta l-iskript jispakkja l-kontenut ibbażat fuq il-lista mogħtija, il-preżenza fl-arkivju ta 'fajls bħal "../../../../../../../tmp/test" tista' twassal għall-kitba fuq il-fajls arbitrarji fis-sistema, safejn jippermettu d-drittijiet ta 'aċċess.

Ġie ssuġġerit li attakkant jista' japplika biex iżid il-librerija tiegħu mas-cdnjs u jtella' arkivju ddisinjat apposta li jkun fih fajls b'karattri “../” fit-triq għar-repożitorju tal-NPM. Fuq is-servers cdnjs, issir operazzjoni "awtomatika" perjodikament, li matulha l-handler iniżżel verżjonijiet ġodda tal-librerija proposta u jispakkja l-kontenut. Bl-użu ta 'fajls b'mogħdijiet "../", attakkant jista' jikteb fuqu fajls bi skripts tas-servizz u jesegwixxi l-kodiċi tagħhom fuq is-server li fuqu sar il-unpacking.

Fil-każ tat-tniżżil ta 'aġġornamenti minn Git, ġie skopert li l-immaniġġjar li tniżżel l-aġġornamenti ma qiesx links simboliċi meta kkopja fajls minn Git. Din il-karatteristika għamlitha possibbli li jiġi organizzat il-qari ta 'kwalunkwe fajls mis-server billi żżid links simboliċi ma' Git.

Ġie deċiż li jibdew esperimenti b'dimostrazzjoni ta 'hacking cdnjs biex jirċievu premju f'HackerOne billi tiġi ttestjata l-ipoteżi dwar il-qari tal-fajls. Rabta simbolika test.js ġiet miżjuda mar-repożitorju Git tal-librerija JavaScript moqdija permezz tas-CDN, li tipponta lejn il-fajl /proc/self/maps. Wara li ppubblika verżjoni ġdida tal-librerija, il-handler tal-aġġornament ipproċessa dan ir-repożitorju u ppubblika l-fajl speċifikat f'cdnjs (test.js inħoloq bħala link simboliku u meta dan il-fajl intalab, il-kontenut ta' /proc/self/maps ġie rritornat ).

Meta tissostitwixxi link simboliku għall-fajl /proc/self/environ, l-awtur tal-istudju nnota li d-dejta mogħtija kienet fiha l-valuri tal-varjabbli ambjentali GITHUB_REPO_API_KEY u WORKERS_KV_API_TOKEN. L-ewwel varjabbli ħażen iċ-ċavetta API għall-aċċess għall-kitba għar-repożitorju robocdnjs fuq GitHub. It-tieni varjabbli ħażen it-token għall-ħażna KV f'cdnjs. Bl-użu tal-informazzjoni riċevuta, l-attakkant jista 'jagħmel bidliet fis-cdnjs u jikkomprometti kompletament l-infrastruttura.

Sors: opennet.ru

Żid kumment