Vào tháng 1 năm 2026, OPSWAT đã công bố bài phân tích về CVE-2025-66516, một lỗ hổng nghiêm trọng trong Apache Tika được kích hoạt bởi một tệp PDF độc hại khi đến trình phân tích cú pháp phía máy chủ. Giải pháp khắc phục rất đơn giản: làm sạch tệp trước khi nó đến trình phân tích cú pháp, và trình phân tích cú pháp sẽ không bao giờ tiếp xúc với phần tải độc hại. Giải pháp này hiệu quả vì chỉ có một trình phân tích cú pháp, một định dạng tệp và một thư viện đã biết.
Vậy nếu tệp XML không phải là tệp PDF, mà là một tệp cấu hình được nhập vào nền tảng SSO (Đăng nhập một lần), một định nghĩa quy trình công việc được gửi đến công cụ tự động hóa tài chính, hoặc một gói dữ liệu y tế được xử lý bởi hệ thống tích hợp của bệnh viện thì sao? Những tệp này được trao đổi hàng ngày giữa các tổ chức, nhà thầu, cơ quan quản lý và đối tác, được chuyển đến thông qua các hệ thống truyền tệp được quản lý và các cổng thông tin đối tác dưới dạng dữ liệu đầu vào đáng tin cậy cho hoạt động kinh doanh. Hầu hết các giải pháp làm sạch dữ liệu đều không bao giờ kiểm tra chúng.
XML là ngôn ngữ của ngành công nghiệp, và đó chính là vấn đề
Các cuộc tấn công XXE (XML External Entity) qua định dạng PDF và SVG đều có cùng một quy trình: người dùng tải lên một tệp tin; thư viện phía máy chủ phân tích tệp tin đó; trình phân tích thực thi mã độc. Điểm xâm nhập là rõ ràng.
XML trong ngành lại khác. Đó là các giao dịch giữa doanh nghiệp với doanh nghiệp, việc nhập cấu hình và các gói dữ liệu truyền giữa các hệ thống từ các đối tác, cơ quan quản lý, nhà thầu và nhà cung cấp đã được xác định. Chính sự hợp pháp bề ngoài đó là lý do khiến chúng tránh được sự kiểm tra nghiêm ngặt thường áp dụng đối với các tệp tải lên trên web.
XML đã trở thành một phần không thể thiếu trong cách thức hoạt động của bao nhiêu ngành công nghiệp:
- Dịch vụ tài chính: Tin nhắn SWIFT, lệnh FIX (Financial Information eXchange) và các giao dịch thanh toán theo tiêu chuẩn ISO 20022 đều được thực hiện dưới dạng XML.
- Chăm sóc sức khỏe: HL7 (Health Level Seven) và FHIR (Fast Healthcare Interoperability Resources), các giao thức trao đổi dữ liệu y tế tiêu chuẩn, đều dựa trên XML. Một thực thể độc hại trong phần dữ liệu FHIR có thể lọt qua bất kỳ hệ thống nào chỉ kiểm tra cấu trúc mà không kiểm tra DOCTYPE.
- CNTT doanh nghiệp: Các nền tảng quản lý danh tính và đăng nhập một lần (SSO) nhập các tệp cấu hình XML trong quá trình tích hợp, di chuyển và triển khai. Chỉ cần một lần nhập là có thể áp dụng cho mọi ứng dụng mà nền tảng này thực hiện xác thực.
- OT: Các hệ thống SCADA và hệ thống quản lý năng lượng trao đổi dữ liệu dưới các định dạng XML được quy định bởi các tiêu chuẩn IEC 61968 và 61970, thường diễn ra qua ranh giới giữa IT và OT, nơi các biện pháp kiểm soát còn hạn chế.
Trong mọi trường hợp, phần tải trọng không phải là một tập lệnh hay một macro, mà tồn tại ở lớp nội dung của XML: một khai báo DOCTYPE tham chiếu đến một thực thể bên ngoài, thực thể này lại trỏ đến một đường dẫn tệp cục bộ hoặc một điểm cuối nội bộ. Khi trình phân tích cú pháp xử lý tệp, nó sẽ truy xuất nội dung đó.
Mặc dù về mặt cấu trúc, tệp này đã hợp lệ khi kiểm tra lược đồ, nhưng nội dung của nó cần được xử lý kỹ lưỡng hơn, ví dụ như những gì được khai báo trong DOCTYPE hoặc thực thể đó trỏ đến đâu.
Đây không phải là một vấn đề tồn đọng
Lỗ hổng XXE được mô tả lần đầu vào năm 2003 và được đưa vào danh sách OWASP Top 10 vào năm 2017, điều này đôi khi khiến các nhóm coi vấn đề này đã được giải quyết. Tuy nhiên, các ghi chép từ năm 2025 và 2026 lại cho thấy điều ngược lại, và những trường hợp có ý nghĩa đối với lỗ hổng “ Bảo mật tập tin ” chính là những trường hợp mà payload được truyền đến dưới dạng một tệp tin.
- lxml (CVE-2026-41066): Cấu hình trình phân tích cú pháp mặc định trong một thư viện XML Python được sử dụng rộng rãi đã cho phép XML không đáng tin cậy truy cập các tệp cục bộ. lxml chính là thư viện mà svglib sử dụng để phân tích cú pháp các tệp SVG (Scalable Vector Graphics); lỗ hổng “ OPSWAT ” lây lan qua tệp đã được svglib minh họa trong bài đăng trên blog về lỗ hổng SVG XXE năm 2024. Việc làm sạch tệp sẽ loại bỏ thực thể đó trước khi trình phân tích cú pháp phát hiện ra nó.
- Atlassian Crowd (CVE-2026-21569, CVSS 7.9 – Mức độ cao): một nền tảng SSO và quản lý danh tính. Một gói dữ liệu XML được thiết kế đặc biệt có thể cho phép kẻ tấn công truy cập tệp tin cục bộ hoặc từ xa; và mức đánh giá “CVSS Scope:Changed” có nghĩa là nếu khai thác thành công, lỗ hổng này sẽ ảnh hưởng đến mọi ứng dụng mà Crowd thực hiện xác thực. Gói dữ liệu XML này được gửi đến dưới dạng tệp cấu hình hoặc tệp nhập tích hợp từ một đối tác hoặc máy trạm của quản trị viên.
- IBM Business Automation Workflow (CVE-2025-13096, CVSS 7.1 - Mức độ cao): IBM BAW xử lý dữ liệu XML trong các quy trình công việc như xử lý hồ sơ vay và giải quyết yêu cầu bồi thường. Lỗ hổng này cho phép rò rỉ tệp tin và SSRF (Server-Side Request Forgery), giúp kẻ tấn công xâm nhập vào các điểm cuối nội bộ; đồng thời, cấu trúc DOCTYPE tương tự có thể kích hoạt việc mở rộng thực thể nhằm gây ra tấn công từ chối dịch vụ (DoS). Dữ liệu XML được truyền đến thông qua các cổng thông tin đối tác từ các đơn vị thẩm định, cơ quan quản lý và nhà tích hợp.
Tất cả đều chỉ ra một dạng chung: một tệp XML kinh doanh đáng tin cậy chứa thông tin DOCTYPE, được truyền qua một quy trình làm việc đã được thiết lập trước khi đến tay trình phân tích cú pháp dễ bị tấn công.
Một lưu ý về phạm vi: bài viết này đề cập đến các trường hợp XXE xuất hiện dưới dạng tệp tin. Các tệp XML và các định dạng dựa trên XML như SVG, PDF có XFA, cũng như các tệp Office, khi được xử lý qua quy trình làm sạch sẽ được khôi phục lại ở trạng thái an toàn. Các trường hợp lây lan qua tệp là những trường hợp phổ biến: tải lên, nhập cấu hình, trao đổi dữ liệu với đối tác và tệp đính kèm email. XXE xâm nhập thông qua nội dung yêu cầu thô API hoặc lệnh phân tích cú pháp trong mã không có tệp được truyền đi, do đó, cổng lọc tệp không nằm trong đường dẫn đó.
Cách công nghệ Deep CDR™ xử lý các tệp XML độc lập
Công nghệ Deep CDR™ hỗ trợ các tiêu chuẩn XML 1.0 và 1.1, cùng các định dạng dựa trên XML liên quan như ZEI, JNLP, TDS, RDF, BML, MPD và TTML trên cùng một nền tảng.
Đối với các tệp XML, các tham chiếu trỏ ra bên ngoài tài liệu sẽ bị từ chối theo mặc định, và thẻ DOCTYPE cùng các tham chiếu thực thể bên ngoài của nó sẽ không được giữ lại trong tệp được tái tạo. Cả hai hành vi này đều không phải là các chính sách cần phải xác định và điều chỉnh. Miễn là XML bên ngoài được chuyển qua quy trình làm sạch trong MetaDefender Core™, biện pháp bảo vệ này sẽ được áp dụng.

Ngoài việc loại bỏ DOCTYPE mặc định này, các nhà khai thác còn có các tùy chọn cấu hình bổ sung để điều chỉnh cho phù hợp với môi trường của họ

- Loại bỏ macro: loại bỏ các macro VBA được mã hóa trong các định dạng Office dựa trên XML
- Loại bỏ CDATA: bốn tùy chọn chính sách theo mức độ, từ “Không thực hiện gì” đến “Loại bỏ tất cả”, cho phép các nhóm kiểm soát mức độ xử lý các đoạn CDATA tùy theo mức độ nhạy cảm của quy trình làm việc
- Loại bỏ lỗ hổng tiêm chèn: giải quyết vấn đề tiêm chèn XML và mã JavaScript ở lớp nội dung được nhúng trong các giá trị phần tử
- Xử lý dữ liệu được mã hóa Base64: xử lý các khối dữ liệu được mã hóa nhúng trong các giá trị XML, bao gồm các mẫu lược đồ URL dữ liệu


Một cơ chế bảo vệ liên quan khác bảo vệ phía còn lại của cùng một hướng. Các cấu trúc được thiết kế để mở rộng cho đến khi cạn kiệt bộ nhớ sẽ bị phát hiện và loại bỏ, do đó một tệp nhỏ không thể trở thành một tệp khổng lồ trong quá trình xử lý — đây chính là lý do tại sao thuật ngữ “XML Bomb” (hay “Billion Laughs”) được dùng để chỉ hiện tượng này.

Mọi thao tác khử nhiễm đều được ghi lại trong một báo cáo JSON pháp y. Báo cáo này bao gồm tên đối tượng, nội dung đã bị xóa (giới hạn tối đa 5.000 ký tự cho mỗi mục) và giá trị băm SHA-256 của đối tượng đã bị xóa. Các nhóm bảo mật có được một bản ghi kiểm toán đầy đủ để phục vụ việc rà soát tuân thủ và tái hiện sự cố mà không cần phải kiểm tra lại tệp gốc.
Để có giải thích chi tiết về tấn công chèn XML, tấn công chèn CDATA, “bom XML” và các cơ chế tấn công XML liên quan, hãy tham khảo bài viết bài phân tích kỹ thuật chuyên sâu về các vectơ tấn công tài liệu XML.
Bảo vệ quy trình xử lý tệp XML của bạn
Khi một trình phân tích cú pháp đáng tin cậy gặp phải một tệp XML độc hại, thì tệp đó sẽ “chiến thắng”. Apache Tika, Atlassian Crowd, IBM BAW và lộ trình phân tích cú pháp SVG đều chứng minh điều này trong các quy trình xử lý tài liệu, nền tảng nhận dạng và các công cụ quản lý quy trình làm việc.
Các tệp này không được coi là mối đe dọa. Chúng đến từ các đối tác đã được xác thực thông qua các quy trình làm việc đã được thiết lập và chứa nội dung hợp pháp – chính điều này khiến chúng trở nên hiệu quả. Giải pháp khắc phục không thay đổi giữa các lỗ hổng CVE: chặn tại lớp truyền tải, làm sạch dữ liệu trước khi tệp đến trình phân tích cú pháp, và đảm bảo cơ chế bảo vệ bao quát cả các tệp dữ liệu XML bên ngoài, chứ không chỉ giới hạn ở tệp đính kèm email và tệp tải lên từ web.

