nginx-ui
Runs Nginx UI v2.0.0-beta.35, which is the vulnerable version targeted by the exploit. It exposes ports 8080, 8443, and 8000 on the host and mounts host directories for configuration and web content.
docker-compose.yml:3-17File viewing is interactive and short-lived. Downloads are password-protected ZIP archives using password eip.
A Docker Compose environment for demonstrating CVE-2024-49368, a command injection vulnerability in Nginx UI. It includes a vulnerable Nginx UI instance (v2.0.0-beta.35), a patched instance (v2.0.0-beta.36), and a custom Node.js application with a login page. Exploit scripts are provided to trigger a reverse shell on the vulnerable instance.
docker-compose.yml:1-39README.md:1-51exploit_bash.py:1-117The repository name, README, and exploit scripts explicitly reference CVE-2024-49368. The Docker Compose file sets up a vulnerable Nginx UI version alongside a patched version, and the README provides steps to run the exploit and verify command injection, which is consistent with a vulnerability reproduction lab.
README.md:1docker-compose.yml:16docker-compose.yml:30exploit_bash.py:1-117Runs Nginx UI v2.0.0-beta.35, which is the vulnerable version targeted by the exploit. It exposes ports 8080, 8443, and 8000 on the host and mounts host directories for configuration and web content.
docker-compose.yml:3-17Runs Nginx UI v2.0.0-beta.36, a patched version, for comparison. It exposes ports 7080 and 7443 on the host and mounts separate host directories.
docker-compose.yml:25-38A Node.js application built from the local Dockerfile. It runs a server on port 10000 with a /login endpoint and a UI server on port 10001 serving a login page. The login page is styled as a 'National Database of Nuclear Codes' but uses hardcoded credentials (admin/password).
docker-compose.yml:18-23Dockerfile:1-16server/server.js:1-22ui/ui-server.js:1-15ui/index.html:1-114A Python script that logs into the vulnerable Nginx UI at http://127.0.0.1:8080, retrieves JWT and node secrets, and sends a crafted settings payload to trigger a reverse shell to 172.26.25.2:9001 via the logrotate command.
exploit_bash.py:1-117A Python script similar to exploit_bash.py but targeting the patched Nginx UI at http://127.0.0.1:7080 with a reverse shell to 172.26.25.2:9002.
exploit_bash_patched.py:1-117Supported by supplied evidence
The lab explicitly targets CVE-2024-49368. The vulnerable Nginx UI version (v2.0.0-beta.35) is used, and the exploit script sends a payload to the /api/settings endpoint with a malicious logrotate command, which aligns with the known command injection vulnerability in Nginx UI's settings endpoint.
docker-compose.yml:16exploit_bash.py:48-56README.md:1README.md:6-7docker-compose.yml:10-12docker-compose.yml:33-35README.md:11-17README.md:28-30exploit_bash.py:1README.md:22-24README.md:25-27README.md:28-30README.md:31README.md:32-41The exploit scripts target the lab's own vulnerable Nginx UI container with a reverse shell to a private IP address (172.26.25.2), which is consistent with a documented vulnerability demonstration. There is no evidence of host compromise, external targeting, credential theft, or unexpected harmful behavior. The host volume mounts and docker exec instructions are part of the lab setup and verification steps.
exploit_bash.py:55README.md:32-41This review is limited to the supplied lab evidence packet. It does not assert that the environment runs, reproduces a vulnerability, or is safe to execute. Contract: eip-docker-lab-analysis-v1.