Thursday , 4 June 2026

REQUEST SMUGGLING & CVE-2025-55315

TÓM TẮT LỖ HỔNG .NET TỒI TỆ NHẤT REQUEST SMUGGLING VÀ CVE-2025-55315

Bài viết này đi sâu vào phân tích một trong những lỗ hổng bảo mật nghiêm trọng nhất từng được phát hiện trong nền tảng .NET được định danh là CVE-2025-55315. Với điểm CVSS là 9.9 Mức độ Nghiêm trọng – Critical lỗ hổng này là một cảnh báo khẩn cấp đối với tất cả các nhà phát triển và quản trị hệ thống sử dụng ASP.NET Core. Lỗ hổng nằm ở lớp giao thức web cụ thể là trong máy chủ web Kestrel của ASP.NET Core và cho phép thực hiện một kỹ thuật tấn công tinh vi gọi là HTTP Request Smuggling (HRS).

CVE-2025-55315 POC test

HTTP Request Smuggling là gì

Request Smuggling là một kỹ thuật khai thác sự không nhất quán (inconsistent interpretation) trong cách các thành phần khác nhau của hệ thống xử lý một yêu cầu HTTP. Trong môi trường hiện đại các yêu cầu thường đi qua các thành phần trung gian như proxy ngược reverse proxies hoặc bộ cân bằng tải load balancers trước khi đến máy chủ backend Kestrel.

Vấn đề nảy sinh khi các thành phần này không đồng nhất trong việc xác định ranh giới boundaries của một yêu cầu HTTP. Kẻ tấn công lợi dụng điều này bằng cách tạo ra một yêu cầu chứa hai thông số báo độ dài khác nhau thường là sử dụng xung đột giữa header Content-LengthTransfer-Encoding. Một thành phần (ví dụ Proxy) có thể hiểu yêu cầu dừng ở một vị trí trong khi thành phần tiếp theo (Kestrel) lại hiểu nó dừng ở một vị trí khác. Sự khác biệt này cho phép kẻ tấn công “buôn lậu” smuggle một yêu cầu HTTP thứ hai ẩn bên trong dữ liệu của yêu cầu đầu tiên.

Chi tiết về lỗ hổng CVE-2025-55315

Lỗ hổng CVE-2025-55315 nằm trong cách Kestrel web server của ASP.NET Core xử lý các yêu cầu HTTP/1.1. Cụ thể Kestrel đã thất bại trong việc xác thực ranh giới yêu cầu một cách thích hợp dưới một số điều kiện nhất định. Các phân tích kỹ thuật cho thấy vấn đề này liên quan đến việc Kestrel không xử lý đúng các malformed chunk extensions phần mở rộng khối bị lỗi khi header Transfer-Encoding: chunked được sử dụng.

Khi bị khai thác máy chủ Kestrel sẽ kết thúc việc parse yêu cầu đầu tiên sớm hơn dự kiến để lại phần còn lại của dữ liệu chính là yêu cầu thứ hai đã bị buôn lậu trong bộ đệm kết nối. Yêu cầu thứ hai này sau đó sẽ được xử lý như một yêu cầu mới hoàn toàn hợp lệ nhưng lại bỏ qua các cơ chế bảo mật hoặc định tuyến thông thường vì nó được coi là phần tiếp theo của một kết nối đang mở.

Tác động và Rủi ro Tiềm tàng

Lỗ hổng Request Smuggling này được coi là cực kỳ nghiêm trọng vì nó nhắm vào lớp giao thức cốt lõi. Do đó nó ảnh hưởng đến một phạm vi ứng dụng rộng lớn được xây dựng trên ASP.NET Core không phụ thuộc vào logic nghiệp vụ cụ thể của ứng dụng.

Nếu bị khai thác thành công kẻ tấn công có thể đạt được nhiều mục tiêu nguy hiểm:

  1. Tăng Đặc quyền Elevation of Privilege – EoP: Buôn lậu một yêu cầu thay đổi tài khoản hoặc đăng nhập khiến máy chủ xử lý nó như thể nó đến từ một người dùng có đặc quyền.
  2. Vượt qua Bảo vệ Bypass Security Features: Vượt qua các biện pháp bảo vệ quan trọng như:
    • CSRF Cross-Site Request Forgery: Bỏ qua việc kiểm tra token CSRF.
    • Xác thực và Ủy quyền Authentication and Authorization: Thực hiện các hành động bị cấm mà không cần thông tin đăng nhập hợp lệ.
  3. Giả mạo Yêu cầu Phía Máy chủ SSRF: Buôn lậu một yêu cầu nhắm vào các API hoặc tài nguyên nội bộ không thể truy cập từ bên ngoài cho phép kẻ tấn công truy cập vào dữ liệu nhạy cảm hoặc lập bản đồ mạng nội bộ.
  4. Đánh cắp Thông tin/Thay đổi Dữ liệu: Xem thông tin nhạy cảm của người dùng khác hoặc sửa đổi nội dung tệp trên máy chủ.
  5. Tấn công Từ chối Dịch vụ DoS: Gây ra sự cố hoặc gián đoạn dịch vụ.

Các phiên bản bị ảnh hưởng và Biện pháp Khắc phục

Microsoft đã phát hành bản cập nhật bảo mật khẩn cấp để vá lỗ hổng này. Các phiên bản ASP.NET Core sau đây được xác nhận là bị ảnh hưởng:

  • ASP.NET Core 10.0
  • ASP.NET Core 9.0 (phiên bản 9.0.9 trở xuống)
  • ASP.NET Core 8.0 (phiên bản 8.0.20 trở xuống)
  • ASP.NET Core 2.x (sử dụng gói Microsoft.AspNetCore.Server.Kestrel.Core phiên bản 2.3.0 trở xuống)

Hành động khẩn cấp cần thiết:

Tất cả người dùng và nhà phát triển đang sử dụng các phiên bản bị ảnh hưởng phải cập nhật ngay lập tức lên các phiên bản đã được vá lỗi. Đối với .NET 8.0 và .NET 9.0 Microsoft khuyến nghị cài đặt các Runtime/SDK mới nhất. Nếu ứng dụng của bạn tham chiếu trực tiếp đến các gói bị ảnh hưởng bạn phải cập nhật tham chiếu gói đó lên phiên bản đã được vá lỗi. Việc cập nhật kịp thời là yếu tố then chốt để bảo vệ ứng dụng khỏi rủi ro tấn công diện rộng này.
* tungle.blog –  bài viết được hoàn thiện với sự hỗ trợ của AI
Links tham khảo:

https://github.com/sirredbeard/CVE-2025-55315-repro (Test phiên bản .net xem có bị dính lỗi không)

https://cwe.mitre.org/data/definitions/444.html

https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2025-55315

https://www.cve.org/CVERecord?id=CVE-2025-55315

 

About Tung Le

Cài win 10000 lần

Leave a Reply