{"id":"CVE-2016-20104","kind":"vulnerability","aliases":["CVE-2016-20104"],"related":[],"title":"EyeLock nano NXT: unauthenticated path traversal reads arbitrary local files","description":"EyeLock nano NXT 3.05.1193, 3.04.1108, 3.03.944, and 3.01.646 contain a path traversal vulnerability that allows unauthenticated attackers to read arbitrary files via the 'path' parameter. Attackers can send GET requests to /scripts/logdownload.php with traversal sequences like ../../etc/passwd, which readfile() returns unvalidated, disclosing local system files. Exploitation evidence was first observed by the Shadowserver Foundation on 2023-10-19.","summary":"EyeLock nano NXT iris-recognition devices expose a PHP log download script whose path parameter is passed unchecked to readfile(). An unauthenticated remote attacker can read any file on the device, such as /etc/passwd.","severity":"high","cvss":8.7,"epss":null,"exploited":true,"exploited_at":null,"products":[{"name":"EyeLock nano NXT","fixed":[],"affected":"firmware 3.01.646, 3.03.944, 3.04.1108, 3.05.1193","ecosystem":"hardware"}],"ecosystems":[],"tags":["embedded","eyelock","infrastructure","iris-authentication","path-traversal","self-hosted"],"not_affected_if":["firmware-newer-than-3.05.1193","not-nano-nxt"],"how_to_check":"Check whether the device's web interface is reachable and firmware is 3.01.646, 3.03.944, 3.04.1108 or 3.05.1193. Test: GET /scripts/logdownload.php?path=../../etc/passwd; if it returns file contents the device is vulnerable. Also check whether it is exposed to the internet.","fix":"No patched firmware published in the sources; unknown. Contact EyeLock for a newer build. Meanwhile, remove internet exposure, restrict the web interface to a management VLAN or firewall, and block /scripts/logdownload.php at a proxy.","status":"open","published_at":"2026-10-20T21:17:14+00:00","first_seen_at":"2026-10-23T21:57:21+00:00","triaged_at":"2026-10-23T22:37:13+00:00","updated_at":"2026-10-24T00:11:30+00:00","category":"infrastructure","confidence":0.75,"triage":{"at":"2026-10-23T22:37:13Z","model":"claude-haiku-5-5","output":{"fix":"unknown","reach":"internet","title":"EyeLock nano NXT: unauthenticated path traversal reads arbitrary local files","impact":"medium","summary":"EyeLock nano NXT iris-recognition devices expose a PHP log download script whose path parameter is passed unchecked to readfile(). An unauthenticated remote attacker can read any file on the device, such as /etc/passwd.","category":"infrastructure","who_cares":["eyelock","iris-authentication","self-hosted","embedded"],"confidence":0.7,"needs_auth":"no","worst_case":"unauthenticated attacker reads arbitrary files from the device","analyst_note":"Sources do not name a patched firmware version or a vendor advisory; check EyeLock vendor notices and the Shadowserver report for fixed builds and exposure counts.","how_to_check":"unknown","needs_analyst":true,"not_affected_if":["not-nano-nxt","firmware-newer-than-3.05.1193"],"user_interaction":"no","needs_special_setup":"unknown","severity_if_unknown":"unknown"},"cost_usd":0.000491,"input_tokens":3007,"output_tokens":380,"severity_before":"high"},"analyst_status":"done","analyst_note":"Sources do not name a patched firmware version or a vendor advisory; check EyeLock vendor notices and the Shadowserver report for fixed builds and exposure counts.","search":"'-10':123C '-19':124C '-20104':13A,16A '-2016':12A,15A '/../etc/passwd':103C '/etc/passwd':66B '/scripts/logdownload.php':98C '2023':122C '3.01.646':74C '3.03.944':72C '3.04.1108':71C '3.05.1193':70C 'allow':81C 'arbitrari':8A,86C 'attack':56B,83C,92C 'authent':25B 'contain':75C 'cve':11A,14A 'devic':38B,63B 'disclos':108C 'download':43B 'embed':20B 'evid':113C 'exploit':112C 'expos':39B 'eyelock':1A,17A,21B,32B,67C 'file':10A,60B,87C,111C 'first':115C 'foundat':120C 'get':95C 'host':31B 'infrastructur':22B 'iri':24B,36B 'iris-authent':23B 'iris-recognit':35B 'like':102C 'local':9A,109C 'log':42B 'nano':2A,18A,33B,68C 'nxt':3A,19A,34B,69C 'observ':116C 'paramet':47B,91C 'pass':49B 'path':5A,27B,46B,77C,90C 'path-travers':26B 'php':41B 'read':7A,58B,85C 'readfil':52B,105C 'recognit':37B 'remot':55B 'request':96C 'return':106C 'script':44B 'self':30B 'self-host':29B 'send':94C 'sequenc':101C 'shadowserv':119C 'system':110C 'travers':6A,28B,78C,100C 'unauthent':4A,54B,82C 'uncheck':50B 'unvalid':107C 'via':88C 'vulner':79C 'whose':45B","nicknames":[],"mitigations":[],"who_affected":null,"tier":"A","verified":{},"analyst_revisit_at":null,"first_public_at":"2026-10-20T21:17:14+00:00","kev":null,"cvss_vector":"CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:N/VA:N/SC:N/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X","cvss_by":"disclosure@vulncheck.com","poc_count":1,"sources":[{"source":"nvd","external_id":"CVE-2016-20104","url":"https://nvd.nist.gov/vuln/detail/CVE-2016-20104","severity":null,"published_at":"2026-10-20T21:17:14+00:00","modified_at":"2026-10-23T16:16:50+00:00","first_seen_at":"2026-10-23T21:57:21+00:00","fetched_at":"2026-10-23T22:28:58+00:00","note":null},{"source":"analyst","external_id":"CVE-2016-20104:607","url":null,"severity":null,"published_at":"2026-10-24T00:11:30+00:00","modified_at":"2026-10-24T00:11:30+00:00","first_seen_at":"2026-10-24T00:11:30+00:00","fetched_at":"2026-10-24T00:11:30+00:00","note":"CVE record + Exploit-DB 40227 (public PoC, 2016): logdownload.php path traversal; Shadowserver saw exploitation 2023-10-19. No vendor advisory or fixed firmware found; did not search social posts (old device, low chatter assumed)."}],"documents":[{"id":2467,"url":"https://www.exploit-db.com/exploits/40227","title":"EyeLock nano NXT 3.5 - Local File Disclosure (LiquidWorm, 2016-08-10)","kind":"poc","source":"analyst","text":null,"published_at":null,"relation":"poc","confidence":null,"note":null},{"id":2468,"url":"https://www.cve.org/CVERecord?id=CVE-2016-20104","title":"CVE Record: CVE-2016-20104","kind":"advisory","source":"analyst","text":null,"published_at":null,"relation":"advisory","confidence":null,"note":null}],"notice":"Free to read at a human pace. An API with keys and an MCP server are in preparation; early access: hello@infrastack.ai"}