Cảnh báo Lỗ hổng .NET Framework: Nguy cơ RCE nghiêm trọng

Cảnh báo Lỗ hổng .NET Framework: Nguy cơ RCE nghiêm trọng

Nghiên cứu mới về mã máy khách SOAP trong các phiên bản cũ của .NET Framework đã phát hiện ra một nhóm lỗ hổng .NET Framework được đặt tên là “SOAPwn.” Những lỗ hổng này có thể bị vũ khí hóa để thực thi mã từ xa (RCE) trên nhiều sản phẩm doanh nghiệp.

Các sản phẩm bị ảnh hưởng bao gồm Barracuda Service Center RMM, Ivanti Endpoint Manager, Umbraco CMS 8, Microsoft PowerShell, và SQL Server Integration Services.

Nội dung
Hiểu về SOAPwn: Cơ chế và Điểm yếu Cốt lõi
Các Kỹ thuật Khai thác và Ảnh hưởng Thực tế

Các Sản phẩm Doanh nghiệp Bị Ảnh hưởng
Phản ứng của Microsoft và Hướng dẫn Phòng thủ

Biện pháp Giảm thiểu Rủi ro
Tầm quan trọng và Các Khía cạnh Tương lai

Hiểu về SOAPwn: Cơ chế và Điểm yếu Cốt lõi

SOAPwn tập trung vào cách các proxy máy khách SOAP HTTP của .NET xử lý URL. Các lớp proxy bị ảnh hưởng bao gồm SoapHttpClientProtocol, DiscoveryClientProtocol, và HttpSimpleClientProtocol. Các lớp này đều kế thừa từ HttpWebClientProtocol.

Điểm mấu chốt nằm ở việc HttpWebClientProtocol bên trong sử dụng WebRequest.Create(uri) mà không áp đặt các lược đồ chỉ dành cho HTTP. Điều này tạo ra một khe hở bảo mật nghiêm trọng.

Nếu một kẻ tấn công có thể kiểm soát thuộc tính URL (trực tiếp hoặc thông qua các tệp WSDL được nhập), proxy có thể chuyển đổi trong suốt từ HTTP sang đường dẫn file:// hoặc UNC. Hành vi này biến một cuộc gọi SOAP mạng thành một thao tác ghi tệp cục bộ hoặc từ xa.

Các Kỹ thuật Khai thác và Ảnh hưởng Thực tế

Thiết kế bất thường này mở ra nhiều kỹ thuật tấn công nguyên thủy. Ở mức độ thấp, kẻ tấn công có thể thực hiện NTLM Relay bằng cách chuyển hướng lưu lượng SOAP đến các chia sẻ SMB.

Quan trọng hơn, khi kết hợp với WSDL và các đối số SOAP do kẻ tấn công kiểm soát, hành vi tương tự trở thành kỹ thuật ghi tệp tùy ý (arbitrary-file-write primitive). Đây là một lỗ hổng .NET Framework có thể dẫn đến hậu quả nghiêm trọng.

Trong các thiết bị thực tế, các nhà nghiên cứu đã sử dụng kỹ thuật này để chèn webshell dưới dạng tệp ASPX hoặc CSHTML, hoặc các tập lệnh PowerShell độc hại vào các đường dẫn có thể truy cập qua web. Điều này dẫn đến khả năng khai thác RCE toàn diện.

Các Sản phẩm Doanh nghiệp Bị Ảnh hưởng

Việc rà soát các giải pháp dựa trên .NET tiêu chuẩn đã phát hiện nhiều sản phẩm bị ảnh hưởng. Dưới đây là một số ví dụ điển hình:

  • Barracuda Service Center RMM: Sản phẩm này phơi bày một phương thức SOAP tiền xác thực cho phép nhập WSDL động. Nó tạo proxy thông qua ServiceDescriptionImporter, biên dịch nó và gọi các phương thức do kẻ tấn công lựa chọn với các đối số do kẻ tấn công cung cấp. Một yêu cầu SOAP được tạo thủ công là đủ để ghi webshell vào đĩa. Vấn đề này được theo dõi dưới dạng CVE-2025-34392 và đã được vá trong bản hotfix 2025.1.1. Đây là một cảnh báo CVE nghiêm trọng cần được chú ý.
    Thông tin chi tiết về CVE có thể tham khảo tại: NVD – CVE-2025-34392.
  • Ivanti Endpoint Manager: Sản phẩm này cũng có thể bị khai thác RCE tương tự thông qua các tải trọng CSHTML được lén lút đưa vào qua các không gian tên trong các tệp WSDL độc hại.
  • Umbraco 8 CMS: Người dùng được xác thực với quyền Forms có thể định nghĩa các nguồn dữ liệu dịch vụ web tùy ý trỏ đến WSDL của kẻ tấn công, tiếp cận cùng một đường dẫn proxy dễ bị tấn công.
  • Microsoft PowerShell và SSIS: Theo nghiên cứu của Watchtowr, các công cụ này cũng được chứng minh là dễ bị tổn thương khi tiêu thụ WSDL không đáng tin cậy. Nghiên cứu sâu hơn có thể tìm thấy tại: SOAPwn: Pwning .NET Framework Applications through HTTP Client Proxies and WSDL.

Phản ứng của Microsoft và Hướng dẫn Phòng thủ

Mặc dù các vấn đề phát sinh từ hành vi proxy cốt lõi của .NET, Microsoft đã nhiều lần gán trạng thái “DONOTFIX” cho những phát hiện này ở cấp độ framework. Họ coi đây là các vấn đề ở lớp ứng dụng và cập nhật tài liệu thay vì phát hành các thay đổi mã.

Đối với các nhà phòng thủ, hướng dẫn thực tế rất rõ ràng để giảm thiểu rủi ro từ lỗ hổng .NET Framework này:

Biện pháp Giảm thiểu Rủi ro

  • Xác định và Bảo mật ServiceDescriptionImporter: Cần xác định và khóa chặt mọi trường hợp sử dụng ServiceDescriptionImporter để xử lý các tệp WSDL do kẻ tấn công kiểm soát.

    Ví dụ, kiểm tra mã nguồn hoặc cấu hình ứng dụng để đảm bảo rằng ServiceDescriptionImporter chỉ được sử dụng với các nguồn WSDL đáng tin cậy và đã được xác thực nội bộ. Tránh việc tải WSDL từ các URL không rõ nguồn gốc hoặc do người dùng cung cấp trực tiếp.

  • Kiểm tra Sử dụng Thuộc tính URL: Thực hiện kiểm tra tất cả các trường hợp sử dụng SoapHttpClientProtocol, DiscoveryClientProtocol, HttpPostClientProtocol, và HttpGetClientProtocol nơi thuộc tính URL có thể bị ảnh hưởng bởi dữ liệu đầu vào của người dùng. Đảm bảo rằng mọi URL được cung cấp bởi người dùng đều được xác thực và làm sạch nghiêm ngặt để ngăn chặn các đường dẫn file:// hoặc UNC độc hại.

    Ví dụ về cách kiểm tra:

    // Pseudocode for auditing URL property usage
    public void MakeSoapCall(string userControlledUrl)
    {
        // POTENTIALLY VULNERABLE CODE - Requires careful validation
        SoapHttpClientProtocol client = new SoapHttpClientProtocol();
        client.Url = userControlledUrl; // User input directly influences URL
        // ... invoke client method
    
        // RECOMMENDED SECURE APPROACH:
        // 1. Whitelist allowed URL schemes (e.g., http, https only)
        // 2. Validate URL format rigorously
        // 3. Prevent file:// or UNC paths
        if (!IsValidAndSafeUrl(userControlledUrl))
        {
            throw new ArgumentException("Invalid or unsafe URL provided.");
        }
        // ... proceed with validated URL
    }
    
    bool IsValidAndSafeUrl(string url)
    {
        Uri uriResult;
        bool isValid = Uri.TryCreate(url, UriKind.Absolute, out uriResult) &&
                       (uriResult.Scheme == Uri.UriSchemeHttp || uriResult.Scheme == Uri.UriSchemeHttps);
        return isValid;
    }
    

Tầm quan trọng và Các Khía cạnh Tương lai

Với tuổi đời và sự phổ biến của .NET Framework trong các môi trường doanh nghiệp, những lỗi theo kiểu SOAP tương tự rất có thể sẽ xuất hiện trong nhiều giải pháp nội bộ và của các nhà cung cấp khác. Đây là một vấn đề tiếp tục gây ra rủi ro bảo mật đáng kể.

Các nhà phát triển và chuyên gia bảo mật cần đặc biệt cảnh giác với các cách mà mã kế thừa xử lý đầu vào từ xa, đặc biệt là khi liên quan đến các giao thức cũ như SOAP. Việc hiểu rõ cơ chế khai thác RCE như SOAPwn là cực kỳ quan trọng để bảo vệ các hệ thống.