Vulnérabilité dans LibJS permettant d'exécuter du code en ouvrant une page dans le navigateur Ladybird

Une vulnérabilité a été identifiée dans le moteur JavaScript LibJS, utilisé dans le navigateur web Ladybird (CVE-2025-47154), permettant l'exécution de code arbitraire sur le système lors du traitement de code JavaScript spécialement conçu. La vulnérabilité est causée par la libération de mémoire sur le vecteur m_argument_values_buffer, pour lequel un pointeur demeurait dans la structure arguments_list, entraînant ainsi un accès à une zone de mémoire déjà libérée. Un prototype fonctionnel de l'exploit est disponible.

Le chercheur ayant mis en évidence le problème a effectué des tests de fuzzing sur LibJS, au cours desquels 10 plantages ont été enregistrés. L'analyse d'un des plantages a montré que la vulnérabilité pouvait être exploitée lors du traitement de code JavaScript. Celle-ci permettait de lire et d'écrire dans des zones de mémoire arbitraires du processus. L'exécution de code a été réalisée dans l'exploit par la substitution du pointeur de retour de la fonction de rendu. À l'aide de la programmation orientée retour (ROP - Return-Oriented Programming, où l'exploit est formé à partir de morceaux existants d'instructions machine se terminant par une instruction de retour), une chaîne a été créée pour exécuter l'appel système execve afin de lancer une application externe.

Le navigateur Ladybird est développé par Andreas Kling, qui a précédemment travaillé pour Nokia sur KHTML, et plus tard, chez Apple, a été l'un des développeurs de Safari. À son stade actuel, Ladybird est en version pré-alpha, uniquement destinée à un usage par des développeurs. Le projet a initialement été créé comme une application pour le système d'exploitation SerenityOS, mais l'été dernier, il a été séparé en un projet distinct et a reçu un don d'un million de dollars. Le navigateur est écrit en C++ (la décision a été prise de passer au Swift) et est distribué sous une licence BSD. Le projet développe son propre moteur LibWeb, son interpréteur JavaScript LibJS et des bibliothèques associées.

Source : opennet.ru

Acheter un hébergement fiable pour les sites avec protection DDoS, serveurs VPS VDS 🔥 Acheter un hébergement fiable pour les sites avec protection DDoS, serveurs VPS VDS | ProHoster