Skip to main content

Dio HTTP/2 Adapter CVE-2026-103030

| EUVDEUVD-2026-98921 HIGH
Information Exposure (CWE-200)
2026-10-13 GitHub_M GHSA-cr65-55v9-xhvv
7.5
CVSS 3.1 · Vendor: GitHub_M
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    App sends authenticated HTTP/2 request
  2. Delivery
    Server returns cross-origin Location redirect
  3. Exploit
    Adapter copies original headers unchanged
  4. Execution
    Credentials replayed to attacker origin
  5. Impact
    Attacker harvests Authorization/Cookie tokens

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A01:2025 - Broken Access Control
ASVS 5.0
V14 - Data Protection Data exposure prevention
MITRE ATT&CK

2 techniques across 2 tactics: Collection, Discovery

The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up.

Exploitation Conditions

Exploitation requires that the application (a) uses dio_http2_adapter (Http2Adapter) - an optional HTTP/2 plugin, not Dio's default adapter - on a vulnerable version between 1.0.0 and 2.8.0, (b) attaches sensitive headers (Authorization, Cookie, Cookie2, Proxy-Authorization, Proxy-Authenticate, or WWW-Authenticate) to its requests, and (c) follows redirects, which is enabled by default. The attacker must control or compromise the contacted server, or sit on-path, in order to return a cross-origin (different scheme, host, or port) Location redirect. Limiting factors: no effect on apps that do not send credentialed requests through the HTTP/2 adapter, do not follow redirects, or whose servers never issue cross-origin redirects; same-origin redirects are unaffected. No special non-default toggle is needed beyond using the plugin with authenticated requests.

Impact

Signals are moderate and mutually consistent, pointing to a credible but conditional risk rather than a mass-exploitation emergency. The NVD CVSS vector (CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N, 7.5) scores a network, low-complexity, unauthenticated, high-confidentiality issue with no integrity or availability impact - accurate for a credential-leak flaw. No EPSS score was provided in the input, so exploitation probability cannot be quantified here. The vulnerability is NOT on CISA KEV and there is no public exploit identified at time of analysis; the only exploitation evidence is the vendor's own regression test suite in the fix commit, which demonstrates the leak but is not a weaponized POC. No SSVC decision data was supplied. The key tension is the threat model: this is a client-side library flaw, so the 'attacker' must be the remote server the Flutter/Dart application already contacts (or a MITM able to inject a Location header), and it only matters when the app sends Authorization/Cookie/Proxy-Authorization headers via the HTTP/2 adapter and follows a cross-origin redirect. That makes it a targeted credential-interception issue dependent on application behavior, not a wormable remote code execution. Net: real and worth patching for anyone using dio_http2_adapter with authenticated requests, but driven by deployment specifics rather than broad opportunistic scanning.

Exploit ScenarioDerived

A Flutter app uses dio_http2_adapter to call an API over HTTP/2 with an Authorization bearer token. A malicious or compromised server (or an on-path attacker injecting a 3xx response) returns a cross-origin Location redirect to attacker.example; the adapter follows it and replays the original Authorization, Cookie, and Proxy-Authorization headers to the attacker's origin, disclosing the credentials. No public exploit is identified, though the vendor's fix commit includes tests that reproduce the cross-origin header leak.

This Week Schedule remediation this week. Why: HIGH severity (CVSS 7.0-8.9).
Patch available 0.4% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – Oct 13, 2026

Cross-origin redirect handling in the dio_http2_adapter plugin for Dart/Flutter copies sensitive request headers to a different origin, leaking Authorization, Cookie, Cookie2, Proxy-Authorization, Proxy-Authenticate, and WWW-Authenticate values to any server an application is redirected to. All versions from 1.0.0 up to (but excluding) 2.8.0 are affected, and only applications that use Http2Adapter (an optional HTTP/2 plugin, not Dio's default adapter) while sending credentialed requests and following redirects - which is on by default - are exposed; the attacker must control or compromise the contacted server or sit on-path to return the cross-origin Location header. The issue is unauthenticated from the attacker's perspective (CVSS:3.1/AV:N/AC:L/PR:N/UI:N, 7.5, confidentiality-only impact) and there is no public exploit identified at time of analysis and no CISA KEV listing; the vendor-released patch is http2_adapter 2.8.0.

RemediationAI

Vendor-released patch: upgrade the http2_adapter plugin to version 2.8.0 (or later), which adds a scheme/host/port origin comparison in Http2Adapter._fetch and strips sensitive headers on cross-origin redirects; update the dependency in pubspec.yaml and verify the resolved version in pubspec.lock, since the plugin versions independently from dio core. The fix is captured in commit 9d7ac913340084f3b4987b121e076f28d637a81e and released at https://github.com/cfug/dio/releases/tag/http2_adapter_v2.8.0, with details in advisory GHSA-cr65-55v9-xhvv. If an immediate upgrade is not possible, set followRedirects to false on requests that carry credentials and handle 3xx responses manually so you can re-issue the request with a clean header set - the trade-off is added application logic and the loss of automatic redirect handling, which can break flows that depend on transparent redirects. Disabling Http2Adapter in favour of Dio's default adapter removes the flaw but forfeits HTTP/2 performance benefits such as multiplexing. Scoping credentials narrowly (per-request headers rather than a global interceptor, and short-lived tokens) limits the value of any leaked value but does not close the leak itself, and it should be treated as a defence-in-depth measure rather than a substitute for the upgrade.

Affected VersionsENISA

dio 1.0.0, < 2.8.0

Affected Packages

euvd dio fix: 2.8.0

Source: OSV (Open Source Vulnerabilities)

Affects your stack

Affects 1 package in euvd

Checking this CVE against your own stacks and servers is part of the Basic plan and up.

Technical ContextAI · show details

dio_http2_adapter is a plugin that adds an HTTP/2 transport to Dio, the widely used Dart and Flutter HTTP client. In the affected code path, Http2Adapter._fetch resolves a redirect Location into an absolute URI and rebuilds the outgoing request via RequestOptions.copyWith, which retains the full header map without ever comparing the source and destination origins. Because RequestOptions carries the caller's headers wholesale, credentials attached for the original host are replayed verbatim to whatever host, scheme, or port the redirect names - root cause class CWE-200 (Exposure of Sensitive Information to an Unauthorized Actor). The upstream fix introduces an origin check (_isSameOrigin comparing scheme, host, and port) and, when the redirect target is cross-origin, removes a fixed denylist of sensitive headers (authorization, www-authenticate, cookie, cookie2, proxy-authorization, proxy-authenticate) from the redirected options before dispatch; the accompanying tests exercise differing host, scheme, port, subdomain, network-path ('//host/path') redirects as well as same-origin cases that must keep their headers. It is worth noting this only affects the HTTP/2 adapter; Dio's default IOHttpClientAdapter performs its own header stripping and is not impacted by this specific flaw.

Know when Dio gets its next vulnerability

  • Watch products and get an email when something new is published
  • Check this CVE against your own stack and servers
  • Exploit and PoC references, threat intelligence from 22 sources

No credit card · 7-day full trial

Severity by source

Vendor (GitHub_M) PRIMARY 7.5 HIGH
AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N
vuln.today AI 7.5 HIGH

Network-reachable leak needing no privileges or user interaction with redirect-following on by default (AV:N/AC:L/PR:N/UI:N); only credential confidentiality is lost (C:H, I:N, A:N).

3.1 AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N
4.0 AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:N/VA:N/SC:N/SI:N/SA:N

Primary rating from Vendor (GitHub_M).

CVSS VectorVendor: GitHub_M

Attack Vector
Network
Attack Complexity
Low
Privileges Required
None
User Interaction
None
Scope
Unchanged
Confidentiality
High
Integrity
None
Availability
None

Lifecycle Timeline

2
Patch available
Oct 13, 2026 - 18:19 EUVD
CVE Published
Oct 13, 2026 - 16:31 cve.org
HIGH 7.5

DescriptionCVE.org

Dio is a powerful HTTP client for Dart and Flutter. From 1.0.0 until 2.8.0, dio_http2_adapter follows redirects in Http2Adapter._fetch by copying the original RequestOptions.headers into the redirected HTTP/2 request without comparing the source and destination origins. A server contacted by an application can return a cross-origin Location redirect to a different-origin destination, which then receives preserved Authorization, Cookie, and Proxy-Authorization headers because RequestOptions.copyWith retains the full header map. The issue applies when applications use Http2Adapter for authenticated requests, and redirect following is enabled by default. This issue is fixed in version 2.8.0.

Technical POC Analysis

CWE-200 (Exposure of Sensitive Information to an Unauthorized Actor): a credential-forwarding flaw on cross-origin redirect, i.e.

Full technical POC analysis - root cause, step-by-step exploitation and patch breakdown - is part of the Pro and Business plans.

Executive ViewAI

Why It Matters

Applications built with Flutter/Dart that use the optional dio_http2_adapter HTTP/2 plugin (versions 1.0.0 through 2.7.x) can silently forward authentication tokens and session cookies to any third-party server an application is redirected to, because cross-origin redirects copy sensitive headers instead of stripping them. Any credentialed request that follows a redirect is exposed, meaning customer sessions, API keys, and backend credentials handled by our mobile or web clients could be captured by an attacker-controlled or compromised endpoint. Leadership should care because this is a client-side credential disclosure path affecting our own users' sessions and our service-to-service credentials, with remediation cost concentrated in a library upgrade and client re-release.

Business Impact: High
Compensating Controls

Apply vendor patch.

Threat Intelligence Overview

EPSS Score
0.4%
Top 72% exploitable
Prevalence
Medium
optional HTTP/2 adapter plugin for a popular Dart/Flutter client, used by a subset
Threat Intel
1
1 sources
Data Quality
6 sources
Confidence: High
EUVD NVD CVE.org EPSS Vulnrichment GHSA GitHub

How this decision was reached

The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.

SignalValue
Severity HIGH
CISA KEV No
Public POC No
EPSS 0.4%
Patch available Yes
Active threat No
Deciding rule
HIGH severity (CVSS 7.0-8.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision
Scheduled
Exploitation
Poc
System Exposure· derived
Open
Automatable
Yes
Human Impact
High
Technical Impact
Partial

Priority Score

38
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +38
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

Information disclosure occurs when an application unintentionally exposes sensitive data that aids attackers in reconnaissance or directly compromises security.

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy