{"id":"CVE-2026-84320","kind":"vulnerability","aliases":["CVE-2026-84320","GHSA-jrq7-xrjx-pcfw","GO-2026-6788"],"related":[],"title":"Nginx UI: Auto backup name allows path traversal outside validated storage path in github.com/0xJacky/Nginx-UI","description":"Nginx UI is a web user interface for the Nginx web server. Prior to 2.4.3, Nginx UI validates an automatic backup's storage_path, but AutoBackup.GetName returns a user-controlled name without rejecting path separators or parent-directory components, and downstream filename formatting embeds that result in the final archive filename. An authenticated user who can create or modify an automatic backup can cause filepath.Join to resolve the generated archive path outside the validated storage directory, allowing backup archives to be written with the Nginx UI process privileges. For encrypted configuration backups, the adjacent encryption key file can also be written outside the validated directory. This issue is fixed in version 2.4.3.","summary":"Nginx UI, a web interface for managing Nginx, lets an authenticated user set an automatic backup name containing path separators or '..' that escapes the validated backup directory. An attacker can write backup archives, and for encrypted backups the encryption key file, to arbitrary locations with the Nginx UI process's privileges.","severity":"medium","cvss":6.3,"epss":0.00167,"exploited":false,"exploited_at":null,"products":[{"name":"github.com/0xJacky/Nginx-UI","fixed":["1.9.10-0.20260715121709-f92218e01054"],"affected":"< 1.9.10-0.20260715121709-f92218e01054","ecosystem":"go"}],"ecosystems":["go"],"tags":["go","nginx","nginx-ui","package","self-hosted"],"not_affected_if":["auth-required","no-auto-backup-users"],"how_to_check":"Check the version of github.com/0xJacky/Nginx-UI in go.mod or the running binary; anything older than 1.9.10-0.20260715121709-f92218e01054 is affected.\nReview automatic backup configurations in the Nginx UI for names containing '/' or '..'.","fix":"Upgrade github.com/0xJacky/Nginx-UI to 1.9.10-0.20260715121709-f92218e01054 or later (the description says 2.4.3).\nUntil patched, restrict who can create or modify automatic backups.","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:57:53+00:00","updated_at":"2026-10-23T19:57:53+00:00","category":"package","confidence":0.8,"triage":{"at":"2026-10-23T19:57:53Z","model":"claude-haiku-5-5","output":{"fix":"Upgrade github.com/0xJacky/Nginx-UI to 1.9.10-0.20260715121709-f92218e01054 or later (the description says 2.4.3).\nUntil patched, restrict who can create or modify automatic backups.","summary":"Nginx UI, a web interface for managing Nginx, lets an authenticated user set an automatic backup name containing path separators or '..' that escapes the validated backup directory. An attacker can write backup archives, and for encrypted backups the encryption key file, to arbitrary locations with the Nginx UI process's privileges.","category":"package","who_cares":["nginx-ui","self-hosted","go","nginx"],"confidence":0.8,"analyst_note":"Sources disagree on the fixed version: the govuln pseudo-version 1.9.10-0.20260715121709-f92218e01054 versus the description's 2.4.3; confirm which release tag contains the fix at https://pkg.go.dev/vuln/GO-2026-6788 and the GHSA page.","how_to_check":"Check the version of github.com/0xJacky/Nginx-UI in go.mod or the running binary; anything older than 1.9.10-0.20260715121709-f92218e01054 is affected.\nReview automatic backup configurations in the Nginx UI for names containing '/' or '..'.\nunknown","needs_analyst":true,"not_affected_if":["auth-required","no-auto-backup-users"],"severity_if_unknown":"medium"},"cost_usd":0.000485,"input_tokens":2318,"output_tokens":506,"severity_before":"medium"},"analyst_status":null,"analyst_note":null,"search":"'-2026':18A,26A,29A '-6788':27A '-84320':19A,30A '/0xjacky/nginx-ui':16A,33A '2.4.3':108C,207C 'adjac':189C 'allow':6A,172C 'also':194C 'arbitrari':85B 'archiv':75B,145C,165C,174C 'attack':71B 'authent':53B,148C 'auto':3A 'autobackup.getname':119C 'automat':57B,113C,156C 'backup':4A,58B,68B,74B,79B,114C,157C,173C,187C 'caus':159C 'compon':134C 'configur':186C 'contain':60B 'control':124C 'creat':152C 'cve':17A,28A 'directori':69B,133C,171C,200C 'downstream':136C 'emb':139C 'encrypt':78B,81B,185C,190C 'escap':65B 'file':83B,192C 'filenam':137C,146C 'filepath.join':160C 'final':144C 'fix':204C 'format':138C 'generat':164C 'ghsa':21A 'ghsa-jrq7-xrjx-pcfw':20A 'github.com':15A,32A 'github.com/0xjacky/nginx-ui':14A,31A 'go':25A,34B 'host':42B 'interfac':47B,100C 'issu':202C 'jrq7':22A 'key':82B,191C 'let':51B 'locat':86B 'manag':49B 'modifi':154C 'name':5A,59B,125C 'nginx':1A,35B,37B,43B,50B,89B,94C,103C,109C,180C 'nginx-ui':36B 'outsid':9A,167C,197C 'packag':39B 'parent':132C 'parent-directori':131C 'path':7A,12A,61B,117C,128C,166C 'pcfw':24A 'prior':106C 'privileg':93B,183C 'process':91B,182C 'reject':127C 'resolv':162C 'result':141C 'return':120C 'self':41B 'self-host':40B 'separ':62B,129C 'server':105C 'set':55B 'storag':11A,116C,170C 'travers':8A 'ui':2A,38B,44B,90B,95C,110C,181C 'user':54B,99C,123C,149C 'user-control':122C 'valid':10A,67B,111C,169C,199C 'version':206C 'web':46B,98C,104C 'without':126C 'write':73B 'written':177C,196C 'xrjx':23A","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:L/A:L","cvss_by":"security-advisories@github.com","poc_count":0,"sources":[{"source":"govuln","external_id":"GO-2026-6788","url":"https://pkg.go.dev/vuln/GO-2026-6788","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-84320","url":"https://api.first.org/data/v1/epss?cve=CVE-2026-84320","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-84320","url":"https://nvd.nist.gov/vuln/detail/CVE-2026-84320","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"}