{"id":"CVE-2026-116678","kind":"vulnerability","aliases":["CVE-2026-116678"],"related":[],"title":"Vaultwarden: favicon fetch reaches internal addresses via IP-literal URLs","description":"Vaultwarden is a Bitwarden-compatible server written in Rust. Prior to version 1.37.0, the Vaultwarden icon downloader validates the initial icon host and DNS results but passes favicon URLs parsed from attacker-controlled HTML to get_page_with_referer() without applying should_block_host() to the second-stage host. This flaw bypasses the remediation for CVE-2026-47160, which covered decimal, hexadecimal, octal, and IPv4-mapped IPv6 host normalization, because the second-stage IP-literal favicon fetch does not invoke the custom DNS resolver. A remote unauthenticated attacker can provide a public page whose favicon uses an IP-literal URL, allowing the Vaultwarden server to reach loopback or private and internal addresses. The issue affects instances with internal icon downloading enabled and can expose internal responses that resemble supported images or reveal reachability through timing, status, and cache behavior. This issue is fixed in version 1.37.0.","summary":"Vaultwarden's icon downloader fetches favicon URLs from attacker-supplied HTML without the internal-host block on the second request, so an IP-literal favicon can make the server reach loopback and private addresses. An attacker can probe internal services and may read responses that look like images, or infer reachability from timing and status.","severity":"medium","cvss":5.8,"epss":null,"exploited":false,"exploited_at":null,"products":[],"ecosystems":[],"tags":["docker","package","rust","self-hosted","vaultwarden"],"not_affected_if":["icon-downloading-disabled","managed-hosting","version-1.37.0-or-later"],"how_to_check":"- Check the running version with `vaultwarden --version` or the container image tag; versions below `1.37.0` are affected.\n- Check whether internal icon downloading is enabled (`ICON_SERVICE=internal` or the equivalent admin setting); the flaw only matters when it is on.","fix":"- Upgrade Vaultwarden to `1.37.0` or later.\n- If upgrading is not possible right away, disable internal icon downloading until the upgrade is done.","status":"open","published_at":"2026-10-27T18:17:35+00:00","first_seen_at":"2026-10-27T18:32:59+00:00","triaged_at":"2026-10-27T18:34:54+00:00","updated_at":"2026-10-27T18:34:54+00:00","category":"package","confidence":0.7,"triage":{"at":"2026-10-27T18:34:54Z","model":"claude-haiku-5-5","output":{"fix":"- Upgrade Vaultwarden to `1.37.0` or later.\n- If upgrading is not possible right away, disable internal icon downloading until the upgrade is done.","reach":"internet","title":"Vaultwarden: favicon fetch reaches internal addresses via IP-literal URLs","impact":"medium","summary":"Vaultwarden's icon downloader fetches favicon URLs from attacker-supplied HTML without the internal-host block on the second request, so an IP-literal favicon can make the server reach loopback and private addresses. An attacker can probe internal services and may read responses that look like images, or infer reachability from timing and status.","category":"package","nicknames":[],"who_cares":["vaultwarden","self-hosted","docker","rust"],"confidence":0.7,"needs_auth":"no","worst_case":"server-side requests reach internal services and leak responses","analyst_note":"","how_to_check":"- Check the running version with `vaultwarden --version` or the container image tag; versions below `1.37.0` are affected.\n- Check whether internal icon downloading is enabled (`ICON_SERVICE=internal` or the equivalent admin setting); the flaw only matters when it is on.","needs_analyst":false,"not_affected_if":["version-1.37.0-or-later","icon-downloading-disabled","managed-hosting"],"who_is_affected":"Self-hosted Vaultwarden instances with internal icon downloading enabled are exposed, because the server itself makes the outbound request to favicon URLs found in pages. Instances that have upgraded to 1.37.0 or later, or that run with icon downloading turned off, can skip it. Bitwarden's hosted service is not Vaultwarden and is not affected.","user_interaction":"no","needs_special_setup":"yes","severity_if_unknown":"medium"},"cost_usd":0.000666,"input_tokens":3540,"output_tokens":624,"severity_before":"medium"},"analyst_status":null,"analyst_note":null,"search":"'-116678':14A,17A '-2026':13A,16A,142C '-47160':143C '1.37.0':96C,235C 'address':6A,61B,201C 'affect':204C 'allow':190C 'appli':125C 'attack':34B,63B,116C,176C 'attacker-control':115C 'attacker-suppli':33B 'behavior':228C 'bitwarden':87C 'bitwarden-compat':86C 'block':42B,127C 'bypass':137C 'cach':227C 'compat':88C 'control':117C 'cover':145C 'custom':170C 'cve':12A,15A,141C 'decim':146C 'dns':107C,171C 'docker':18B 'download':28B,100C,209C 'enabl':210C 'expos':213C 'favicon':2A,30B,52B,111C,164C,183C 'fetch':3A,29B,165C 'fix':232C 'flaw':136C 'get':120C 'hexadecim':147C 'host':23B,41B,105C,128C,134C,154C 'html':36B,118C 'icon':27B,99C,104C,208C 'imag':75B,219C 'infer':77B 'initi':103C 'instanc':205C 'intern':5A,40B,66B,200C,207C,214C 'internal-host':39B 'invok':168C 'ip':9A,50B,162C,187C 'ip-liter':8A,49B,161C,186C 'ipv4':151C 'ipv4-mapped':150C 'ipv6':153C 'issu':203C,230C 'like':74B 'liter':10A,51B,163C,188C 'look':73B 'loopback':58B,196C 'make':54B 'map':152C 'may':69B 'normal':155C 'octal':148C 'packag':19B 'page':121C,181C 'pars':113C 'pass':110C 'prior':93C 'privat':60B,198C 'probe':65B 'provid':178C 'public':180C 'reach':4A,57B,195C 'reachabl':78B,222C 'read':70B 'refer':123C 'remedi':139C 'remot':174C 'request':46B 'resembl':217C 'resolv':172C 'respons':71B,215C 'result':108C 'reveal':221C 'rust':20B,92C 'second':45B,132C,159C 'second-stag':131C,158C 'self':22B 'self-host':21B 'server':56B,89C,193C 'servic':67B 'stage':133C,160C 'status':82B,225C 'suppli':35B 'support':218C 'time':80B,224C 'unauthent':175C 'url':11A,31B,112C,189C 'use':184C 'valid':101C 'vaultwarden':1A,24B,25B,83C,98C,192C 'version':95C,234C 'via':7A 'whose':182C 'without':37B,124C 'written':90C","nicknames":[],"mitigations":[],"who_affected":"Self-hosted Vaultwarden instances with internal icon downloading enabled are exposed, because the server itself makes the outbound request to favicon URLs found in pages. Instances that have upgraded to 1.37.0 or later, or that run with icon downloading turned off, can skip it. Bitwarden's hosted service is not Vaultwarden and is not affected.","tier":"C","verified":{},"analyst_revisit_at":null,"first_public_at":"2026-10-27T18:17:35+00:00","kev":null,"cvss_vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:L/I:N/A:N","cvss_by":"security-advisories@github.com","poc_count":0,"sources":[{"source":"nvd","external_id":"CVE-2026-116678","url":"https://nvd.nist.gov/vuln/detail/CVE-2026-116678","severity":null,"published_at":"2026-10-27T18:17:35+00:00","modified_at":"2026-10-27T18:17:35+00:00","first_seen_at":"2026-10-27T18:32:59+00:00","fetched_at":"2026-10-27T18:32:59+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"}