{"id":"CVE-2026-114456","kind":"vulnerability","aliases":["CVE-2026-114456"],"related":[],"title":"Snowflake client drivers: SSO login callback can be forged to break sign-in","description":"Multiple Snowflake client drivers implementing the `authenticator=externalbrowser` single sign-on flow could have allowed an attacker to interfere with a user's login attempt through weaknesses in the local loopback callback listener used to receive the identity provider's response. The listener reflected an arbitrary request's Origin header into its CORS response headers and accepted the first token-bearing request it received during the login window without verifying a CSRF state value bound to that specific login attempt. An attacker able to reach the listener during an active login might have leveraged this to submit a forged callback response, causing the authentication attempt to fail. The fix is available in Snowflake Connector for Python 4.8.0, Snowflake Go Driver v2.3.0, Snowflake JDBC Driver 4.4.0 (including the snowflake-jdbc-fips and snowflake-jdbc-thin artifacts), Snowflake Node.js Driver 3.4.0, Snowflake Connector for .NET 6.3.0, Snowflake ODBC Driver 4.0.0, Snowflake PHP PDO Driver 4.3.0, and libsnowflakeclient 2.11.1. Go v1 users must migrate to the latest major version of the module. Users must manually upgrade.","summary":"Several Snowflake client drivers using the externalbrowser single sign-on flow run a local loopback listener that accepts the first token-bearing request without checking a per-login CSRF state value. An attacker who can reach that listener during an active login can submit a forged callback and make the authentication attempt fail.","severity":"medium","cvss":6.5,"epss":null,"exploited":false,"exploited_at":null,"products":[],"ecosystems":[],"tags":["dotnet","go","jdbc","node.js","odbc","package","php","python","snowflake"],"not_affected_if":["headless-service-accounts","no-externalbrowser-auth"],"how_to_check":"- Look for `authenticator=externalbrowser` in connection strings or driver config.\n- Check driver versions: `pip show snowflake-connector-python`, `npm ls snowflake-sdk`, the JDBC `snowflake-jdbc` artifact version, and `libsnowflakeclient` version.","fix":"- Snowflake Connector for Python `4.8.0`\n- Snowflake Go Driver `v2.3.0` (Go v1 users must migrate to the latest major version of the module)\n- Snowflake JDBC Driver `4.4.0` (including snowflake-jdbc-fips and snowflake-jdbc-thin)\n- Snowflake Node.js Driver `3.4.0`\n- Snowflake Connector for .NET `6.3.0`\n- Snowflake ODBC Driver `4.0.0`\n- Snowflake PHP PDO Driver `4.3.0`\n- libsnowflakeclient `2.11.1`","status":"open","published_at":"2026-11-04T12:17:06+00:00","first_seen_at":"2026-11-04T12:26:52+00:00","triaged_at":"2026-11-04T12:27:40+00:00","updated_at":"2026-11-04T12:27:40+00:00","category":"package","confidence":0.8,"triage":{"at":"2026-11-04T12:27:40Z","model":"claude-haiku-5-5","output":{"fix":"- Snowflake Connector for Python `4.8.0`\n- Snowflake Go Driver `v2.3.0` (Go v1 users must migrate to the latest major version of the module)\n- Snowflake JDBC Driver `4.4.0` (including snowflake-jdbc-fips and snowflake-jdbc-thin)\n- Snowflake Node.js Driver `3.4.0`\n- Snowflake Connector for .NET `6.3.0`\n- Snowflake ODBC Driver `4.0.0`\n- Snowflake PHP PDO Driver `4.3.0`\n- libsnowflakeclient `2.11.1`","reach":"local","title":"Snowflake client drivers: SSO login callback can be forged to break sign-in","impact":"low","summary":"Several Snowflake client drivers using the externalbrowser single sign-on flow run a local loopback listener that accepts the first token-bearing request without checking a per-login CSRF state value. An attacker who can reach that listener during an active login can submit a forged callback and make the authentication attempt fail.","audience":"developers","category":"package","nicknames":[],"who_cares":["snowflake","python","node.js","go","jdbc","dotnet","odbc","php"],"confidence":0.8,"fix_status":"available","needs_auth":"unknown","worst_case":"Attacker forges a login callback, causing sign-in to fail","analyst_note":"","how_to_check":"- Look for `authenticator=externalbrowser` in connection strings or driver config.\n- Check driver versions: `pip show snowflake-connector-python`, `npm ls snowflake-sdk`, the JDBC `snowflake-jdbc` artifact version, and `libsnowflakeclient` version.","plain_action":"","needs_analyst":false,"not_affected_if":["no-externalbrowser-auth","headless-service-accounts"],"who_is_affected":"Only systems that use a Snowflake client driver with the externalbrowser SSO login flow are exposed, and the attacker must be able to reach the local loopback listener during a login window. Services using key-pair, password, or OAuth authentication without externalbrowser are not described as affected by the sources.","user_interaction":"yes","needs_special_setup":"yes","severity_if_unknown":"medium"},"cost_usd":0.00084,"input_tokens":4468,"output_tokens":786,"severity_before":"medium"},"analyst_status":null,"analyst_note":null,"search":"'-114456':16A,19A '-2026':15A,18A '2.11.1':244C '3.4.0':227C '4.0.0':236C '4.3.0':241C '4.4.0':211C '4.8.0':203C '6.3.0':232C 'abl':169C 'accept':47B,142C 'activ':72B,176C 'allow':100C 'arbitrari':131C 'artifact':223C 'attack':64B,102C,168C 'attempt':83B,110C,166C,191C 'authent':82B,91C,190C 'avail':197C 'bear':52B,147C 'bound':161C 'break':11A 'callback':6A,78B,117C,186C 'caus':188C 'check':55B 'client':2A,31B,87C 'connector':200C,229C 'cor':138C 'could':98C 'csrf':60B,158C 'cve':14A,17A 'dotnet':20B 'driver':3A,32B,88C,206C,210C,226C,235C,240C 'externalbrows':35B,92C 'fail':84B,193C 'fip':217C 'first':49B,144C 'fix':195C 'flow':40B,97C 'forg':9A,77B,185C 'go':21B,205C,245C 'header':135C,140C 'ident':123C 'implement':89C 'includ':212C 'interfer':104C 'jdbc':22B,209C,216C,221C 'latest':252C 'leverag':180C 'libsnowflakecli':243C 'listen':45B,69B,118C,128C,173C 'local':43B,115C 'login':5A,59B,73B,109C,153C,165C,177C 'loopback':44B,116C 'major':253C 'make':80B 'manual':260C 'might':178C 'migrat':249C 'modul':257C 'multipl':85C 'must':248C,259C 'net':231C 'node.js':23B,225C 'odbc':24B,234C 'origin':134C 'packag':25B 'pdo':239C 'per':58B 'per-login':57B 'php':26B,238C 'provid':124C 'python':27B,202C 'reach':67B,171C 'receiv':121C,150C 'reflect':129C 'request':53B,132C,148C 'respons':126C,139C,187C 'run':41B 'sever':29B 'sign':13A,38B,95C 'sign-in':12A 'sign-on':37B,94C 'singl':36B,93C 'snowflak':1A,28B,30B,86C,199C,204C,208C,215C,220C,224C,228C,233C,237C 'snowflake-jdbc-fip':214C 'snowflake-jdbc-thin':219C 'specif':164C 'sso':4A 'state':61B,159C 'submit':75B,183C 'thin':222C 'token':51B,146C 'token-bear':50B,145C 'upgrad':261C 'use':33B,119C 'user':107C,247C,258C 'v1':246C 'v2.3.0':207C 'valu':62B,160C 'verifi':156C 'version':254C 'weak':112C 'window':154C 'without':54B,155C","nicknames":[],"mitigations":[],"who_affected":"Only systems that use a Snowflake client driver with the externalbrowser SSO login flow are exposed, and the attacker must be able to reach the local loopback listener during a login window. Services using key-pair, password, or OAuth authentication without externalbrowser are not described as affected by the sources.","tier":"C","verified":{},"analyst_revisit_at":null,"fix_status":"available","audience":"developers","plain_action":null,"pkeys":[],"ptokens":[],"labels":["dotnet","go","jdbc","medium","nodejs","odbc","package","php","python","snowflake"],"campaign_type":null,"first_public_at":"2026-11-04T12:17:06+00:00","kev":null,"cvss_vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:N/I:N/A:H","cvss_by":"412d305a-227d-44f9-a262-a31ba44f2aea","poc_count":0,"sources":[{"source":"nvd","external_id":"CVE-2026-114456","url":"https://nvd.nist.gov/vuln/detail/CVE-2026-114456","severity":null,"published_at":"2026-11-04T12:17:06+00:00","modified_at":"2026-11-04T12:17:06+00:00","first_seen_at":"2026-11-04T12:26:52+00:00","fetched_at":"2026-11-04T12:26:52+00:00","note":null}],"documents":[{"id":66750,"url":"https://github.com/snowflakedb/libsnowflakeclient/releases/tag/v2.11.1","title":"Release notes: github.com","kind":"release","source":"nvd","publisher":"vendor","text":null,"published_at":null,"relation":"fix","confidence":null,"note":"Release notes: github.com"},{"id":66751,"url":"https://github.com/snowflakedb/snowflake-connector-python/releases/tag/v4.8.0","title":"Release notes: github.com","kind":"release","source":"nvd","publisher":"vendor","text":null,"published_at":null,"relation":"fix","confidence":null,"note":"Release notes: 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"}