{"id":"CVE-2026-84319","kind":"vulnerability","aliases":["CVE-2026-84319","GHSA-5r62-gj48-897x","GO-2026-6774"],"related":[],"title":"Nginx UI: MCP configuration tools bypass restricted directive validation and allow secondary authenticated users to execute NJS in Nginx worker context in github.com/0xJacky/Nginx-UI","description":"Nginx UI is a web user interface for the Nginx web server. Prior to 2.4.1, the regular HTTP configuration API rejects restricted Nginx directives such as load_module, js_import, and js_content. However, the MCP configuration interface allows a secondary authenticated user to write and apply equivalent restricted configuration content. This allows the user to load ngx_http_js_module.so, import attacker-controlled JavaScript, reload Nginx, and execute NJS in the Nginx worker context. This issue is fixed in version 2.4.1.","summary":"Nginx UI, a web interface for managing Nginx, has an MCP configuration path that skips the directive checks the normal API enforces, so a secondary authenticated user can write restricted directives like load_module and js_content. That lets them run attacker-controlled NJS JavaScript inside the Nginx worker process after a reload.","severity":"high","cvss":8.3,"epss":0.0028,"exploited":false,"exploited_at":null,"products":[{"name":"github.com/0xJacky/Nginx-UI","fixed":["1.9.10-0.20260703131214-23d1934099b0"],"affected":"< 1.9.10-0.20260703131214-23d1934099b0","ecosystem":"go"}],"ecosystems":["go"],"tags":["go","nginx","nginx-ui","package","self-hosted"],"not_affected_if":["managed-hosting","mcp-disabled","single-admin-user"],"how_to_check":"Check the Go module version of github.com/0xJacky/Nginx-UI in go.mod against the affected range below 1.9.10-0.20260703131214-23d1934099b0.","fix":"Upgrade github.com/0xJacky/Nginx-UI to 1.9.10-0.20260703131214-23d1934099b0 or later; the description cites version 2.4.1 as the fix, which the sources do not reconcile with the Go module version.\nRestrict Nginx UI user accounts to trusted users until patched.","status":"open","published_at":"2026-10-12T21:17:22+00:00","first_seen_at":"2026-10-23T19:13:08+00:00","triaged_at":"2026-10-23T19:52:41+00:00","updated_at":"2026-10-23T19:52:41+00:00","category":"package","confidence":0.7,"triage":{"at":"2026-10-23T19:52:41Z","model":"claude-haiku-5-5","output":{"fix":"Upgrade github.com/0xJacky/Nginx-UI to 1.9.10-0.20260703131214-23d1934099b0 or later; the description cites version 2.4.1 as the fix, which the sources do not reconcile with the Go module version.\nRestrict Nginx UI user accounts to trusted users until patched.","summary":"Nginx UI, a web interface for managing Nginx, has an MCP configuration path that skips the directive checks the normal API enforces, so a secondary authenticated user can write restricted directives like load_module and js_content. That lets them run attacker-controlled NJS JavaScript inside the Nginx worker process after a reload.","category":"package","who_cares":["nginx-ui","go","self-hosted","nginx"],"confidence":0.7,"analyst_note":"Sources give conflicting fixed versions (Go module pseudo-version vs description's 2.4.1); confirm the correct patched release at https://pkg.go.dev/vuln/GO-2026-6774 and check whether the MCP endpoint is enabled by default.","how_to_check":"Check the Go module version of github.com/0xJacky/Nginx-UI in go.mod against the affected range below 1.9.10-0.20260703131214-23d1934099b0.\nunknown\nunknown","needs_analyst":true,"not_affected_if":["managed-hosting","mcp-disabled","single-admin-user"],"severity_if_unknown":"high"},"cost_usd":0.000476,"input_tokens":2291,"output_tokens":494,"severity_before":"high"},"analyst_status":null,"analyst_note":null,"search":"'-2026':27A,35A,38A '-6774':36A '-84319':28A,39A '/0xjacky/nginx-ui':25A,42A '2.4.1':120C,185C '5r62':31A '897x':33A 'allow':11A,144C,158C 'api':72B,125C 'appli':152C 'attack':94B,166C 'attacker-control':93B,165C 'authent':13A,77B,147C 'bypass':6A 'check':69B 'configur':4A,63B,124C,142C,155C 'content':88B,138C,156C 'context':21A,178C 'control':95B,167C 'cve':26A,37A 'direct':8A,68B,82B,129C 'enforc':73B 'equival':153C 'execut':16A,172C 'fix':182C 'ghsa':30A 'ghsa-5r62-gj48-897x':29A 'github.com':24A,41A 'github.com/0xjacky/nginx-ui':23A,40A 'gj48':32A 'go':34A,43B 'host':51B 'howev':139C 'http':123C 'import':135C,164C 'insid':98B 'interfac':56B,112C,143C 'issu':180C 'javascript':97B,168C 'js':87B,134C,137C 'let':90B 'like':83B 'load':84B,132C,162C 'manag':58B 'mcp':3A,62B,141C 'modul':85B,133C 'nginx':1A,19A,44B,46B,52B,59B,100B,106C,115C,128C,170C,176C 'nginx-ui':45B 'ngx_http_js_module.so':163C 'njs':17A,96B,173C 'normal':71B 'packag':48B 'path':64B 'prior':118C 'process':102B 'regular':122C 'reject':126C 'reload':105B,169C 'restrict':7A,81B,127C,154C 'run':92B 'secondari':12A,76B,146C 'self':50B 'self-host':49B 'server':117C 'skip':66B 'tool':5A 'ui':2A,47B,53B,107C 'user':14A,78B,111C,148C,160C 'valid':9A 'version':184C 'web':55B,110C,116C 'worker':20A,101B,177C 'write':80B,150C","nicknames":[],"mitigations":[],"who_affected":null,"tier":null,"verified":{},"analyst_revisit_at":null,"first_public_at":"2026-10-12T21:17:22+00:00","kev":null,"cvss_vector":"CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:H/A:H","cvss_by":"security-advisories@github.com","poc_count":0,"sources":[{"source":"govuln","external_id":"GO-2026-6774","url":"https://pkg.go.dev/vuln/GO-2026-6774","severity":null,"published_at":"2026-10-19T21:08:35+00:00","modified_at":"2026-10-19T21:08:35+00:00","first_seen_at":"2026-10-23T19:13:08+00:00","fetched_at":"2026-10-23T19:13:08+00:00","note":null},{"source":"epss","external_id":"CVE-2026-84319","url":"https://api.first.org/data/v1/epss?cve=CVE-2026-84319","severity":null,"published_at":null,"modified_at":null,"first_seen_at":"2026-10-23T19:13:43+00:00","fetched_at":"2026-10-23T19:13:43+00:00","note":null},{"source":"nvd","external_id":"CVE-2026-84319","url":"https://nvd.nist.gov/vuln/detail/CVE-2026-84319","severity":null,"published_at":"2026-10-12T21:17:22+00:00","modified_at":"2026-10-13T21:19:11+00:00","first_seen_at":"2026-10-23T19:35:23+00:00","fetched_at":"2026-10-23T19:35:23+00:00","note":null}],"documents":[],"notice":"Free to read at a human pace. An API with keys and an MCP server are in preparation; early access: hello@infrastack.ai"}