{"id":"CVE-2026-115752","kind":"vulnerability","aliases":["CVE-2026-115752"],"related":[],"title":"Signal K Server: App Store icon fetcher enables server-side request forgery","description":"Signal K Server from 2.28.0-beta.2 before 2.34.0 contains a server-side request forgery vulnerability in the App Store icon fetcher that trusts absolute signalk.appIcon URLs. Attackers publishing npm packages with Signal K keywords can make servers request loopback, vessel network, or cloud metadata endpoints, storing image-typed responses served back via the admin UI.","summary":"Signal K Server versions from 2.28.0-beta.2 before 2.34.0 fetch icon URLs from npm packages without restricting the destination, trusting absolute signalk.appIcon URLs. An attacker who publishes a package with Signal K keywords can make the server request loopback, vessel-network or cloud metadata endpoints and store image responses that are shown back in the admin UI.","severity":"medium","cvss":4.2,"epss":0.00305,"exploited":false,"exploited_at":null,"products":[],"ecosystems":[],"tags":["marine","npm","runtime","self-hosted","signal-k"],"not_affected_if":["default-config"],"how_to_check":"- Check the installed version with `signalk-server --version` or the `version` field in the package.json of the Signal K Server install.\n- Check whether the App Store feature is in use in the admin UI.","fix":"- Upgrade Signal K Server to `2.34.0` or later.","status":"open","published_at":"2026-10-23T13:17:09+00:00","first_seen_at":"2026-10-23T21:57:33+00:00","triaged_at":"2026-10-25T04:41:21+00:00","updated_at":"2026-10-25T12:38:50+00:00","category":"runtime","confidence":0.6,"triage":{"at":"2026-10-25T04:41:21Z","model":"claude-haiku-5-5","output":{"fix":"- Upgrade Signal K Server to `2.34.0` or later.","reach":"internet","title":"Signal K Server: App Store icon fetcher enables server-side request forgery","impact":"medium","summary":"Signal K Server versions from 2.28.0-beta.2 before 2.34.0 fetch icon URLs from npm packages without restricting the destination, trusting absolute signalk.appIcon URLs. An attacker who publishes a package with Signal K keywords can make the server request loopback, vessel-network or cloud metadata endpoints and store image responses that are shown back in the admin UI.","category":"runtime","nicknames":[],"who_cares":["signal-k","self-hosted","npm","marine"],"confidence":0.6,"needs_auth":"no","worst_case":"Server fetches internal endpoints and cloud metadata, storing responses readable in admin UI","analyst_note":"","how_to_check":"- Check the installed version with `signalk-server --version` or the `version` field in the package.json of the Signal K Server install.\n- Check whether the App Store feature is in use in the admin UI.","needs_analyst":false,"not_affected_if":["default-config"],"who_is_affected":"Teams running Signal K Server between 2.28.0-beta.2 and 2.34.0 that have the App Store icon fetcher active, typically on boat or vessel networks and self-hosted instances where internal endpoints or cloud metadata are reachable from the server. Instances on versions outside that range, or that cannot reach internal services, face lower risk.","user_interaction":"unknown","needs_special_setup":"unknown","severity_if_unknown":"medium"},"cost_usd":0.000618,"input_tokens":3360,"output_tokens":564,"severity_before":"medium"},"analyst_status":null,"analyst_note":null,"search":"'-115752':16A,19A '-2026':15A,18A '2.28.0':34B,91C '2.34.0':37B,94C 'absolut':49B,111C 'admin':85B,142C 'app':4A,105C 'attack':53B,114C 'back':82B,139C 'beta.2':35B,92C 'cloud':72B,130C 'contain':95C 'cve':14A,17A 'destin':47B 'enabl':8A 'endpoint':74B,132C 'fetch':38B 'fetcher':7A,108C 'forgeri':13A,101C 'host':25B 'icon':6A,39B,107C 'imag':77B,135C 'image-typ':134C 'k':2A,28B,30B,60B,88C,120C 'keyword':61B,121C 'loopback':67B,126C 'make':63B,123C 'marin':20B 'metadata':73B,131C 'network':70B,128C 'npm':21B,42B,116C 'packag':43B,57B,117C 'publish':55B,115C 'request':12A,66B,100C,125C 'respons':78B,137C 'restrict':45B 'runtim':22B 'self':24B 'self-host':23B 'serv':138C 'server':3A,10A,31B,65B,89C,98C,124C 'server-sid':9A,97C 'shown':81B 'side':11A,99C 'signal':1A,27B,29B,59B,87C,119C 'signal-k':26B 'signalk.appicon':50B,112C 'store':5A,76B,106C,133C 'trust':48B,110C 'type':136C 'ui':86B,143C 'url':40B,51B,113C 'version':32B 'vessel':69B,127C 'vessel-network':68B 'via':140C 'vulner':102C 'without':44B","nicknames":[],"mitigations":[],"who_affected":"Teams running Signal K Server between 2.28.0-beta.2 and 2.34.0 that have the App Store icon fetcher active, typically on boat or vessel networks and self-hosted instances where internal endpoints or cloud metadata are reachable from the server. Instances on versions outside that range, or that cannot reach internal services, face lower risk.","tier":"C","verified":{},"analyst_revisit_at":null,"first_public_at":"2026-10-23T13:17:09+00:00","kev":null,"cvss_vector":"CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:P/VC:L/VI:L/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":0,"sources":[{"source":"nvd","external_id":"CVE-2026-115752","url":"https://nvd.nist.gov/vuln/detail/CVE-2026-115752","severity":null,"published_at":"2026-10-23T13:17:09+00:00","modified_at":"2026-10-23T19:57:42+00:00","first_seen_at":"2026-10-23T21:57:33+00:00","fetched_at":"2026-10-23T22:29:03+00:00","note":null},{"source":"epss","external_id":"CVE-2026-115752","url":"https://api.first.org/data/v1/epss?cve=CVE-2026-115752","severity":null,"published_at":null,"modified_at":null,"first_seen_at":"2026-10-25T12:38:50+00:00","fetched_at":"2026-10-25T12:38:50+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"}