Skip to content
KitploitKITPLOIT
ToolsBlog
Log in
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-2023-20938 — Technische Analyse und Proof-of-Concept-Exploit für CVE-2023-20938, eine Use-After-Free-Schwachstelle im Binder-Treiber des Android-Kernels, die eine lokale Privilegieneskalation ermöglicht. | Kitploit
Tools/GitHubGitHub/jaf0rk/cve-2023-20938
Android-SicherheitSchwachstellenanalyseExploitationBinary-Exploitation
GitHubjaf0rk/cve-2023-20938

CVE-2023-20938

Technische Analyse und Proof-of-Concept-Exploit für CVE-2023-20938, eine Use-After-Free-Schwachstelle im Binder-Treiber des Android-Kernels, die eine lokale Privilegieneskalation ermöglicht.

Repository anzeigen
13715vor 4 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-2023-20938

English

Schwachstellenanalyse

  1. Client A und Client B stellen über den Kontextmanager servicemanager eine Binder-Verbindung her.
  2. A erstellt node 0xbeef (node = binder_new_node(proc, fp);), B referenziert node 0xbeef über ref->target_node (node 0xbeef)
  3. B verarbeitet zunächst target_node 0xbeef korrekt und speichert das binder_transaction-Objekt, das auf target_node 0xbeef verweist, in die Transaktionswarteschlange von A (binder_enqueue_work_ilocked(&t->work, &proc->todo);), sodass A erneut auf den freigegebenen hängenden Zeiger verweisen kann.
  4. B tritt aufgrund des nicht ausgerichteten offsets_size in den Fehlerbehandlungscode ein (IS_ALIGNED(tr->offsets_size, sizeof(binder_size_t))), was dazu führt, dass der noch 0 betragende buffer_offset an die Funktion binder_transaction_buffer_release übergeben wird, wodurch die Schwachstelle ausgelöst wird.
  5. Die Funktion binder_transaction_buffer_release ruft über binder_dec_node die Funktion binder_dec_node_nilocked auf, um den Referenzzähler local_strong_refs von node 0xbeef zu dekrementieren. Die node-Instanz enthält jedoch mehrere Referenzzähler und Referenzlisten; die Freigabe wird erst ausgelöst, wenn alle diese Zähler auf 0 gesetzt sind.
  6. Das Schließen des Binders von B löst die Funktion binder_cleanup_ref_olocked aus, wobei ebenfalls binder_dec_node_nilocked aufgerufen wird. Wenn binder_dec_node_nilocked true zurückgibt, wird der auf node (0xbeef) verweisende Zeiger ref->node nicht gelöscht.
  7. Anschließend wird binder_free_ref aufgerufen, und in der Funktion binder_free_ref wird node 0xbeef freigegeben.
  8. A wird in der Funktion binder_thread_read erneut auf den freigegebenen node 0xbeef verweisen.

Zusätzliche Anmerkungen: In einer echten Android-Umgebung können normale Apps keine Dienste über servicemanager registrieren, aber sie können über ITokenManager eine Verbindung zwischen zwei Prozessen herstellen. Dieser Testfall verwendet ITokenManager.

Tool herunterladen