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-17Unchecked logrotate settings lead to arbitrary command execution
CVE-2024-49368 has a selected CVSS score of 8.9 (high); EIP currently links 1 repository PoC and 1 lab environment.
Nginx UI is a web user interface for the Nginx web server. Prior to version 2.0.0-beta.36, when Nginx UI configures logrotate, it does not verify the input and directly passes it to exec.Command, causing arbitrary command execution. Version 2.0.0-beta.36 fixes this issue.
| Product | Source | Version range | Status |
|---|---|---|---|
nginx-uiBrowse 0xJacky / nginx-ui | CVE List | < 2.0.0-beta.36 | affected |
nginx_uiBrowse nginxui / nginx_uiDefault status: unknown | CVE List | Before 2.0.0-beta.36 | affected |
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.