From 28bc7338b84ea0d32babe30a00b86fab57bf3136 Mon Sep 17 00:00:00 2001 From: Sanjay Mahajan Date: Thu, 16 Jul 2026 04:39:56 +0000 Subject: [PATCH 1/7] added testbeds for CVE-2026-33032 --- nginx/CVE-2026-33032/README.md | 21 +++++++++++++ nginx/CVE-2026-33032/docker-compose.yml | 42 +++++++++++++++++++++++++ 2 files changed, 63 insertions(+) create mode 100644 nginx/CVE-2026-33032/README.md create mode 100644 nginx/CVE-2026-33032/docker-compose.yml diff --git a/nginx/CVE-2026-33032/README.md b/nginx/CVE-2026-33032/README.md new file mode 100644 index 00000000..9b03bfb5 --- /dev/null +++ b/nginx/CVE-2026-33032/README.md @@ -0,0 +1,21 @@ +# Authentication bypass in Nginx UI MCP endpoint (CVE-2026-33032) + +Nginx UI versions 2.3.3 and earlier expose the /mcp_message endpoint without authentication when the IP allowlist is empty. A remote unauthenticated attacker can invoke privileged Model Context Protocol (MCP) operations. + + +## Vulnerable Version +### Setup +Start an NginxUI version 2.3.3: + +```bash +docker compose up -d nginx-ui-vuln +``` + +## Safe Version +### Setup +Start an NginxUI version 2.3.4: + +```bash +docker compose up -d nginx-ui-safe +``` + diff --git a/nginx/CVE-2026-33032/docker-compose.yml b/nginx/CVE-2026-33032/docker-compose.yml new file mode 100644 index 00000000..f216b1b0 --- /dev/null +++ b/nginx/CVE-2026-33032/docker-compose.yml @@ -0,0 +1,42 @@ +services: + nginx-ui-vuln: + image: uozi/nginx-ui:v2.3.3 + container_name: nginx-ui + restart: always + # Expose the ports safely to the outside world + ports: + - "8080:80" # Nginx public web traffic proxy + - "9000:9000" # Nginx UI web interface dashboard + environment: + - NGINX_UI_SERVER_RUN_MODE=release + - NGINX_UI_IGNORE_DOCKER_SOCKET=true + - NGINX_UI_SERVER_SKIP_INSTALLATION=true + # Explicitly keep the UI listening internally on 9000 + - NGINX_UI_SERVER_PORT=9000 + volumes: + - ./data:/etc/nginx-ui + - ./nginx:/etc/nginx + - ./ssl:/etc/ssl + - ./logs:/var/log/nginx + - ./www:/var/www/html + nginx-ui-safe: + image: uozi/nginx-ui:v2.3.4 + container_name: nginx-ui + restart: always + # Expose the ports safely to the outside world + ports: + - "8080:80" # Nginx public web traffic proxy + - "9000:9000" # Nginx UI web interface dashboard + environment: + - NGINX_UI_SERVER_RUN_MODE=release + - NGINX_UI_IGNORE_DOCKER_SOCKET=true + - NGINX_UI_SERVER_SKIP_INSTALLATION=true + # Explicitly keep the UI listening internally on 9000 + - NGINX_UI_SERVER_PORT=9000 + volumes: + - ./data:/etc/nginx-ui + - ./nginx:/etc/nginx + - ./ssl:/etc/ssl + - ./logs:/var/log/nginx + - ./www:/var/www/html + From 3b2bae52fbf00bfed22f3528fc72d3357eafe667 Mon Sep 17 00:00:00 2001 From: Sanjay Mahajan <87861775+sanjaymahajan14@users.noreply.github.com> Date: Mon, 17 Aug 2026 15:34:09 +0530 Subject: [PATCH 2/7] Update ports for safe version Co-authored-by: Robert Dick --- nginx/CVE-2026-33032/docker-compose.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/nginx/CVE-2026-33032/docker-compose.yml b/nginx/CVE-2026-33032/docker-compose.yml index f216b1b0..1c460f72 100644 --- a/nginx/CVE-2026-33032/docker-compose.yml +++ b/nginx/CVE-2026-33032/docker-compose.yml @@ -25,8 +25,8 @@ services: restart: always # Expose the ports safely to the outside world ports: - - "8080:80" # Nginx public web traffic proxy - - "9000:9000" # Nginx UI web interface dashboard + - "8081:80" # Nginx public web traffic proxy + - "9001:9000" # Nginx UI web interface dashboard environment: - NGINX_UI_SERVER_RUN_MODE=release - NGINX_UI_IGNORE_DOCKER_SOCKET=true From 91aa55772df9d4337209c165ab25e6040cbd8fea Mon Sep 17 00:00:00 2001 From: Sanjay Mahajan <87861775+sanjaymahajan14@users.noreply.github.com> Date: Mon, 17 Aug 2026 15:34:59 +0530 Subject: [PATCH 3/7] Update container name of nginx safe version Co-authored-by: Robert Dick --- nginx/CVE-2026-33032/docker-compose.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/nginx/CVE-2026-33032/docker-compose.yml b/nginx/CVE-2026-33032/docker-compose.yml index 1c460f72..19cbdd57 100644 --- a/nginx/CVE-2026-33032/docker-compose.yml +++ b/nginx/CVE-2026-33032/docker-compose.yml @@ -21,7 +21,7 @@ services: - ./www:/var/www/html nginx-ui-safe: image: uozi/nginx-ui:v2.3.4 - container_name: nginx-ui + container_name: nginx-ui-safe restart: always # Expose the ports safely to the outside world ports: From eebdc454593e43726e16e06b39b822df7f206bcc Mon Sep 17 00:00:00 2001 From: Sanjay Mahajan <87861775+sanjaymahajan14@users.noreply.github.com> Date: Mon, 17 Aug 2026 15:35:27 +0530 Subject: [PATCH 4/7] Update container name of vulnerable version Co-authored-by: Robert Dick --- nginx/CVE-2026-33032/docker-compose.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/nginx/CVE-2026-33032/docker-compose.yml b/nginx/CVE-2026-33032/docker-compose.yml index 19cbdd57..e306dbec 100644 --- a/nginx/CVE-2026-33032/docker-compose.yml +++ b/nginx/CVE-2026-33032/docker-compose.yml @@ -1,7 +1,7 @@ services: nginx-ui-vuln: image: uozi/nginx-ui:v2.3.3 - container_name: nginx-ui + container_name: nginx-ui-vuln restart: always # Expose the ports safely to the outside world ports: From 68f66e55f1deba278437b37d2e0e8d4318bad697 Mon Sep 17 00:00:00 2001 From: Sanjay Mahajan <87861775+sanjaymahajan14@users.noreply.github.com> Date: Mon, 17 Aug 2026 15:36:54 +0530 Subject: [PATCH 5/7] Add curl command for testing the vulnerability Co-authored-by: Robert Dick --- nginx/CVE-2026-33032/README.md | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/nginx/CVE-2026-33032/README.md b/nginx/CVE-2026-33032/README.md index 9b03bfb5..35209d73 100644 --- a/nginx/CVE-2026-33032/README.md +++ b/nginx/CVE-2026-33032/README.md @@ -11,6 +11,14 @@ Start an NginxUI version 2.3.3: docker compose up -d nginx-ui-vuln ``` +### Testing the vulnerability +``` +curl -X POST localhost:8080/mcp_message -d "{\"jsonrpc\":\"2.0\",\"method\":\"initialize\",\"params\":{\"protocolVersion\":\"2024-11-05\",\"capabilities\":{},\"clientInfo\":{\"name\":\"bcd\",\"version\":\"1.0\"}},\"id\":1}" +``` +Response: +``` +{"jsonrpc":"2.0","id":null,"error":{"code":-32602,"message":"Missing sessionId"}} +``` ## Safe Version ### Setup Start an NginxUI version 2.3.4: From 0ed8a82078dd89f1c01e9932c6449b454497687a Mon Sep 17 00:00:00 2001 From: Sanjay Mahajan <87861775+sanjaymahajan14@users.noreply.github.com> Date: Mon, 17 Aug 2026 15:38:06 +0530 Subject: [PATCH 6/7] Add curl command for testing the vulnerability of safe version Co-authored-by: Robert Dick --- nginx/CVE-2026-33032/README.md | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/nginx/CVE-2026-33032/README.md b/nginx/CVE-2026-33032/README.md index 35209d73..c9f00b70 100644 --- a/nginx/CVE-2026-33032/README.md +++ b/nginx/CVE-2026-33032/README.md @@ -27,3 +27,11 @@ Start an NginxUI version 2.3.4: docker compose up -d nginx-ui-safe ``` +### Testing the vulnerability +``` +curl -X POST localhost:8081/mcp_message -d "{\"jsonrpc\":\"2.0\",\"method\":\"initialize\",\"params\":{\"protocolVersion\":\"2024-11-05\",\"capabilities\":{},\"clientInfo\":{\"name\":\"abc\",\"version\":\"1.0\"}},\"id\":1}" +``` +Response: +``` +{"message":"Authorization failed"} +``` From 0b4490ee0323c5b062c0c19ba02ae4d93aae3bac Mon Sep 17 00:00:00 2001 From: Sanjay Mahajan Date: Wed, 19 Aug 2026 12:05:59 +0000 Subject: [PATCH 7/7] Rename directory to nginx-ui --- {nginx => nginx-ui}/CVE-2026-33032/README.md | 0 {nginx => nginx-ui}/CVE-2026-33032/docker-compose.yml | 0 2 files changed, 0 insertions(+), 0 deletions(-) rename {nginx => nginx-ui}/CVE-2026-33032/README.md (100%) rename {nginx => nginx-ui}/CVE-2026-33032/docker-compose.yml (100%) diff --git a/nginx/CVE-2026-33032/README.md b/nginx-ui/CVE-2026-33032/README.md similarity index 100% rename from nginx/CVE-2026-33032/README.md rename to nginx-ui/CVE-2026-33032/README.md diff --git a/nginx/CVE-2026-33032/docker-compose.yml b/nginx-ui/CVE-2026-33032/docker-compose.yml similarity index 100% rename from nginx/CVE-2026-33032/docker-compose.yml rename to nginx-ui/CVE-2026-33032/docker-compose.yml