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-2024-38819 — Tiefgehende Analyse von CVE-2024-38819, einer Spring WebFlux Dateipfad-Traversal-Schwachstelle, mit code-level Aufschlüsselung, PoC und Minderungsstrategien einschließlich Filter und IPS-Regeln. | Kitploit
Tools/GitHubGitHub/skrkcb2/cve-2024-38819
SchwachstellenanalyseExploitationWebsicherheitPenetrationstestsPapers & ForschungLernen & Bildung
GitHubskrkcb2/cve-2024-38819

cve-2024-38819

Tiefgehende Analyse von CVE-2024-38819, einer Spring WebFlux Dateipfad-Traversal-Schwachstelle, mit code-level Aufschlüsselung, PoC und Minderungsstrategien einschließlich Filter und IPS-Regeln.

Repository anzeigen
1vor 1 JahrNoch 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-2024-38819

01. File-Traversal und Webflux Überblick

  • 1) File-Traversal und WebFlux Überblick

    File-Traversal (Pfad-Traversal, Path Traversal) Schwachstelle ist eine Schwachstelle, die es Angreifern ermöglicht, Dateisystemberechtigungen in Webanwendungen zu umgehen und auf beliebige Dateien zuzugreifen. Sie ist als CWE-22 klassifiziert.

    Spring WebFlux ist ein in Spring 5 eingeführtes Modul, das reaktive Programmierung unterstützt, die Entwicklung asynchroner nicht-blockierender Anwendungen ermöglicht und mit WebFlux.fn funktionale Endpunkt-Routing bereitstellt, das eine prägnante und flexible Routing-Konfiguration mit Lambda-Ausdrücken unterstützt.

    CVE-2024-38819 tritt in Anwendungen auf, die WebFlux.fn oder WebMVC.fn verwenden. Dieses Dokument untersucht den Code-Ablauf, wie diese Schwachstelle in WebFlux ausgelöst wird, und sucht nach entsprechenden Gegenmaßnahmen.

02. File-Traversal Schwachstellenanalyse in Webflux 6.13-Umgebung

  • 2.1 File-Traversal Analyse mit Webflux 6.13

    In Spring Webflux 6.13 kann ein File-Traversal-Angriff über ein Beispiel zum Ausliefern durchgeführt werden. Wir werden das Beispiel untersuchen und herausfinden, wie mit Spring Webflux ein File-Traversal verursacht wird.
[Abbildung 1] zeigt, dass Spring WebFlux alle Anfragen an /static/** aus dem Verzeichnis C:/file des Servers bedient. Hier beginnt das Problem beim Aufruf von RouterFunctions.resources in [Abbildung 2] und [Abbildung 3] der PathResourceLookupFunction.class von WebFlux. [Abbildung 2] PathResourceLookupFunction - apply überprüft in Spring WebFlux, ob der angegebene Pfad auf eine gültige Ressource verweist, und gibt diese Ressource als Mono zurück. Während dieses Prozesses führt es mehrere Schritte wie Pfadabgleich, Validierung, Pfaddecodierung und Ressourcenzugriff durch, wobei die Schwachstelle in der isInvalidPath Funktion auftritt. [Abbildung 3] PathResourceLookupFunction - isInvalidPath zeigt, dass die Bedingung StringUtils.cleanPath(path).contains("../") existiert. Bei einer Anfrage an http://localhost:8080/static/file/../Windows/System32/drivers/etc/hosts kann diese Bedingung nicht True werden. Der Grund: [Abbildung 4] StringUtils.class - cleanPath zeigt, dass StringUtils.cleanPath(path) den TOP_PATH("..") entfernt, den Pfad in pathElements ablegt und top auf 0 setzt, sodass die Angriffszeichenfolge mit einem ".." als normale Zeichenfolge behandelt wird. Daher gibt die isInvalidPath-Funktion in [Abbildung 3] false zurück. Durch den Aufruf von cleanPath in isResourceUnderLocation aus [Abbildung 5] wird über [Abbildung 6] eine erneute Prüfung mit cleanPath durchgeführt, und der in [Abbildung 5] übergebene Pfad ist C:/file../Windows/System32/drivers/etc/hosts. Durch den Code in [Abbildung 7] wird das Präfix zu C:/, der Pfad wird über [Abbildung 4] zu / Windows/System32/drivers/etc/hosts geändert, und die endgültige Rückgabe erfolgt als C:/Windows/System32/drivers/etc/hosts.
statischer Ressourcen

1) File-Traversal Angriffsablauf mit Spring Webflux 6.13

Bildbeschreibung

[Abbildung 1] FileApplication.java



Bildbeschreibung

[Abbildung 2] PathResourceLookupFunction.class - apply




Bildbeschreibung

[Abbildung 3] PathResourceLookupFunction.class - isInvalidPath


Bildbeschreibung

Bildbeschreibung

[Abbildung 4] StringUtils.class - cleanPath


Bildbeschreibung

[Abbildung 5] PathResourceLookupFunction.class - apply - 2

Bildbeschreibung

[Abbildung 6] PathResourceLookupFunction.class - isResourceUnderLocation

Bildbeschreibung

[Abbildung 7] StringUtils.class - cleanPath -2


2) File-Traversal Angriffsbeispiel mit Spring Webflux 6.13

Derzeit wurde der Test unter Windows mit C:/file durchgeführt, aber dieser Fall ist sehr gefährlich, wenn er unter Linux mit symbolischen Links ausgeführt wird.
(Bei zweimaligem ../../ funktioniert die normale Logik, die Schwachstelle tritt nur bei einmaligem ../ auf) 20250207_150316

2-1) File-Traversal Angriffsbeispiel 2 mit Spring Webflux 6.13

Angriff mit symbolischem Link auf einem Linux-Server

root@kitploit:~
 public RouterFunction<ServerResponse> staticResourceRouter() {
     return RouterFunctions.resources("/static/**", new FileSystemResource("/app/static/"));
 }

Nach dem Hinzufügen eines symbolischen Links ln -s /static /app/static/link Angriff durchführen 20250208_101836

03. Gegenmaßnahmen

Bisher haben wir den Ablauf von File Traversal (CVE-2024-38819) in der Spring Webflux-Umgebung überprüft. Da es sich um eine Angriffsmethode handelt, bei der Serverinformationen gestohlen werden, sind Gegenmaßnahmen wichtig. Dazu schlagen wir Aktualisierung auf die neueste Version, Erstellung zusätzlicher Prüflogik und Blockierung durch IPS vor.

  • Spring Framework Update

    Bitte beachten Sie die folgende Tabelle, überprüfen Sie Ihre Version und führen Sie ein Upgrade durch.

    Bildbeschreibung

  • Beispiel für zusätzliche Prüflogik

    Wie im obigen Angriffsbeispiel zu sehen, ist der Fall mit einmaligem TOP_PATH(..) problematisch. Eine einfache Filterlogik (als Referenz, Entwickler können mehr hinzufügen):
    root@kitploit:~
    @Bean
    public RouterFunction<ServerResponse> staticResourceRouter() {    
      return RouterFunctions.resources("/static/**", new FileSystemResource("C:/file"))
              .filter((request, next) -> {
                  String path = request.path();
                  if (path.contains("..")) {
                     if(!StringUtils.cleanPath(path).contains("../")) {
                         return ServerResponse.status(HttpStatus.FORBIDDEN).bodyValue("Vuln path access.");
                     }        
                  }
                  return next.handle(request);
              });
    }
    
  • Blockierung durch IPS

    Angriffsbeispiel: Anfrage über Postman mit ../ im URL-Pfad
    image Alle URL-Anfragen, die einen ../-Aufstieg im Pfad verursachen, blockieren.
    20250210_150316

04. Fazit

Bisher haben wir File Traversal über Webflux untersucht. Diese Schwachstelle trat auf, weil das aus der Logik von StringUtils.cleanPath() resultierende Problem nicht erkannt wurde.

05. Referenzen

(POC) https://github.com/masa42/CVE-2024-38819-POC
(Spring offiziell) https://spring.io/security/cve-2024-38819
(CVE-DETAIL) https://www.cvedetails.com/cve/CVE-2024-38819/
(NIST) https://nvd.nist.gov/vuln/detail/cve-2024-38819

Tool herunterladen