{"id":"CVE-2026-31812","aliases":["GHSA-6xvm-j4wr-6v98","RUSTSEC-2026-0037"],"url":"https://o3.security/vulnerability/CVE-2026-31812","summary":"Quinn affected by unauthenticated remote DoS via panic in QUIC transport parameter parsing","details":"### Summary\nA remote, unauthenticated attacker can trigger a denial of service in applications using vulnerable `quinn` versions by sending a crafted QUIC Initial packet containing malformed `quic_transport_parameters`. `In quinn-proto` parsing logic, attacker-controlled varints are decoded with `unwrap()`, so truncated encodings cause `Err(UnexpectedEnd)` and `panic`. This is reachable over the network with a single packet and no prior trust or authentication.\n\n### Details\nThe issue is panic-on-untrusted-input in QUIC transport parameter parsing.\nIn `quinn-proto` (observed in `quinn-proto 0.11.13`), parsing of some transport parameters uses a fallible varint decode followed by `unwrap()`. For malformed/truncated parameter values, decode returns `UnexpectedEnd`, and `unwrap()` panics.\n\n#### Observed output:\n```\nthread 'tokio-rt-worker' (2366474) panicked at quinn-proto/src/transport_parameters.rs:473:67:\ncalled `Result::unwrap()` on an `Err` value: UnexpectedEnd\n```\n\n### PoC\n#### Reproduces against the upstream Quinn server example.\n1. Start server:\n```\ncargo run --example server -- ./\n```\n2. Prepare PoC client environment:\n```\npython3 -m venv .venv\nsource .venv/bin/activate\npip install aioquic\n```\n3. Run PoC script [attack.py](https://github.com/user-attachments/files/25741713/attack.py) against server QUIC listener (default example target shown):\n```\npython attack.py\n```\n#### Observed output\n```\nthread 'tokio-rt-worker' (2366903) panicked at quinn-proto/src/transport_parameters.rs:473:67:\ncalled `Result::unwrap()` on an `Err` value: UnexpectedEnd\n```\n\n\n\n### Impact\nVulnerability type: Remote Denial of Service (panic/crash)\nAttack requirements:  Network reachability to UDP QUIC listener\nAuthentication/privileges: None\nWho is impacted: Any server/application using affected `quinn/quinn-proto` versions where this parse path is reachable; process-level impact depends on integration panic handling policy\n\n\nThis vulnerability was originally submitted by @revofusion to the Ethereum Foundation bug bounty program","published":"2026-03-10T21:04:36.812Z","modified":"2026-10-28T02:30:34.018727894Z","cvss":null,"epss":{"score":0.005,"percentile":0.40531,"asOf":"2026-08-24"},"cisaKev":null,"exploitsKnown":0,"affectedPackages":[{"ecosystem":"crates.io","name":"quinn-proto","fixedVersion":"0.11.14"}],"fix":{"url":"https://github.com/quinn-rs/quinn/pull/2559","label":"quinn-rs/quinn#2559"},"references":[{"type":"WEB","url":"https://security.access.redhat.com/data/csaf/v2/vex/2026/cve-2026-31812.json"},{"type":"ADVISORY","url":"https://access.redhat.com/errata/RHSA-2026:13545"},{"type":"ADVISORY","url":"https://access.redhat.com/errata/RHSA-2026:19712"},{"type":"ADVISORY","url":"https://access.redhat.com/errata/RHSA-2026:22862"},{"type":"ADVISORY","url":"https://access.redhat.com/errata/RHSA-2026:5459"},{"type":"ADVISORY","url":"https://access.redhat.com/security/cve/CVE-2026-31812"},{"type":"ADVISORY","url":"https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/31xxx/CVE-2026-31812.json"},{"type":"ADVISORY","url":"https://github.com/quinn-rs/quinn/security/advisories/GHSA-6xvm-j4wr-6v98"},{"type":"ADVISORY","url":"https://nvd.nist.gov/vuln/detail/CVE-2026-31812"},{"type":"REPORT","url":"https://bugzilla.redhat.com/show_bug.cgi?id=2446330"},{"type":"WEB","url":"https://github.com/quinn-rs/quinn/pull/2559"},{"type":"PACKAGE","url":"https://github.com/quinn-rs/quinn"},{"type":"WEB","url":"https://rustsec.org/advisories/RUSTSEC-2026-0037.html"}],"provenance":{"sources":["OSV.dev","FIRST.org (EPSS)"],"lastVerified":"2026-10-28T02:30:34.018727894Z"}}