Vulnerabilitas in cdnjs quae in codice exsecutionis in Cloudflare servientibus concessa est

A critical vulnerability has been identified in the Cloudflare's cdnjs content delivery network, which is designed to speed up delivery of JavaScript libraries, sino arbitrary code execution on CDN servers. Periculum problematum aggravatur eo quod circiter 12.7% omnium situs in Interreti servitute utuntur ad JavaScript bibliothecas download, et compromissum infrastructurae efficit ut possibilitas restituat bibliothecas quibusvis ex his locis provisum.

The cdnjs service downloads packages from Git or an NPM repository, after which it allows any site to use the Cloudflare content delivery network for free to speed up the loading of JavaScript libraries. Cum studeo codicem cdnjs componentium in GitHub editum, revelatum est fasciculos NPM exsolvere in tgz archivis, archivum/bitumen moduli in lingua Go lingua adhibitum esse, quod indicem documentorum sine viis normalibus producit. . In casu, cum scriptura laxet contenta in indice dato, praesentia in tabulariorum archivo sicut "../../../../../../../tmp/test" potest ducunt ad arbitrarios tabellas scribendas in systemate, quantum ad ius aditum permittunt.

Proponebatur oppugnator applicare posse bibliothecam suam ad cdnjs addere et in fasciculos notis speciali destinatis archivo continens cum "../" notis in itinere ad NPM repositorium. De servientibus cdnjs, operatio "autoupdata" periodice perficitur, in quibus tracto novas versiones bibliothecae propositae et contenta unpackes. Lima utens cum viis "../", oppugnator limas rescribere potest cum scriptorum ministerio et codicem suum exequi in servo in quo vestimenta fiebat.

In casu de actis de Git downloading, deprehensum est tractatorem updates de downloads rationi symbolicas nexus non inspicere cum imaginum e Git effingendarum. Pluma hoc effecit ut lectionem ullius imagini a servo instituere posset addendo nexus symbolicos Git.

Placuit experimenta incipere cum demonstratione cdnjs caesim in HackerOne praemium accipere probando hypothesin de lectione lima. Symbolica pagina test.js addita est repositorio Git bibliothecae JavaScriptonicae per CDN ministratae, ostendens fasciculum /proc/self/maps. Postquam novam bibliothecae versionem evulgavit, tracto update hoc repositorium processit et tabellam certam in cdnjs edidit (test.js ligamen symbolicum creatum est et cum haec fasciculus postulabatur, contenta /proc/self/mapis reddita sunt. ).

Substituens symbolicum nexum tabellae /proc/self/environ, auctor vestigationis animadvertit datam esse datam valorum variabilium ambientium GITHUB_REPO_API_KEY et WORKERS_KV_API_TOKEN contineri. Prima variabilis clavis API reposuit ad scribendum accessum ad robocdnjs repositorium in GitHub. Secunda variabilis signum repositum in KV in cdnjs reposuit. Per informationes receptas, oppugnator mutationes cdnjs facere potuit ac infrastructuram perfecte componi.

Source: opennet.ru