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
CVE-2026-33317 — Preuve de concept pour CVE-2026-33317, une écriture hors limites dans OP-TEE PKCS#11 TA, démontrant la corruption du tas du Secure World via un modèle d'attribut malformé. | Kitploit
Outils/GitHubGitHub/0xbbdd/cve-2026-33317
Sécurité des Systèmes EmbarquésAnalyse des VulnérabilitésExploitationFuzzingSécurité Matériel et IoTExploitation de Binaires
GitHub0xbbdd/cve-2026-33317

CVE-2026-33317

Preuve de concept pour CVE-2026-33317, une écriture hors limites dans OP-TEE PKCS#11 TA, démontrant la corruption du tas du Secure World via un modèle d'attribut malformé.

Voir le dépôt
il y a 3 moisPas 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-2026-33317 Preuve de concept OP-TEE PKCS#11

Ce dépôt contient la preuve de concept du monde normal, les notes de reproduction, et les journaux capturés pour CVE-2026-33317 / GHSA-8cqw-mg7v-c9p9.

L'avis officiel OP-TEE décrit une validation manquante dans entry_get_attribute_value() pour PKCS11_CMD_GET_ATTRIBUTE_VALUE. Le bogue peut provoquer des lectures hors limites depuis le tas de la TA PKCS#11 et, avec un modèle d'attribut malformé, des écritures au-delà du tampon de modèle temporaire. Cette preuve de concept cible le cas d'écriture hors limites et démontre la corruption du tas du monde sécurisé dans la TA PKCS#11.

  • Avis : https://github.com/OP-TEE/optee_os/security/advisories/GHSA-8cqw-mg7v-c9p9
  • CVE : CVE-2026-33317
  • Paquet concerné : TA OP-TEE PKCS#11
  • Versions concernées selon l'avis : >= 3.13.0
  • Versions corrigées selon l'avis : 4.11 et ultérieures
  • CVSS v3.1 selon l'avis : 8.7 Élevé
  • Faiblesses selon l'avis : CWE-125, CWE-787

Utilisez ceci uniquement dans un laboratoire local ou un autre environnement où vous êtes autorisé à tester OP-TEE.

Contenu de ce dossier

La copie de travail locale à partir de laquelle ce README a été préparé était un espace de travail OP-TEE QEMUv8 aplati. Le répertoire .repo et tous les fichiers/répertoires de métadonnées .git ont été supprimés, de sorte que cette archive locale n'est plus utilisable avec repo sync ou les commandes normales d'historique git.

Le dépôt GitHub exclut intentionnellement les arborescences source volumineuses OP-TEE/QEMU, les chaînes d'outils et les sorties de compilation. Recréez-les à partir de qemu-v8-setup.md, ou copiez les fichiers de la preuve de concept dans une racine de compilation qemu_v8 OP-TEE existante, avant d'exécuter la reproduction QEMU automatisée à partir d'un nouveau clone.

Fichiers importants de niveau supérieur :

L'archive locale préparée contenait également des répertoires source/compilation tels que optee_os, optee_client, qemu, linux, trusted-firmware-a, u-boot, buildroot, out-br et toolchains ; ceux-ci sont ignorés pour la publication.

Résumé de la vulnérabilité

Dans l'arborescence optee_os vulnérable, ta/pkcs11/src/object.c itère sur un modèle d'attribut sérialisé fourni par le client :

root@kitploit:~
cur = (char *)template + sizeof(struct pkcs11_object_head);
end = cur + template->attrs_size;
...
data_ptr = cli_head.size ? cli_ref->data : NULL;
rc = get_attribute(obj->attributes, cli_head.id, data_ptr, &cli_head.size);

La boucle ne prouve pas que chaque en-tête d'attribut et sa zone de données sont entièrement dans le modèle alloué. La preuve de concept envoie :

  • attrs_size = 8, exactement un pkcs11_attribute_head et aucun octet de données.
  • attrs_count = 1.
  • cli_head.id = CKA_LABEL.
  • cli_head.size = 16, correspondant à l'étiquette de 16 octets de l'objet créé.

Cela crée une allocation de modèle de 16 octets :

root@kitploit:~
sizeof(pkcs11_object_head) + attrs_size = 8 + 8 = 16

cli_ref->data pointe alors vers template + 16, exactement un octet au-delà de la fin de l'allocation. get_attribute() dans ta/pkcs11/src/attributes.c constate que la taille fournie par l'appelant est suffisamment grande et copie l'étiquette de 16 octets vers ce pointeur hors limites, corrompant le tas de la TA PKCS#11.

Démarrage rapide

Prérequis utilisés par l'espace de travail QEMUv8 préparé :

  • Hôte Linux x86-64
  • expect
  • Un espace de travail OP-TEE qemu_v8 avec les sorties de compilation, les chaînes d'outils et le binaire QEMU disposés comme l'archive locale décrite dans qemu-v8-setup.md

Compiler la preuve de concept :

root@kitploit:~
./build_poc.sh

Résultat de compilation attendu :

root@kitploit:~
Built: out/bin/c01_poc

Exécuter la reproduction QEMUv8 automatisée :

root@kitploit:~
./run_c01.sh

Le script de lancement vérifie ces fichiers préparés avant de démarrer :

  • out/bin/bl1.bin
  • out/bin/Image
  • out/bin/rootfs.cpio.gz
  • out/bin/c01_poc

Si les artefacts de compilation sont manquants, recréez/compilez d'abord l'espace de travail OP-TEE puis relancez ./build_poc.sh.

Résultat attendu

Le journal du monde normal doit montrer la requête forgée :

root@kitploit:~
[+] TEEC session with PKCS#11 TA opened
[+] INIT_TOKEN  rc=0x00000000 OK
[+] OPEN_SESSION rc=0x00000000, session_handle=0x00000001
[+] CREATE_OBJECT rc=0x00000000, obj_handle=0x00000001
[+] Object has CKA_LABEL = "AAAAAAAAAAAAAAAA" (16 bytes)
[+] Sending malicious C_GetAttributeValue (attrs_size=8, cli_head.size=16)...
[+] GET_ATTRIBUTE_VALUE[0] rc=0xffffffff

Le journal du monde sécurisé doit contenir l'assertion de l'allocateur et le panique de la TA :

root@kitploit:~
E/TA:  assertion 'BH((char *) b - b->bh.bsize)->prevfree == 0' failed at lib/libutils/isoc/bget.c:1022 in brel()
E/TC:? 0 TA panicked with code 0xffff0000
E/LD:  Status of TA fd02c9da-306c-48c7-a49c-bbd827ae86ee

Les journaux capturés d'une exécution réussie sont déjà présents à :

  • out/bin/c01_nw.log
  • out/bin/c01_sw.log

Déroulement de la preuve de concept

c01_poc.c invoque l'UUID de la TA PKCS#11 fd02c9da-306c-48c7-a49c-bbd827ae86ee via libteec :

  1. Ouvrir une session TEEC avec la TA PKCS#11.
  2. Initialiser l'emplacement de jeton 0.
  3. Ouvrir une session PKCS#11 en lecture/écriture.
  4. Créer un objet de session AES avec CKA_LABEL = "AAAAAAAAAAAAAAAA".
  5. Envoyer une requête CMD_GET_ATTRIBUTE_VALUE malformée avec attrs_size = 8 et cli_head.size = 16.

La première requête malveillante suffit à corrompre les métadonnées du tas. La TA panique ensuite lorsque l'allocateur bget d'OP-TEE détecte les métadonnées de bloc corrompues.

Notes

  • run_c01.sh partage out/bin dans l'invité via virtio-9p et écrit les journaux de retour dans le même répertoire.
  • Dans une archive locale complète, les liens des artefacts de démarrage préparés dans out/bin doivent pointer vers les artefacts de cette archive. Le dépôt GitHub publié ne suit que les fichiers out/bin/c01_*.log capturés.
  • C-01-reproduction.md documente une approche antérieure de harnais ASAN x86. La preuve de concept exécutable de ce dossier est la preuve de concept QEMUv8 TEEC : c01_poc.c.
  • Étant donné que les métadonnées du dépôt ont été supprimées, traitez ce répertoire comme un espace de travail de preuve de concept archivé plutôt que comme un checkout OP-TEE synchronisé en amont.
Télécharger l’outil
CheminObjectif
c01_poc.cPreuve de concept du monde normal AArch64 utilisant des appels libteec bruts
build_poc.shCompile en croisé c01_poc.c vers out/bin/c01_poc
run_c01.shDémarre QEMUv8 et exécute la preuve de concept via expect
c01_check.expAutomatise la connexion invitée, le montage virtio-9p et l'exécution de la preuve de concept
out/bin/c01_nw.logJournal de reproduction du monde normal capturé
out/bin/c01_sw.logJournal du monde sécurisé capturé avec le panique de la TA PKCS#11
reproduction-log.mdNotes complètes de reproduction QEMUv8
qemu-v8-setup.mdNotes de configuration et de validation de base OP-TEE QEMUv8
C-01-reproduction.mdNotes antérieures du harnais ASAN ; pas la preuve de concept exécutable principale de ce dossier
AGENTS.mdNotes de maintenance pour les futurs agents IA/code