Skip to content
KitploitKITPLOIT
ToolsBlog
Einreichen
ToolsBlog
Einreichen

Hacking-, PenTest- und Cybersicherheits-Tools für Ihr Sicherheitsarsenal!

Kitploit ist ein Verzeichnis von Hacking-, Cybersicherheits- und Pentesting-Tools. Entdecken Sie die neuesten Projekt-Updates, um Schwachstellen zu finden, Systeme zu analysieren, Tests zu automatisieren und Ihre Sicherheit zu stärken.

··Feeds·Kontakt·Datenschutz·© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
CVE-2026-33317 — Proof-of-Concept für CVE-2026-33317, eine Out-of-Bounds-Schreiboperation in der OP-TEE PKCS#11 TA, die eine Heap-Korruption in der Secure World über eine fehlerhaft formatierte Attributvorlage demonstriert. | Kitploit
Tools/GitHubGitHub/0xbbdd/cve-2026-33317
Embedded-System-SicherheitSchwachstellenanalyseExploitationFuzzingHardware- & IoT-SicherheitBinary-Exploitation
GitHub0xbbdd/cve-2026-33317

CVE-2026-33317

Proof-of-Concept für CVE-2026-33317, eine Out-of-Bounds-Schreiboperation in der OP-TEE PKCS#11 TA, die eine Heap-Korruption in der Secure World über eine fehlerhaft formatierte Attributvorlage demonstriert.

Repository anzeigen
vor 3 MonatenNoch nicht geprüft

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen

CVE-2026-33317 OP-TEE PKCS#11 PoC

Dieses Repository enthält den Proof of Concept für die Normal World, Reproduktionshinweise und erfasste Logs für CVE-2026-33317 / GHSA-8cqw-mg7v-c9p9.

Das offizielle OP-TEE Advisory beschreibt fehlende Validierung in entry_get_attribute_value() für PKCS11_CMD_GET_ATTRIBUTE_VALUE. Der Fehler kann Out-of-Bounds-Lesezugriffe auf den PKCS#11-TA-Heap verursachen und, mit einer fehlerhaften Attributvorlage, Schreibzugriffe über den temporären Vorlagenpuffer hinaus. Dieser PoC zielt auf den Out-of-Bounds-Schreibfall ab und demonstriert die Heap-Korruption in der Secure World im PKCS#11-TA.

  • Advisory: https://github.com/OP-TEE/optee_os/security/advisories/GHSA-8cqw-mg7v-c9p9
  • CVE: CVE-2026-33317
  • Betroffenes Paket: OP-TEE PKCS#11 TA
  • Betroffene Versionen laut Advisory: >= 3.13.0
  • Gepatchte Versionen laut Advisory: 4.11 und später
  • CVSS v3.1 laut Advisory: 8.7 Hoch
  • Schwachstellen laut Advisory: CWE-125, CWE-787

Verwenden Sie dies nur in einem lokalen Labor oder einer anderen Umgebung, in der Sie zur Tests von OP-TEE autorisiert sind.

Was in diesem Ordner ist

Die lokale Arbeitskopie, aus der diese README erstellt wurde, war ein abgeflachter OP-TEE QEMUv8-Arbeitsbereich. Das .repo-Verzeichnis und alle .git-Metadaten-Dateien/-Verzeichnisse wurden entfernt, sodass dieses lokale Archiv nicht mehr mit repo sync oder normalen Git-Verlaufsbefehlen verwendet werden kann.

Das GitHub-Repository schließt absichtlich die umfangreichen OP-TEE/QEMU-Quellbäume, Toolchains und Build-Ausgaben aus. Erstellen Sie diese aus qemu-v8-setup.md neu oder kopieren Sie die PoC-Dateien in ein bestehendes OP-TEE-qemu_v8-Build-Root, bevor Sie die automatisierte QEMU-Reproduktion aus einem frischen Klon ausführen.

Wichtige Dateien auf oberster Ebene:

Das vorbereitete lokale Archiv enthielt auch Quell-/Build-Verzeichnisse wie optee_os, optee_client, qemu, linux, trusted-firmware-a, u-boot, buildroot, out-br und toolchains; diese werden für die Veröffentlichung ignoriert.

Schwachstellenzusammenfassung

Im verwundbaren optee_os-Baum iteriert ta/pkcs11/src/object.c über eine client-gelieferte serialisierte Attributvorlage:

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);

Die Schleife beweist nicht, dass jeder Attributkopf und sein Datenbereich vollständig innerhalb der zugewiesenen Vorlage liegen. Der PoC sendet:

  • attrs_size = 8, genau ein pkcs11_attribute_head und keine Datenbytes.
  • attrs_count = 1.
  • cli_head.id = CKA_LABEL.
  • cli_head.size = 16, passend zum 16-Byte-Label des erstellten Objekts.

Das erzeugt eine 16-Byte-Vorlagenzuweisung:

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

cli_ref->data zeigt dann auf template + 16, genau ein Byte hinter dem Ende der Zuweisung. get_attribute() in ta/pkcs11/src/attributes.c sieht, dass die vom Aufrufer bereitgestellte Größe ausreichend ist, und kopiert das 16-Byte-Label an diesen Out-of-Bounds-Zeiger, wodurch der PKCS#11-TA-Heap korrumpiert wird.

Schnellstart

Voraussetzungen, die vom vorbereiteten QEMUv8-Arbeitsbereich verwendet werden:

  • Linux-x86-64-Host
  • expect
  • Ein OP-TEE-qemu_v8-Arbeitsbereich mit Build-Ausgaben, Toolchains und QEMU-Binärdatei, angeordnet wie das lokale Archiv, das in qemu-v8-setup.md beschrieben ist

PoC erstellen:

root@kitploit:~
./build_poc.sh

Erwartetes Build-Ergebnis:

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

Automatisierte QEMUv8-Reproduktion ausführen:

root@kitploit:~
./run_c01.sh

Der Wrapper prüft vor dem Booten auf diese bereitgestellten Dateien:

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

Wenn die Build-Artefakte fehlen, erstellen/bauen Sie zuerst den OP-TEE-Arbeitsbereich neu und führen Sie dann ./build_poc.sh erneut aus.

Erwartetes Ergebnis

Das Normal-World-Protokoll sollte die konstruierte Anfrage zeigen:

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

Das Secure-World-Protokoll sollte die Allokator-Assertion und den TA-Panic enthalten:

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

Erfasste Protokolle eines erfolgreichen Laufs sind bereits vorhanden unter:

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

PoC-Ablauf

c01_poc.c ruft die PKCS#11-TA-UUID fd02c9da-306c-48c7-a49c-bbd827ae86ee über libteec auf:

  1. Öffnen einer TEEC-Sitzung mit dem PKCS#11-TA.
  2. Initialisieren des Token-Slots 0.
  3. Öffnen einer Lese-/Schreib-PKCS#11-Sitzung.
  4. Erstellen eines AES-Sitzungsobjekts mit CKA_LABEL = "AAAAAAAAAAAAAAAA".
  5. Senden einer fehlerhaften CMD_GET_ATTRIBUTE_VALUE-Anfrage mit attrs_size = 8 und cli_head.size = 16.

Die erste bösartige Anfrage reicht aus, um Heap-Metadaten zu korrumpieren. Der TA gerät dann in einen Panic, wenn der OP-TEE-bget-Allokator die korrumpierten Blockmetadaten erkennt.

Hinweise

  • run_c01.sh teilt out/bin über virtio-9p mit dem Gast und schreibt Protokolle zurück in dasselbe Verzeichnis.
  • In einem vollständigen lokalen Archiv sollten die bereitgestellten Boot-Artefakt-Links in out/bin auf Artefakte innerhalb dieses Archivs zeigen. Das veröffentlichte GitHub-Repository verfolgt nur die erfassten out/bin/c01_*.log-Dateien.
  • C-01-reproduction.md dokumentiert einen früheren x86-ASAN-Harness-Ansatz. Der ausführbare PoC in diesem Ordner ist der QEMUv8-TEEC-PoC: c01_poc.c.
  • Da die Repo-Metadaten entfernt wurden, behandeln Sie dieses Verzeichnis als archivierten PoC-Arbeitsbereich und nicht als upstream-synchronisierten OP-TEE-Checkout.
Tool herunterladen
PfadZweck
c01_poc.cAArch64-Normal-World-PoC mit rohen libteec-Aufrufen
build_poc.shKreuzkompiliert c01_poc.c in out/bin/c01_poc
run_c01.shStartet QEMUv8 und führt den PoC über expect aus
c01_check.expAutomatisiert Gast-Login, virtio-9p-Mount und PoC-Ausführung
out/bin/c01_nw.logErfasstes Normal-World-Reproduktionsprotokoll
out/bin/c01_sw.logErfasstes Secure-World-Protokoll mit dem PKCS#11-TA-Panic
reproduction-log.mdVollständige QEMUv8-Reproduktionshinweise
qemu-v8-setup.mdOP-TEE-QEMUv8-Einrichtung und Basisvalidierungshinweise
C-01-reproduction.mdFrühere ASAN-Harness-Hinweise; nicht der ausführbare Haupt-PoC in diesem Ordner
AGENTS.mdWartungshinweise für zukünftige KI-/Code-Agenten