Mã khai thác (Proof-of-Concept – PoC) cùng các chi tiết kỹ thuật sâu đã được công bố cho CVE-2025-53770, một lỗ hổng thực thi mã từ xa (RCE) nghiêm trọng trên Microsoft SharePoint Server phiên bản on-premises. Việc công khai này làm tăng nguy cơ bị vũ khí hóa và khai thác hàng loạt vào các môi trường SharePoint chưa được vá lỗi.
Chi tiết về lỗ hổng CVE-2025-53770
CVE-2025-53770 là một lỗ hổng deserialization của dữ liệu không đáng tin cậy (deserialization of untrusted data). Lỗ hổng này xuất phát từ cách SharePoint xử lý các nguồn dữ liệu được chế tạo đặc biệt, cho phép kẻ tấn công chưa được xác thực thực thi mã tùy ý qua mạng.
Lỗi này ảnh hưởng đến các phiên bản SharePoint Server on-premises 2016, 2019 và Subscription Edition. Tuy nhiên, Microsoft 365 SharePoint Online không bị ảnh hưởng.
Sau các bản vá khẩn cấp ban đầu, Microsoft đã phát hành bản sửa lỗi thứ hai, giới thiệu một thành phần mới là TypeNameParserImpl. Thành phần này thay đổi cách phân tích tên loại (type name) cho các đối tượng DataSet, đặc biệt là để giải quyết các vấn đề liên quan đến xử lý kiểu dữ liệu chung (generic type handling).
Kỹ thuật khai thác qua XML Schema Processing
Nghiên cứu mới được công bố cho thấy kẻ tấn công vẫn có thể đạt được RCE bằng cách lợi dụng việc xử lý XML schema trong điều khiển ExcelDataSet, được sử dụng bởi các dịch vụ PerformancePoint BI. Cuộc tấn công tập trung vào dịch vụ web BIMonitoringAuthoringService tại điểm cuối /_vti_bin/PPS/PPSAuthoringService.asmx.
Dịch vụ này cung cấp phương thức TestConnection để xác thực kết nối nguồn dữ liệu. Khi một đối tượng DataSource với SourceName=”ExcelWorkbook” được truyền đến API này, SharePoint sử dụng XmlSerializer để deserialze trường dataSource.CustomData thành một phiên bản ExcelDataSet, sau đó truy cập vào ExcelDataSet.DataTable.
Các nhà nghiên cứu phát hiện ra rằng lỗ hổng này có thể vượt qua XmlValidator bằng cách khai thác cách các bản nhập XML schema (XML schema imports) được xử lý, cho phép các kiểu dữ liệu không an toàn vượt qua quá trình xác thực.
DataSetSurrogateSelector của Microsoft giới hạn đầu vào chỉ cho phép “XmlSchema” và “XmlDiffGram”, đồng thời chạy XmlValidator để đảm bảo chỉ các kiểu được phép sử dụng. Tuy nhiên, XmlValidator chỉ xem xét chuỗi XmlSchema chính.
Bằng cách nhúng các phần tử <xs:import> và <xs:include> tham chiếu đến một XSD bên ngoài qua mạng, kẻ tấn công buộc bộ tiền xử lý XmlSchema của .NET phải tải thêm schema từ một máy chủ HTTP do kẻ tấn công kiểm soát.
XmlValidator không kiểm tra schema được nhập này, do đó các định nghĩa kiểu độc hại chứa trong XSD bên ngoài sẽ không bao giờ bị chặn.
Cơ chế tấn công chi tiết
Mã PoC sử dụng lỗ hổng này để định nghĩa một chuỗi kiểu chung phức tạp (complex generic type chain) mang tên msdata:DataType, kết thúc bằng System.Web.UI.LosFormatter và System.Windows.Data.ObjectDataProvider. Đây là các gadget deserialization đã biết, có khả năng thực thi mã tùy ý khi nhận được các payload được kiểm soát.
Với việc vượt qua kiểm tra schema, kẻ tấn công chế tạo một payload XmlDiffGram phù hợp để điền vào một hàng chứa phần tử độc hại com:pwn. Diffgram này khởi tạo một đối tượng ExpandedWrapper, sau đó gọi LosFormatter.Deserialize trên dữ liệu do kẻ tấn công cung cấp, cuối cùng kích hoạt RCE.
Tại thời điểm chạy, luồng ngăn xếp cuộc gọi (call stack) đi qua BinarySerialization.Deserialize() và các quy trình hỗ trợ tái tạo đối tượng từ chuỗi base64 nén, trước khi đến ExcelDataSet.get_DataTable(), ExcelDataSourceProvider.SetDataSource(), DataSourceRegistry.GetDataSource(), và ServerHelper.TestDataSourceConnection() trong ngăn xếp PerformancePoint của SharePoint.
Triển khai thực tế và các biện pháp phòng ngừa
Mã PoC minh họa khả năng khai thác đầy đủ bằng cách sử dụng tài khoản thành viên trang có quyền hạn thấp. Kẻ tấn công đầu tiên tạo một danh sách SharePoint và một mục danh sách. Sau đó, họ khởi động một máy chủ HTTP lưu trữ tệp schema bên ngoài (ví dụ: common.xsd) mà máy chủ SharePoint có thể truy cập.
Họ xây dựng một yêu cầu SOAP tới PPSAuthoringService.asmx, gọi TestConnection, đặt SourceName=”ExcelWorkbook” và nhúng XML ExcelDataSet cùng diffgram độc hại vào trường CustomData.
Mục ItemUrl được trỏ đến mục danh sách bằng một mẫu URL kết thúc bằng ID và một hậu tố nhân tạo, chẳng hạn như /sites/zdi/Lists/test/1_.123, để đáp ứng các kiểm tra regex của dịch vụ.
Khi yêu cầu được xử lý, chuỗi khai thác hoàn tất và một tiến trình như win32calc.exe được khởi chạy trên máy chủ SharePoint, chứng minh khả năng thực thi mã từ xa đáng tin cậy.
Các nhà cung cấp bảo mật đã xác nhận việc khai thác CVE-2025-53770 đang diễn ra trong thực tế và mô tả các chiến dịch tấn công quy mô lớn nhằm vào SharePoint.
Việc có sẵn các chuỗi gadget chi tiết và kỹ thuật nhập schema này có khả năng đẩy nhanh các cuộc tấn công tương tự.
Khuyến nghị bảo mật
Các tổ chức đang vận hành SharePoint on-premises nên coi đây là tình huống khẩn cấp. Cần áp dụng các bản vá mới nhất của Microsoft cho CVE-2025-53770, bật tích hợp AMSI, xoay vòng giá trị ASP.NET MachineKey và thực hiện săn lùng mối đe dọa (threat hunting) để phát hiện các hoạt động bất thường trên PerformancePoint và ViewState trên các máy chủ bị lộ.
Để có thêm thông tin chi tiết về lỗ hổng này và các cảnh báo CVE liên quan, người dùng có thể tham khảo NVD (National Vulnerability Database) tại nvd.nist.gov.










