nginx WebDAV: heap-buffer-overflow in COPY/MOVE with alias directive
What's the vulnerability?
ngx_http_dav_module handles WebDAV PUT/DELETE/MKCOL/COPY/MOVE. For COPY and MOVE it constructs the destination filesystem path from the request's Destination: header. When the matched location uses alias /some/dir/; (rather than root) and a prefix that doesn't match the URI segment 1:1, the length calculation that sizes the destination string buffer underestimates by the alias substitution offset. The destination filename is then written past the end of a heap allocation in the nginx worker process — a heap-buffer-overflow write reachable unauthenticated on any nginx host that turns on dav_methods under such a location.
The reachable side effects depend on what the overflow corrupts:
- denial-of-service via worker crash and respawn loop;
- in some configurations, arbitrary file write at controllable paths (the F5 advisory rates impact "I:L A:H");
- possible escalation to RCE via worker-heap corruption (not guaranteed, depends on allocator state).
Root Cause Analysis
Variant Analysis
Bypass and alternate trigger exploration (if present).
Verify with pruva-verify
Run the Pruva CLI to automatically fetch and execute the reproduction script.
pruva-verify REPRO-2026-00171 pruva-verify CVE-2026-27654 curl -fsSL https://pruva.dev/install.sh | sh Or Run Manually
Download the script
curl -O https://pruva.dev/api/v1/reproductions/REPRO-2026-00171/artifacts/bundle/repro/reproduction_steps.sh Make executable
chmod +x reproduction_steps.sh Run the script
./reproduction_steps.sh How Pruva Reproduced This
Watch the AI agent's step-by-step process.
Loading session...