Cloudflare es el servicio de CDN más utilizado en Internet. Una CDN permite redistribuir la carga de una web o servicio, acercándose más al final, y replicando el contenido original de una página web. Por ello, un fallo o una vulnerabilidad en este sistema puede ser muy peligroso, y la compañía ha anunciado que ha parcheado uno de ellos.
La vulnerabilidad estaba presente en el sistema gratuito y de código abierto CDNJS. Este sistema es utilizado por millones de páginas web (el 12,7% del total), y cuenta con 4.000 bibliotecas de JavaScript y CSS accesibles públicamente en GitHub, siendo el segundo mayor CDN de JavaScript del mundo.
El fallo ha sido descubierto por un investigador de seguridad llamado Ryotak. La vulnerabilidad consiste en que, básicamente, es posible subir archivos con contenido malicioso al GitHub del proyecto de manera que quienes utilicen el código estén implementando directamente el malware.
Un fallo permitía meter exploits en archivos de GitHub
Mientras investigaba posibles ataques en la web de cdnjs.com, RyotaK se dio cuenta de que, para todas las bibliotecas que todavía no estaban en CDNJS, podía sugerir una nueva biblioteca a través de GitHub. Así, estudió los scripts presentes en cdnjs/bot-ansible y cdnjs/tools, incluyendo un script de autoupdate que facilitaba la obtención automatizada de bibliotecas.
Los scripts actualizan automáticamente el servidor de CDNJS con nuevas versiones lanzados por los autores en los correspondientes registros de NPM (Node Package Manager). Así, por cada modificar las que hay almacenadas en la caché de los workers.
Por ello, el investigador reportó la vulnerabilidad a Cloudflare en abril de este año, y la compañía aplicó la solución al fallo en cuestión de horas. Sin embargo, en las semanas posteriores tuvieron que aplicar soluciones más específicas para cada repositorio. El investigador celebró la rápida respuesta de Cloudflare a la vulnerabilidad, y trabajó conjuntamente con él para solucionarla.