{"id":"CVE-2026-118690","kind":"vulnerability","aliases":["CVE-2026-118690"],"related":[],"title":"Signal K Server: unauthenticated log download leaks keys, enabling full admin takeover","description":"Signal K Server before 2.33.0 contains a missing authentication vulnerability that allows unauthenticated remote attackers to download log archives via the /skServer/ziplogs endpoint. Attackers can extract the JWT secretKey from security.json in the ZIP, forge administrator tokens, and create persistent admin accounts for full server control.","summary":"Signal K Server before 2.33.0 serves log archives from its /skServer/ziplogs endpoint without requiring authentication. The archive contains the JWT secret key from security.json, which lets an attacker forge administrator tokens and create persistent admin accounts for full server control.","severity":"critical","cvss":9.8,"epss":null,"exploited":false,"exploited_at":null,"products":[],"ecosystems":[],"tags":["iot","marine","node.js","package","self-hosted","signal-k"],"not_affected_if":["no-network-exposure","version-2.33.0-or-later"],"how_to_check":"- Run `npm ls signalk-server` or check the installed Signal K Server version against `2.33.0`.\n- Request `/skServer/ziplogs` without credentials on the server and see whether a ZIP file is returned.","fix":"- Upgrade Signal K Server to `2.33.0` or later.\n- After upgrading, rotate the JWT secret key and review admin accounts for ones you did not create.","status":"open","published_at":"2026-10-28T22:17:13+00:00","first_seen_at":"2026-10-28T22:35:34+00:00","triaged_at":"2026-10-28T22:36:32+00:00","updated_at":"2026-10-28T22:36:32+00:00","category":"package","confidence":0.7,"triage":{"at":"2026-10-28T22:36:32Z","model":"claude-haiku-5-5","output":{"fix":"- Upgrade Signal K Server to `2.33.0` or later.\n- After upgrading, rotate the JWT secret key and review admin accounts for ones you did not create.","reach":"internet","title":"Signal K Server: unauthenticated log download leaks keys, enabling full admin takeover","impact":"high","summary":"Signal K Server before 2.33.0 serves log archives from its /skServer/ziplogs endpoint without requiring authentication. The archive contains the JWT secret key from security.json, which lets an attacker forge administrator tokens and create persistent admin accounts for full server control.","category":"package","nicknames":[],"who_cares":["signal-k","self-hosted","marine","iot","node.js"],"confidence":0.7,"needs_auth":"no","worst_case":"Attacker gains full administrator control of the server","analyst_note":"Confirm whether ziplogs is enabled by default and check the upstream advisory for the exact vulnerable version range and any workaround.","how_to_check":"- Run `npm ls signalk-server` or check the installed Signal K Server version against `2.33.0`.\n- Request `/skServer/ziplogs` without credentials on the server and see whether a ZIP file is returned.","needs_analyst":true,"not_affected_if":["version-2.33.0-or-later","no-network-exposure"],"who_is_affected":"Any Signal K Server instance older than 2.33.0 that is reachable over a network the attacker can reach, since the ziplogs endpoint needs no login. Instances behind a firewall or limited to a trusted local network have a smaller exposure, but the endpoint should still be patched.","user_interaction":"no","needs_special_setup":"unknown","severity_if_unknown":"critical"},"cost_usd":0.000631,"input_tokens":3332,"output_tokens":596,"severity_before":"critical"},"analyst_status":null,"analyst_note":null,"search":"'-118690':15A,18A '-2026':14A,17A '/skserver/ziplogs':39B,90C '2.33.0':33B,73C 'account':64B,110C 'admin':11A,63B,109C 'administr':58B,104C 'allow':80C 'archiv':36B,45B,87C 'attack':56B,83C,92C 'authent':43B,77C 'contain':46B,74C 'control':68B,114C 'creat':61B,107C 'cve':13A,16A 'download':6A,85C 'enabl':9A 'endpoint':40B,91C 'extract':94C 'forg':57B,103C 'full':10A,66B,112C 'host':25B 'iot':19B 'jwt':48B,96C 'k':2A,28B,30B,70C 'key':8A,50B 'leak':7A 'let':54B 'log':5A,35B,86C 'marin':20B 'miss':76C 'node.js':21B 'packag':22B 'persist':62B,108C 'remot':82C 'requir':42B 'secret':49B 'secretkey':97C 'security.json':52B,99C 'self':24B 'self-host':23B 'serv':34B 'server':3A,31B,67B,71C,113C 'signal':1A,27B,29B,69C 'signal-k':26B 'takeov':12A 'token':59B,105C 'unauthent':4A,81C 'via':88C 'vulner':78C 'without':41B 'zip':102C","nicknames":[],"mitigations":[],"who_affected":"Any Signal K Server instance older than 2.33.0 that is reachable over a network the attacker can reach, since the ziplogs endpoint needs no login. Instances behind a firewall or limited to a trusted local network have a smaller exposure, but the endpoint should still be patched.","tier":"B","verified":{},"analyst_revisit_at":null,"first_public_at":"2026-10-28T22:17:13+00:00","kev":null,"cvss_vector":"CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:H/VA:H/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":0,"sources":[{"source":"nvd","external_id":"CVE-2026-118690","url":"https://nvd.nist.gov/vuln/detail/CVE-2026-118690","severity":null,"published_at":"2026-10-28T22:17:13+00:00","modified_at":"2026-10-28T22:17:13+00:00","first_seen_at":"2026-10-28T22:35:34+00:00","fetched_at":"2026-10-28T22:35:34+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"}