Skip to content
Verified reproduction

CVE-VINEXT-CIVETWEB-PUT-SSI-RCE: CivetWeb PUT + SSI #exec RCE

CVE-VINEXT-CIVETWEB-PUT-SSI-RCE is verified against civetweb/civetweb · github vulnerability class: RCE This high reproduction includes runnable sandbox proof, artifacts, and a plain-text agent view under REPRO-2026-00229.

REPRO-2026-00229 civetweb/civetweb · github RCE Jul 4, 2026 .txt
Severity HIGH
Confidence HIGH
Reproduced in 34m 27s
Tool calls 374
Spend $3.17
$ pruva-verify REPRO-2026-00229
or curl -O https://pruva.dev/api/v1/reproductions/REPRO-2026-00229/artifacts/bundle/repro/reproduction_steps.sh && chmod +x reproduction_steps.sh && ./reproduction_steps.sh
Run in a VM or disposable container. This exploits a real vulnerability.
02 · The vulnerability

CivetWeb combines an authenticated HTTP PUT upload feature with Server-Side Include (SSI) #exec processing. When an administrator enables put_delete_auth_file (Digest authentication for PUT/DELETE), any authenticated user can upload a file ending in .shtml via PUT. Because the default ssi_pattern includes **.shtml$ and **.shtm$, a subsequent GET request causes do_ssi_exec() to pass the command to popen(). The result is authenticated remote code execution. Reproduction: build CivetWeb from https://github.com/civetweb/civetweb at commit 588860e3, start with listening_ports, document_root, and put_delete_auth_file, create a digest password file, then PUT a file such as /pwn.shtml containing , and GET /pwn.shtml to see the command output. The issue is enabled by the interaction of two default/documented features; no out-of-band interaction is required.

03 · Root cause
Variant analysis
04 · Reproduction transcript

The agent's step-by-step process — every tool call, every handoff, the moment the exploit fired. Phases: support triages the advisory · repro reproduces it · vuln_variant confirms the fix blocks it · judge verifies.

Loading session...

05 · Artifacts

Scripts, logs, diffs, and output captured during the reproduction.

bundle/vuln_variant/source_identity.json0.8 KB
bundle/vuln_variant/root_cause_equivalence.json1.1 KB
bundle/coding/artifacts/patched_get_headers.txt0.3 KB
bundle/repro/reproduction_steps.sh9.9 KB
bundle/repro/rca_report.md8.3 KB
bundle/repro/validation_verdict.json0.8 KB
bundle/repro/runtime_manifest.json1.1 KB
bundle/logs/reproduction_steps.log4.9 KB
bundle/logs/vuln_variant.log8.8 KB
bundle/vuln_variant/artifacts/vulnerable-chunked/get_body.txt0.2 KB
bundle/vuln_variant/artifacts/vulnerable-webdav/get_body.txt0.2 KB
bundle/vuln_variant/artifacts/vulnerable-shtm/get_body.txt0.2 KB
bundle/vuln_variant/reproduction_steps.sh11.1 KB
bundle/vuln_variant/variant_manifest.json2.5 KB
bundle/vuln_variant/validation_verdict.json0.9 KB
bundle/vuln_variant/rca_report.md9.5 KB
bundle/vuln_variant/patch_analysis.md5.7 KB
bundle/vuln_variant/runtime_manifest.json1.2 KB
bundle/vuln_variant/artifacts/vulnerable-chunked/get_headers.txt0.3 KB
bundle/vuln_variant/artifacts/vulnerable-webdav/get_headers.txt0.3 KB
bundle/vuln_variant/artifacts/vulnerable-shtm/get_headers.txt0.3 KB
bundle/vuln_variant/artifacts/fixed-chunked/get_body.txt0.0 KB
bundle/vuln_variant/artifacts/fixed-chunked/get_headers.txt0.3 KB
bundle/vuln_variant/artifacts/fixed-webdav/get_body.txt0.0 KB
bundle/vuln_variant/artifacts/fixed-webdav/get_headers.txt0.3 KB
bundle/vuln_variant/artifacts/fixed-shtm/get_body.txt0.0 KB
bundle/vuln_variant/artifacts/fixed-shtm/get_headers.txt0.3 KB
bundle/coding/proposed_fix.diff1.2 KB
bundle/coding/verify_fix.sh4.3 KB
bundle/coding/summary_report.md4.4 KB
bundle/logs/verify_fix.log5.6 KB
bundle/coding/artifacts/patched_get_body.txt0.0 KB