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-36355 — CVE-2026-36355: Realtek rtl819x Jungle SDK – Nicht authentifizierter Kernel-Speicher-Lese-/Schreibzugriff über Debug-ioctls | Kitploit
Tools/GitHubGitHub/totekuh/cve-2026-36355
Embedded-System-SicherheitPrivilege EscalationSchwachstellenanalyseExploitationDrahtlose SicherheitHardware-SicherheitBinary-Exploitation
GitHubtotekuh/cve-2026-36355

CVE-2026-36355

CVE-2026-36355: Realtek rtl819x Jungle SDK – Nicht authentifizierter Kernel-Speicher-Lese-/Schreibzugriff über Debug-ioctls

Repository anzeigen
6vor 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-2026-36355: Realtek rtl819x Jungle SDK - Unauthenticated Kernel Memory Read/Write via Debug ioctls

  • CVE: CVE-2026-36355
  • CWE: CWE-782, CWE-787, CWE-200
  • Entdecker: Daniil Gordeev
  • Offengelegt: 2026-05-03

Zusammenfassung

Der WLAN-Kernel-Treiber rtl8192cd im Out-of-Tree-„Jungle SDK“ von Realtek rtl819x setzt zwei IOCTLs — write_mem (0x89F5) und read_mem (0x89F6) - ohne Zugriffskontrollprüfungen frei. Jeder lokale Benutzer, der eine vom Treiber unterstützte drahtlose Netzwerkschnittstelle öffnen kann, kann beliebigen virtuellen Kernel-Speicher lesen oder schreiben, was direkt zu Root führt.

Die Handler werden durch _IOCTL_DEBUG_CMD_ in 8192cd_cfg.h gesteuert, das bedingungslos definiert ist (kein #ifdef DEBUG), sodass der Debug-Befehlssatz in allen Produktions-Builds einkompiliert wird.

Ein Referenz-Exploit (kpwn) erreicht uid=0 aus einer unprivilegierten Shell, mit null fest codierten Adressen - das task_struct-Layout und der Ort von init_task werden zur Laufzeit automatisch erkannt, was es über Kernel-Versionen und OEM-Builds portabel macht.

Betroffene Produkte

Die Schwachstelle befindet sich im Realtek rtl819x Jungle SDK-Kernel-WLAN-Treiber, in allen bekannten Versionen bis einschließlich v3.4.14B. Zum Zeitpunkt der Offenlegung gibt es keinen Fix. Mainline-Linux rtlwifi / rtw88 / rtw89 sind andere Codebasen und nicht betroffen.

Der gemeinsame Treiberkern wird in mehrere Varianten kompiliert (rtl8192cd, rtl8192es, rtl8192ee, rtl8192fe, rtl8188ee usw.). Jeder Jungle-SDK-Build, der den WLAN-Treiber enthält, ist betroffen.

Wahrscheinlich betroffen – erfordert produktspezifische Verifizierung

Das Realtek Jungle SDK wird im Rahmen von OEM-Verträgen weit verbreitet weitergegeben. Zu den Anbietern, die in der Anbieterliste von CVE-2021-35395 dokumentiert sind (die eine andere Userspace-Komponente desselben SDK betraf), gehören D-Link, TOTOLINK, Tenda, NEC, I-O DATA, Elecom, Buffalo, Humax, H3C und IP-COM. Ob jede einzelne Produktlinie den anfälligen Kernel-Treiber ausliefert, erfordert eine Prüfung der produktspezifischen GPL-Quellcode-Veröffentlichung; dieses Advisory behauptet das nicht ohne unabhängige Verifizierung.

Testumgebung

GerätOrtel 4G LTE CPE (OEM: MeiG Smart FORGE_SLT711)
SoCQualcomm MDM9607, ARMv7 Cortex-A7
KernelLinux 3.18.48
Modul

Bestätigt: Schreiben von 0xDEADBEEF in den .bss-Bereich des Moduls mit Rücklesen und Wiederherstellen; vollständige LPE von uid=1000 auf uid=0 mittels init_task-Walk und Credential-Überschreibung, aus einer unprivilegierten Shell.

Technische Details

Grundursache

In 8192cd_cfg.h:

root@kitploit:~
#define _IOCTL_DEBUG_CMD_

Nicht durch #ifdef DEBUG abgesichert. Der Debug-Befehlssatz ist in jedem Produktions-Build enthalten.

Anfällige Handler

Der rtl_ioctl()-Dispatcher des Treibers leitet 0x89F5 und 0x89F6 (im standardmäßigen privaten IOCTL-Bereich SIOCDEVPRIVATE+5/+6, der von WLAN-Treibern für Herstellererweiterungen verwendet wird) an write_mem und read_mem weiter. Die Handler parsen eine vom Benutzer bereitgestellte Zeichenkette:

  • Lesen: dw,<addr>,<count> — liest count 32-Bit-Wörter aus der virtuellen Kernel-Adresse addr
  • Schreiben: dw,<addr>,<count>,<value> — schreibt count 32-Bit-Wörter von value an addr

Die Adresse wird mit _atoi(base 16) geparst, an memcpy() gegen den virtuellen Kernel-Adressraum übergeben und das Ergebnis wird per copy_to_user() zurückgegeben. Es gibt:

  • Keine capable()-Prüfung
  • Keine access_ok()-Prüfung der Adresse
  • Keine Bereichsprüfung des Adressbereichs
  • Keine Sperre (Locking) — alle 59 IOCTLs im Debug-Befehlssatz teilen sich einen einzigen globalen 2000-Byte-Puffer (tmpbuf1) in .bss

Die Read-Primitive ist auf 128 Bytes pro Aufruf begrenzt; die Write-Primitive akzeptiert beliebige Längen.

Dieselbe Zugriffskontrolllücke gilt für andere Handler im Debug-Satz (Hardware-Register-Lesen/Schreiben über 0x89F3/0x89F4/0x89F8–0x89FD, MIB-Schreibvorgänge über 0x89F1, eFuse-Lesen/Schreiben, Fertigungstestmodus). Sie sind über denselben Codepfad erreichbar und verdienen eine vollständige Prüfung durch jeden, der diesen Bug patcht.

Proof of Concept

kpwn – uid=1000 zu uid=0 auf einem MeiG FORGE_SLT711 (Ortel 4G LTE CPE), Kernel 3.18.48

Referenz-Exploit kpwn.c (zusammen mit diesem Advisory veröffentlicht):

  • Läuft als jeder unprivilegierte Benutzer, kein Root erforderlich.
  • Erkennt automatisch die task_struct-Offsets (comm, cred, tasks, pid) durch Durchlaufen von init_task, das selbst per Brute-Force-Scan des Kernel-.data lokalisiert wird.
  • Erkennt automatisch die anfällige Schnittstelle, indem jedes /sys/class/net/* auf die Read-Primitive geprüft wird.
  • 44 IOCTLs, wenn /proc/kallsyms lesbar ist, ~7600 IOCTLs bei kptr_restrict=2 (voller .data-Scan-Pfad). Liefert bei jedem Testlauf bedingungslos eine Root-Shell.
root@kitploit:~
# Build:
arm-linux-gnueabi-gcc -static -O2 -o kpwn kpwn.c

# Run as unprivileged user:
$ id
uid=1000(pwn) gid=3003(inet) ...
$ /tmp/kpwn
kpwn — RTL8192CD kernel LPE
[*] Scanning interfaces...
[+] wlan0 — read primitive confirmed
[*] Resolving init_task...
[+] init_task @ 0xc08ecb38
[+] comm=0x3a8 cred=0x3a4 tasks=0x250 pid=0x2c0
[+] cred=0xed3a4500 uid=1000 gid=3003
[*] Overwriting credentials...
[+] uid=0 euid=0 gid=0 egid=0
*** GOT ROOT *** uid=1000 -> 0 (44 ioctls)
# id
uid=0(root) gid=0(root) groups=0(root)
Tool herunterladen
rtl8192es.ko
Datum2026-02-23