Dans le package Python Js2Py, qui a Ă©tĂ© tĂ©lĂ©chargĂ© 1,2 million de fois le mois dernier, une vulnĂ©rabilitĂ© (CVE-2024-28397) a Ă©tĂ© identifiĂ©e, permettant de contourner l'isolation sandbox et d'exĂ©cuter du code sur le systĂšme lors du traitement de donnĂ©es spĂ©cialement conçues en JavaScript. Cette vulnĂ©rabilitĂ© peut ĂȘtre exploitĂ©e pour attaquer des programmes utilisant Js2Py pour exĂ©cuter du code JavaScript. Un correctif est actuellement disponible uniquement sous forme de patch. Un prototype d'exploit a Ă©tĂ© prĂ©parĂ© pour tester la possibilitĂ© d'attaque.
Le package Js2Py implémente un interpréteur et un compilateur JavaScript, permettant d'exécuter du code JavaScript dans un environnement isolé une machine virtuelle ou de traduire le JavaScript en une représentation en Python. Le projet est entiÚrement écrit en Python et n'utilise pas de moteurs JavaScript tiers. En pratique, la bibliothÚque est utilisée dans divers indexeurs web, systÚmes de téléchargement et analyseurs de sites web, prenant en charge le traitement de contenu généré par du code JavaScript.
Parmi les applications affectées par la vulnérabilité, on trouve Lightnovel Crawler (un outil pour télécharger des livres depuis des services en ligne et les sauvegarder dans divers formats pour une lecture hors ligne), cloudscraper (qui contourne automatiquement les pages de protection contre les bots utilisées dans le CDN Cloudflare) et pyLoad (un gestionnaire de téléchargements prenant en charge le traitement de pages générées par JavaScript). Lors du traitement de contenu JavaScript spécialement conçu, un attaquant peut réussir à exécuter du code arbitraire au niveau du systÚme dans ces applications.
La vulnĂ©rabilitĂ© rĂ©side dans la mise en Ćuvre de la variable globale Ă l'intĂ©rieur de js2py, permettant d'obtenir une rĂ©fĂ©rence Ă un objet Python Ă partir du code JavaScript exĂ©cutĂ© dans un environnement isolĂ©, malgrĂ© l'appel de la mĂ©thode js2py.disable_pyimport() pour dĂ©sactiver l'importation d'objets Python. Pour exĂ©cuter du code arbitraire sur le systĂšme, un attaquant peut profiter de la vulnĂ©rabilitĂ© pour accĂ©der Ă l'objet Popen du module Python subprocess. Il est Ă noter qu'un changement pour corriger la vulnĂ©rabilitĂ© a Ă©tĂ© soumis au projet Js2Py le premier mars, mais n'a pas encore Ă©tĂ© acceptĂ© aprĂšs trois mois et demi.
Source : opennet.ru
