mitre / mitre/secure-coding-case-studies

Proposal: Case Study for CVE-2025-55315 (HTTP Request Smuggling in ASP.NET Core Kestrel)

Open
#72 2 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
No language data
Stars
11
Forks
45
PR merge metrics
No merged PRs in 30d

Description

As part of our coursework in SWE-681 at George Mason University, we propose a secure coding case study on CVE-2025-55315, a request smuggling vulnerability in ASP.NET Core's Kestrel HTTP server.

The Coding Mistake

The vulnerability is rooted in a specific parser defect in Kestrel's chunked request handling logic. The parser accepted malformed chunk-extension line endings — specifically, it did not strictly enforce that chunk-size lines must terminate with CRLF as required by RFC 9112. This permissive parsing created inconsistent request interpretation between Kestrel and upstream components such as reverse proxies, enabling HTTP request smuggling attacks.
The fix is documented in public PR #64037 in the dotnet/aspnetcore repository. The changed files include Http1ChunkedEncodingMessageBody.cs, with new rejection logic, explicit bad-request error handling, and dedicated negative regression tests for malformed chunk extensions.

What the Case Study Will Cover

  • The specific lines in Kestrel's chunked request parser where the mistake lives
  • How the permissive CR/LF handling created a parser differential with upstream
    components
  • How an attacker crafts a malformed request to exploit the desynchronization
  • A before/after analysis of the patch in PR #64037
  • A detailed Prevention section covering:
    • Strict RFC-conformant parsing: reject bare LF or bare CR in chunk headers
    • Fail-closed parser design: malformed framing must return 400, not be
      normalized or forwarded
    • Mandatory negative regression tests for malformed line terminators and
      chunk extensions
    • Parser-differential testing at trust boundaries between proxies and
      origin servers
      We reviewed the current public MITRE case-study index and the full issues page (open and closed) and did not find CVE-2025-55315 listed. We plan to proceed with this case study unless there are any objections.

Contributors: Yukta Batra and Sehaj Gill
Course: SWE-681, George Mason University

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Read the CVE summary in this issue and public dotnet/aspnetcore PR #64037, especially Http1ChunkedEncodingMessageBody.cs and its negative regression tests. Produce a case study covering the parser mistake, request-smuggling impact, before/after patch analysis, and prevention guidance listed here. Done means the case study is ready for inclusion in the MITRE case-study index.

Written by the indexing model from the issue text.

Assessment

Tech stack
csharp
Domain
documentation, security
Issue type
Documentation
Difficulty
4/5
Estimated time
3-5 days
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
48/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.