{"id":"CVE-2026-63183","kind":"vulnerability","aliases":["CVE-2026-63183"],"related":[],"title":"OmniAuth: forged Host header can redirect login callbacks to attacker hosts","description":"OmniAuth is a flexible authentication system utilizing Rack middleware. Prior to 2.2.0, OmniAuth derives provider callback URLs from request-controlled host information when neither a fixed full_host nor framework-level incoming host validation is configured. A remote unauthenticated client can supply a forged Host header, creating a host header injection risk in applications whose web framework does not verify incoming host headers. Applications using appropriately configured Rails host authorization or a fixed full_host are not affected by this path. This issue is fixed in version 2.2.0.","summary":"OmniAuth builds provider callback URLs from the request's Host header when no fixed full_host or framework host check is set. An unauthenticated remote client can send a forged Host header, which can point login callbacks at an attacker-controlled host.","severity":"medium","cvss":6.9,"epss":null,"exploited":false,"exploited_at":null,"products":[],"ecosystems":[],"tags":["omniauth","package","rack","rails","ruby"],"not_affected_if":["fixed-full-host","host-authorization-enabled"],"how_to_check":"- Check the installed version with `bundle exec gem list omniauth` or by reading `omniauth` in `Gemfile.lock`.\n- Look for `full_host` set in the OmniAuth configuration.\n- Check whether the web framework validates incoming host headers (for example Rails host authorization).","fix":"- OmniAuth: move to `2.2.0` or later.","status":"open","published_at":"2026-11-04T19:17:40+00:00","first_seen_at":"2026-11-04T19:28:48+00:00","triaged_at":"2026-11-04T19:30:11+00:00","updated_at":"2026-11-04T19:30:11+00:00","category":"package","confidence":0.7,"triage":{"at":"2026-11-04T19:30:11Z","model":"claude-haiku-5-5","output":{"fix":"- OmniAuth: move to `2.2.0` or later.","reach":"internet","title":"OmniAuth: forged Host header can redirect login callbacks to attacker hosts","impact":"medium","summary":"OmniAuth builds provider callback URLs from the request's Host header when no fixed full_host or framework host check is set. An unauthenticated remote client can send a forged Host header, which can point login callbacks at an attacker-controlled host.","audience":"developers","category":"package","nicknames":[],"who_cares":["ruby","rails","omniauth","rack"],"confidence":0.7,"fix_status":"available","needs_auth":"no","worst_case":"login callback URLs can be redirected to attacker-controlled hosts","analyst_note":"","how_to_check":"- Check the installed version with `bundle exec gem list omniauth` or by reading `omniauth` in `Gemfile.lock`.\n- Look for `full_host` set in the OmniAuth configuration.\n- Check whether the web framework validates incoming host headers (for example Rails host authorization).","plain_action":"","needs_analyst":false,"not_affected_if":["fixed-full-host","host-authorization-enabled"],"who_is_affected":"Applications that use OmniAuth for login through Rack middleware and do not set a fixed full_host and do not have framework-level host header validation are exposed. Rails apps with appropriately configured host authorization, and apps with a fixed full_host, are not affected by this path. unknown for other frameworks beyond that.","user_interaction":"unknown","needs_special_setup":"yes","severity_if_unknown":"medium"},"cost_usd":0.000701,"input_tokens":4224,"output_tokens":557,"severity_before":"medium"},"analyst_status":null,"analyst_note":null,"search":"'-2026':13A,16A '-63183':14A,17A '2.2.0':77C,155C 'affect':145C 'applic':121C,131C 'appropri':133C 'attack':10A,63B 'attacker-control':62B 'authent':70C 'author':137C 'build':24B 'callback':8A,26B,59B,81C 'check':42B 'client':48B,107C 'configur':103C,134C 'control':64B,86C 'creat':114C 'cve':12A,15A 'deriv':79C 'fix':36B,92C,140C,152C 'flexibl':69C 'forg':2A,52B,111C 'framework':40B,97C,124C 'framework-level':96C 'full':37B,93C,141C 'header':4A,33B,54B,113C,117C,130C 'host':3A,11A,32B,38B,41B,53B,65B,87C,94C,100C,112C,116C,129C,136C,142C 'incom':99C,128C 'inform':88C 'inject':118C 'issu':150C 'level':98C 'login':7A,58B 'middlewar':74C 'neither':90C 'omniauth':1A,18B,23B,66C,78C 'packag':19B 'path':148C 'point':57B 'prior':75C 'provid':25B,80C 'rack':20B,73C 'rail':21B,135C 'redirect':6A 'remot':47B,105C 'request':30B,85C 'request-control':84C 'risk':119C 'rubi':22B 'send':50B 'set':44B 'suppli':109C 'system':71C 'unauthent':46B,106C 'url':27B,82C 'use':132C 'util':72C 'valid':101C 'verifi':127C 'version':154C 'web':123C 'whose':122C","nicknames":[],"mitigations":[],"who_affected":"Applications that use OmniAuth for login through Rack middleware and do not set a fixed full_host and do not have framework-level host header validation are exposed. Rails apps with appropriately configured host authorization, and apps with a fixed full_host, are not affected by this path. unknown for other frameworks beyond that.","tier":"C","verified":{},"analyst_revisit_at":null,"fix_status":"available","audience":"developers","plain_action":null,"pkeys":[],"ptokens":[],"labels":["medium","omniauth","package","rack","rails","ruby"],"campaign_type":null,"first_public_at":"2026-10-22T19:48:56+00:00","kev":null,"cvss_vector":"CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:L/VI:L/VA:N/SC:N/SI:L/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":"security-advisories@github.com","poc_count":0,"sources":[{"source":"nvd","external_id":"CVE-2026-63183","url":"https://nvd.nist.gov/vuln/detail/CVE-2026-63183","severity":null,"published_at":"2026-11-04T19:17:40+00:00","modified_at":"2026-11-04T19:17:40+00:00","first_seen_at":"2026-11-04T19:28:48+00:00","fetched_at":"2026-11-04T19:28:48+00:00","note":null}],"documents":[{"id":69747,"url":"https://github.com/omniauth/omniauth/commit/943b44faea242f063fa9230254fe7d60cfcc9c90","title":"Patch: github.com","kind":"other","source":"nvd","publisher":"vendor","text":null,"published_at":null,"relation":"fix","confidence":null,"note":"Patch: github.com"},{"id":69748,"url":"https://github.com/omniauth/omniauth/security/advisories/GHSA-m27g-v28p-f9fx","title":"Vendor advisory: github.com","kind":"vendor","source":"nvd","publisher":"vendor","text":null,"published_at":"2026-10-22T19:48:56+00:00","relation":"advisory","confidence":null,"note":"Vendor advisory: github.com"}],"notice":"Free to read at a human pace. An API with keys and an MCP server are in preparation; early access: hello@infrastack.ai"}