Skip to content
KitploitKITPLOIT
OutilsBlog
Soumettre
OutilsBlog
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
Outils/GitHubGitHub/dark-life944/cve-2025
Criminalistique MémoireAnalyse des VulnérabilitésExploitationFuzzingApprentissage et ÉducationExploitation de Binaires
GitHubdark-life944/cve-2025

CVE-2025

Ceci est un POC pour IOS 0click CVE-2025-43300

Voir le dépôt
1il y a 0 ansPas encore vérifié

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-2025-43300 : Corruption mémoire dans le traitement d'images DNG sur iOS/macOS

Aperçu

CVE-2025-43300 est une vulnérabilité critique de corruption mémoire dans le framework de traitement d'images d'Apple qui affecte iOS 18.6.1 et les systèmes macOS. La vulnérabilité réside dans le code de décompression JPEG Lossless du bundle RawCamera.bundle, déclenchée par des incohérences entre les métadonnées TIFF et les paramètres du flux JPEG dans les fichiers DNG.

Détails de la vulnérabilité

Cause racine

La vulnérabilité provient d'une incohérence métadonnées/flux dans les fichiers DNG (Digital Negative) :

  1. SamplesPerPixel : les métadonnées de l'en-tête TIFF indiquent les composantes de couleur attendues
  2. Nombre de composantes SOF3 : les flux JPEG Lossless spécifient les composantes de données réelles
  3. Lorsque ces valeurs diffèrent, l'allocation et le traitement deviennent désalignés.

Flux de corruption mémoire

root@kitploit:~
1. Parser reads SamplesPerPixel from TIFF metadata (e.g., 2 components)
2. System allocates buffer: width × height × 2 components
3. JPEG decoder reads SOF3 component count (e.g., 1 component)
4. Decoder writes data based on inconsistent assumptions
5. Buffer overflow occurs when more data is written than allocated

Vecteur d'attaque

  • Vulnérabilité zero-click : aucune interaction utilisateur requise
  • Traitement automatique : déclenché par la visualisation, l'importation ou la réception de fichiers DNG
  • Impact multiplateforme : affecte les systèmes iOS et macOS
  • Corruption mémoire : peut conduire à des crashs d'applications ou à une exécution de code potentielle

Présentation des outils

Ce dépôt contient deux outils Python pour analyser et reproduire CVE-2025-43300 :

1. DNG Vulnerability Analyzer (dng_vulnerability_analyzer.py)

Objectif : Analyse la structure des fichiers DNG pour identifier les conditions de vulnérabilité

Fonctionnalités clés :

  • Analyse la structure des fichiers TIFF/DNG, y compris les IFD et les SubIFD
  • Localise les balises de métadonnées SamplesPerPixel
  • Identifie les marqueurs SOF3 JPEG Lossless et le nombre de composantes
  • Détecte les incohérences métadonnées/flux
  • Rapporte les offsets d'octets exacts pour la modification

Utilisation :

root@kitploit:~
python3 dng_vulnerability_analyzer.py <dng_file>

Sortie :

  • Analyse de la structure du fichier
  • Emplacements et valeurs des balises de métadonnées
  • Informations sur les composantes du flux JPEG
  • Évaluation de la vulnérabilité
  • Offsets spécifiques pour la création du POC

2. Safe Hex Modifier (hex_modifier.py)

Objectif : Crée des fichiers de preuve de concept en modifiant en toute sécurité des octets spécifiques

Fonctionnalités clés :

  • Vérifie les valeurs d'octets attendues avant modification
  • Crée des hachages SHA256 pour le suivi des fichiers
  • Génère des rapports de différence binaire
  • Implémente des contrôles de sécurité pour éviter toute corruption accidentelle
  • Prend en charge la création de POC manuelle et automatisée

Utilisation :

root@kitploit:~
# Create POC using known vulnerable offsets
python3 hex_modifier.py create-poc <input.dng>

# Manual byte modification
python3 hex_modifier.py modify <input.dng> <offset> <old_byte> <new_byte> <output.dng>

# Generate diff report
python3 hex_modifier.py diff <original.dng> <modified.dng>

Processus de création du POC

Étape 1 : Analyser le fichier cible

root@kitploit:~
python3 dng_vulnerability_analyzer.py IMGP0847.DNG

Cela identifie :

  • L'emplacement des métadonnées SamplesPerPixel
  • Les emplacements du nombre de composantes JPEG SOF3
  • Les valeurs actuelles et les modifications suggérées

Étape 2 : Créer un échantillon vulnérable

Le POC nécessite deux modifications d'octets spécifiques :

  1. Augmenter les métadonnées SamplesPerPixel (généralement de 1 à 2)
  2. Diminuer le nombre de composantes SOF3 (généralement de 2 à 1)
root@kitploit:~
python3 hex_modifier.py create-poc IMGP0847.DNG

Étape 3 : Vérifier le POC

root@kitploit:~
python3 dng_vulnerability_analyzer.py vuln_poc_IMGP0847.dng

Confirme que l'incohérence existe et que la vulnérabilité est déclenchée.

Pourquoi le POC fonctionne

Mécanisme technique

  1. Phase d'allocation :

    • Le parseur d'images lit SamplesPerPixel = 2
    • Alloue un tampon pour 2 composantes de données de pixels
    • Taille du tampon = largeur_image × hauteur_image × 2
  2. Phase de traitement :

    • Le décodeur JPEG Lossless rencontre un SOF3 avec 1 composante
    • La logique d'analyse devient confuse quant à la taille réelle vs attendue des données
    • Tente d'écrire des données sur la base d'hypothèses incohérentes
  3. Corruption mémoire :

    • Plus de données sont écrites dans le tampon que ce qui a été alloué initialement
    • Le dépassement de tampon corrompt les régions mémoire adjacentes
    • Entraîne un crash de l'application ou une exécution de code potentielle

Spécificités du format de fichier

Les fichiers DNG utilisent le format conteneur TIFF avec des flux JPEG Lossless intégrés :

  • Métadonnées TIFF : décrivent les propriétés de l'image et les informations de couleur
  • Flux JPEG : contiennent les données de pixels compressées
  • Relation de confiance : existe entre les métadonnées et le contenu du flux
  • Faille de validation : permet à des valeurs incohérentes d'atteindre le code de traitement

Évaluation de l'impact

Sévérité : Critique

  • Score CVSS : élevé (zero-click, corruption mémoire, large impact)
  • Systèmes affectés : iOS 18.6.1, systèmes macOS avec traitement d'images similaire
  • Vecteur d'attaque : transfert de fichiers réseau/local
  • Interaction utilisateur : aucune requise
  • Périmètre : tous les appareils traitant des fichiers DNG

Scénarios concrets

  • Pièces jointes d'e-mails contenant des fichiers DNG
  • Transferts AirDrop
  • Synchronisation de photos dans le cloud
  • Téléchargements web d'échantillons de photographes
  • Partage de médias dans les applications de messagerie

Atténuations et correctifs

Réponse du fournisseur

  • Corrigé dans iOS 18.6.2 : Apple a implémenté une validation appropriée des métadonnées
  • Mises à jour macOS : des correctifs similaires appliqués au traitement d'images de macOS
  • Cause racine : ajout de contrôles de cohérence entre les métadonnées et les paramètres du flux

Atténuations recommandées

  1. Mettre à jour les systèmes : installer iOS 18.6.2 ou version ultérieure
  2. Validation des entrées : vérifier la cohérence des métadonnées dans les parseurs personnalisés
  3. Contrôle des limites : implémenter une validation stricte de la taille des tampons
  4. Fuzzing : tester régulièrement les parseurs de formats de fichiers

Structure du fichier et détails techniques

Structure TIFF/DNG

root@kitploit:~
TIFF Header → IFD Chain → SubIFDs → Image Data
├── Metadata Tags (SamplesPerPixel, Compression, etc.)
├── JPEG Lossless Streams (SOF3 markers)
└── Pixel Data (compressed)

Emplacements clés de la vulnérabilité

  • Balise SamplesPerPixel : balise TIFF 0x0115 dans les structures IFD
  • Marqueurs SOF3 : début de trame JPEG Lossless (0xFFC3)
  • Nombre de composantes : octet à l'offset +9 du marqueur SOF3
  • Désalignement critique : lorsque la valeur de la balise ≠ nombre de composantes

Directives de test

Environnement de test sûr

  1. Utiliser des systèmes isolés : machines virtuelles ou appareils de test dédiés
  2. Créer des instantanés : avant de tester les fichiers POC
  3. Surveiller les crashs : vérifier les journaux système et les rapports de crash
  4. Isolation réseau : empêcher le partage involontaire de fichiers

Comportement attendu

  • Systèmes vulnérables : crash de l'application, erreurs de corruption mémoire
  • Systèmes corrigés : gestion d'erreur élégante ou traitement correct
  • Indicateurs de journaux : violations d'accès mémoire, erreurs de segmentation

Références techniques

Documentation des formats de fichiers

  • Spécification TIFF 6.0 : structure des balises et format IFD
  • Spécification DNG : format Adobe Digital Negative
  • Norme JPEG : compression sans perte (ITU-T T.87)

Recherche en sécurité

  • Techniques de corruption mémoire : principes fondamentaux du dépassement de tampon
  • Fuzzing de formats de fichiers : découverte automatisée de vulnérabilités
  • Sécurité des parseurs : bonnes pratiques de validation des entrées

Avertissement : Cette recherche est fournie à des fins éducatives et de sécurité défensive uniquement. Les utilisateurs sont responsables du respect des lois applicables et des directives éthiques.

REMARQUE

Le crash prend environ 1 à 3 minutes avant d'être déclenché. Amusez-vous bien. Et pour le POC, vous pouvez exécuter open vuln_file.dng pour lancer le fichier ou simplement l'apercevoir et il sera exécuté.

Télécharger l’outil