Skip to content
KitploitKITPLOIT
OutilsExploitsBlog
Log in
Soumettre
OutilsExploitsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

··Flux·Contact·Confidentialité·© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
uaf-2023-28205 — PoC CVE-2023-28205 : Vulnérabilité Use-After-Free dans Apple WebKit | Kitploit
Outils/GitHubGitHub/seregonwar/uaf-2023-28205
Analyse des VulnérabilitésExploitationExploitation d'Applications WebApprentissage et ÉducationDéveloppement de Charges UtilesExploitation de Binaires
GitHubseregonwar/uaf-2023-28205

uaf-2023-28205

PoC CVE-2023-28205 : Vulnérabilité Use-After-Free dans Apple WebKit

Voir le dépôt
814il y a 8 moisPas encore vérifié
Site web

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager

CVE-2023-28205 : Vulnérabilité Use-After-Free dans Apple WebKit

Cette vulnérabilité affecte Apple WebKit et peut être exploitée via du contenu web malveillant, permettant potentiellement l'exécution de code arbitraire dans le contexte du processus WebKit.

La version de WebKit analysée dans ce dépôt est basée sur WebKit-613.1.17.1 (lignée PlayStation / Safari 15.4).


Description

La preuve de concept déclenche une condition use-after-free (UAF) en retardant intentionnellement l'enregistrement des objets JavaScript tels que Map et Date lors des opérations de clonage structuré.

Cette fenêtre temporelle permet au Ramasse-miettes (GC) de JavaScriptCore de réclamer des objets qui sont encore logiquement en cours d'utilisation, entraînant le déréférencement de pointeurs obsolètes lors de l'exécution continue.


Cause racine technique (CVE-2023-28205)

Composant affecté

  • SerializedScriptValue
  • CloneDeserializer::deserialize()

Cause racine

La vulnérabilité réside dans la logique de désérialisation de clonage structuré, en particulier dans la façon dont les objets JavaScript nouvellement créés sont suivis lors de la désérialisation récursive.

Dans SerializedScriptValue.cpp, le désérialiseur utilise des conteneurs WebKit standards tels que :

Vector<JSObject*, 32> outputObjectStack;
Vector<JSMap*, 4> mapStack;
Vector<JSSet*, 4> setStack;

Ces conteneurs Vector ne sont pas analysés par le Ramasse-miettes. Si un cycle de ramasse-miettes est déclenché pendant la désérialisation (par exemple via une pression mémoire ou une exécution JS réentrante), les objets référencés uniquement par ces conteneurs peuvent être collectés incorrectement.

Le désérialiseur continue cependant d'utiliser ces pointeurs pendants, entraînant une condition use-after-free.

Correctif manquant

Le correctif de sécurité officiel de WebKit (commit c9880de) remplace ces conteneurs par MarkedVector, une structure compatible GC qui enregistre correctement son contenu comme racines GC.

Dans la version analysée :

  • MarkedVector n'est pas implémenté
  • CloneDeserializer utilise toujours Vector
  • Le GC n'analyse pas ces piles d'objets temporaires

Cela confirme que la version est totalement vulnérable à CVE-2023-28205.


Analyse du crash

Le crash suivant a été déclenché de manière fiable par la PoC et est cohérent avec un déréférencement de pointeur obsolète post-GC.

Indicateurs clés

  • Signal : SIGSEGV (11)
  • Adresse de défaut : 0x0000000000000068
  • Processus : SceNKWebProcess
  • Module : libSceNKWebKit.sprx

L'adresse de défaut 0x68 indique un déréférencement de pointeur NULL avec un décalage de champ d'objet, une signature classique de l'accès à un objet JavaScript libéré.

L'état des registres confirme :

  • RAX = 0x0 (base d'objet NULL)
  • Exécution entièrement dans l'espace utilisateur de WebKit
  • Aucune implication du noyau ou d'appel système

Ce comportement de crash est une manifestation directe de l'UAF du CloneDeserializer décrit ci-dessus.


Dump de crash

Cliquez pour développer le dump de crash
Télécharger l’outil