-
-
Notifications
You must be signed in to change notification settings - Fork 1.1k
Nginx UI CVE 2026 33032 Module #1608
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Open
Aarush289
wants to merge
22
commits into
OWASP:master
Choose a base branch
from
Aarush289:nginx_ui_cve_2026_33032_vuln
base: master
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Open
Changes from 21 commits
Commits
Show all changes
22 commits
Select commit
Hold shift + click to select a range
0cc045d
Merge pull request #4 from OWASP/master
Aarush289 2a32fe2
Merge pull request #8 from OWASP/master
Aarush289 4090ae3
Merge pull request #9 from OWASP/master
Aarush289 2a0b83e
Add FortiWeb authentication bypass vulnerability check
Aarush289 b1ffe4e
Remove FortiWeb auth bypass vulnerability entry
Aarush289 6db5ee7
Fix vulnerability name in wp_plugin_cve_2021_38314.yaml
Aarush289 6fd226a
Rename CVE identifier from 39314 to 39320
Aarush289 03675d5
Merge pull request #10 from OWASP/master
Aarush289 0d3399e
Merge pull request #13 from OWASP/master
Aarush289 ace2db9
Merge pull request #14 from OWASP/master
Aarush289 0711d39
Merge pull request #16 from OWASP/master
Aarush289 0857127
Merge pull request #18 from OWASP/master
Aarush289 44a9ae6
Merge pull request #19 from OWASP/master
Aarush289 95ac772
Merge pull request #20 from OWASP/master
Aarush289 5d5201e
Merge remote-tracking branch 'upstream/master'
Aarush289 b03d8bc
Merge pull request #22 from OWASP/master
Aarush289 7f65c13
Merge pull request #23 from OWASP/master
Aarush289 0c9084d
new module added
Aarush289 e4372dc
fix severity
Aarush289 a7f4604
Merge branch 'master' into nginx_ui_cve_2026_33032_vuln
Aarush289 44b0b8e
Merge branch 'master' into nginx_ui_cve_2026_33032_vuln
securestep9 61a6de4
Merge branch 'master' into nginx_ui_cve_2026_33032_vuln
securestep9 File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,80 @@ | ||
| info: | ||
| name: nginx_ui_cve_2026_33032_vuln | ||
| author: Nettacker Team | ||
| severity: 9.8 | ||
| description: | | ||
| Detects a Broken Access Control vulnerability in Nginx UI versions prior | ||
| to 2.3.4. The `/mcp_message` endpoint processes unauthenticated JSON-RPC | ||
| requests and returns a JSON-RPC error indicating a missing session ID | ||
| instead of rejecting the request with an authentication error. Successful | ||
| detection indicates the endpoint is reachable without authentication and | ||
| is likely vulnerable to CVE-2026-33032. | ||
| references: | ||
| - https://github.com/0xJacky/nginx-ui/security/advisories/GHSA-h6c2-x2m2-mwhf | ||
| - https://github.com/0xJacky/nginx-ui/commit/413dc631 | ||
| - https://nvd.nist.gov/vuln/detail/CVE-2026-33032 | ||
| profiles: | ||
| - vuln | ||
| - http | ||
| - cve | ||
| - cve2026 | ||
| - nginx_ui | ||
| - mcp | ||
| - unauth | ||
| - critical_severity | ||
|
|
||
| payloads: | ||
| - library: http | ||
| steps: | ||
| - method: post | ||
| timeout: 5 | ||
| headers: | ||
| User-Agent: "{user_agent}" | ||
| Content-Type: "application/json" | ||
| ssl: false | ||
| allow_redirects: false | ||
| url: | ||
| nettacker_fuzzer: | ||
| input_format: "{{schema}}://{target}:{{ports}}/mcp_message" | ||
| prefix: "" | ||
| suffix: "" | ||
| interceptors: | ||
| data: | ||
| schema: | ||
| - "http" | ||
| - "https" | ||
| ports: | ||
| - 80 | ||
| - 443 | ||
| - 9000 | ||
|
|
||
| data: | | ||
| {{ | ||
| "jsonrpc":"2.0", | ||
| "method":"initialize", | ||
| "params":{{ | ||
| "protocolVersion":"2024-11-05", | ||
| "capabilities":{{}}, | ||
| "clientInfo":{{ | ||
| "name":"nettacker", | ||
| "version":"1.0" | ||
| }} | ||
| }}, | ||
| "id":1 | ||
| }} | ||
|
|
||
| response: | ||
| condition_type: and | ||
| conditions: | ||
| status_code: | ||
| regex: "400" | ||
| reverse: false | ||
|
|
||
| headers: | ||
| Content-Type: | ||
| regex: "application/json" | ||
| reverse: false | ||
|
|
||
| content: | ||
| regex: '(?s)(?=.*"jsonrpc":)(?=.*"message")(?=.*"id").*' | ||
| reverse: false | ||
|
coderabbitai[bot] marked this conversation as resolved.
|
||
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
When any non-nginx-ui JSON-RPC/MCP service happens to expose
/mcp_messageand returns a normal 400 JSON-RPC error, this condition will still pass because it only requiresjsonrpc,message, andidsomewhere in the body. That can report CVE-2026-33032 for unrelated services; the probe description says it is looking for the missing-session response, so the content check should include that specific error text or another nginx-ui-specific fingerprint.Useful? React with 👍 / 👎.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The probe already fingerprints the target using the specific /mcp_message endpoint and a valid MCP JSON-RPC request. Requiring an exact error string would lead to false negatives, as response messages may change across versions.