Lỗ hổng 7-Zip CVE-2025-53816: Nguy cơ DoS nghiêm trọng từ tệp RAR5 độc hại

Một lỗ hổng nghiêm trọng loại tấn công từ chối dịch vụ (DoS) đã được phát hiện trong phần mềm 7-Zip, cho phép kẻ tấn công gây lỗi hệ thống bằng cách sử dụng các tệp tin lưu trữ RAR5 được chế tạo đặc biệt.

Lỗ hổng này, được định danh là CVE-2025-53816, ảnh hưởng đến bộ giải mã RAR5 của phần mềm nén phổ biến 7-Zip. Việc xử lý các tệp tin lưu trữ độc hại được thiết kế riêng có thể dẫn đến tình trạng hỏng bộ nhớ nghiêm trọng và gây ra sự cố cho toàn bộ hệ thống hoặc ứng dụng.

Chi tiết kỹ thuật CVE-2025-53816

Mô tả lỗ hổng

Nhà nghiên cứu bảo mật Jaroslav Lobačevski đã xác định lỗ hổng này, với mã định danh nội bộ là GHSL-2025-058. Lỗi bảo mật này xuất phát từ một lỗ hổng tràn bộ đệm dựa trên heap (heap buffer overflow) trong thành phần NCompress::NRar5::CDecoder của 7-Zip phiên bản 24.09. Đây là một thành phần cốt lõi chịu trách nhiệm xử lý và giải nén các tệp tin định dạng RAR5.

Lỗ hổng xảy ra khi bộ giải mã RAR5 cố gắng sửa chữa các mục bị hỏng bên trong tệp lưu trữ bằng cách điền các giá trị 0 vào các vùng bộ nhớ tương ứng. Tuy nhiên, một lỗi tính toán nghiêm trọng trong hoạt động bộ nhớ dẫn đến việc ghi dữ liệu (cụ thể là các giá trị 0) vượt quá giới hạn của bộ đệm được cấp phát. Điều này làm hỏng các vùng bộ nhớ lân cận, gây ra hành vi không mong muốn và làm sập chương trình.

Nguyên nhân gốc rễ của sự cố nằm ở việc tính toán sai lệch của giá trị rem trong quá trình gọi hàm My_ZeroMemory(_window + _winPos, (size_t)rem). Hàm này được thiết kế để điền các giá trị 0 vào một vùng bộ nhớ có kích thước (size_t)rem, bắt đầu từ địa chỉ _window + _winPos. Khi xử lý các tệp RAR5 bị hỏng, bộ giải mã tính toán sai kích thước bộ nhớ cần được điền giá trị 0, dẫn đến việc ghi tràn qua ranh giới của bộ đệm heap đã được cấp phát hợp lệ. Việc ghi tràn này làm suy yếu tính toàn vẹn của dữ liệu trong bộ nhớ, một đặc điểm của lỗi hỏng bộ nhớ heap.

Lỗ hổng này trở nên nguy hiểm hơn bởi vì giá trị _lzEnd, một biến số quan trọng ảnh hưởng trực tiếp đến kích thước của vùng bộ đệm bị tràn, lại phụ thuộc vào dữ liệu có thể được kiểm soát bởi kẻ tấn công. Dữ liệu này được lấy từ các mục lưu trữ trước đó trong cùng một tệp RAR5 độc hại. Điều này mang lại cho kẻ tấn công khả năng ảnh hưởng đến mức độ và phạm vi của lỗi tràn bộ đệm, mặc dù mục tiêu chính vẫn là gây ra DoS.

Lỗ hổng này đã được phân loại theo mã CWE-122: Heap-based Buffer Overflow, một loại lỗ hổng phổ biến liên quan đến việc ghi dữ liệu vượt quá giới hạn của một vùng bộ nhớ được cấp phát trên heap.

Tác động

Lỗ hổng này chủ yếu dẫn đến các cuộc tấn công từ chối dịch vụ (Denial of Service – DoS) thay vì thực thi mã tùy ý. Khi 7-Zip xử lý một tệp RAR5 được chế tạo độc hại, lỗi tràn bộ đệm heap sẽ liên tục ghi đè các vị trí bộ nhớ bằng các giá trị 0. Việc ghi đè này làm hỏng cấu trúc dữ liệu quan trọng hoặc các con trỏ hàm trong bộ nhớ của ứng dụng, dẫn đến sự cố chương trình một cách đáng tin cậy.

Mặc dù việc ghi đè bằng các giá trị 0 hạn chế đáng kể khả năng khai thác lỗ hổng để thực thi mã độc tùy ý, nhưng nó có thể làm sập ứng dụng 7-Zip một cách chắc chắn. Trong một số trường hợp, tùy thuộc vào môi trường và cách 7-Zip được tích hợp vào hệ thống, lỗi ứng dụng nghiêm trọng này thậm chí có thể gây ra sự cố hoặc làm mất ổn định toàn bộ hệ thống đang chạy.

Các thử nghiệm chuyên sâu đã tiết lộ rằng lỗ hổng này không chỉ ảnh hưởng đến các bản dựng 7-Zip được biên dịch với ASAN (AddressSanitizer) – một công cụ phát hiện lỗi bộ nhớ – mà còn tác động đến các bản dựng chính thức dành cho Windows. Điều này nhấn mạnh mức độ phổ biến và nguy hiểm của lỗ hổng trên các nền tảng sử dụng 7-Zip.

Bằng chứng khái niệm (PoC)

Một bằng chứng khái niệm (Proof-of-Concept – PoC) đã được phát triển để minh họa và xác nhận sự tồn tại của lỗ hổng. PoC này chứng minh rằng việc giải nén một tệp RAR5 được chế tạo đặc biệt bằng lệnh giao diện dòng lệnh (CLI) sau sẽ kích hoạt lỗi ngay lập tức, thường đi kèm với thông báo lỗi tràn bộ đệm heap:

7zz e -so rar-crash.rar5

Lịch sử tiết lộ và khắc phục

Quy trình tiết lộ lỗ hổng này đã tuân thủ nghiêm ngặt các nguyên tắc bảo mật có trách nhiệm. Vấn đề đã được báo cáo một cách riêng tư vào ngày 24 tháng 4 năm 2025 cho nhóm phát triển 7-Zip. Phản hồi tích cực đã được ghi nhận khi nhóm phát triển xác nhận báo cáo chỉ trong vòng năm ngày, cụ thể là vào ngày 29 tháng 4 năm 2025.

Một bản vá lỗi hiệu quả đã được triển khai thành công và phát hành công khai trong 7-Zip phiên bản 25.00 vào ngày 5 tháng 7 năm 2025. Quá trình khắc phục toàn diện này đã được hoàn tất một cách nhanh chóng, chỉ trong khoảng hai tháng kể từ thời điểm báo cáo ban đầu, thể hiện sự kịp thời trong việc xử lý các vấn đề bảo mật quan trọng.

Khuyến nghị bảo mật

Để bảo vệ hệ thống và dữ liệu khỏi lỗ hổng CVE-2025-53816, người dùng cá nhân và các tổ chức được khuyến nghị mạnh mẽ nên cập nhật ngay lập tức phần mềm 7-Zip của mình lên phiên bản 25.00 hoặc các phiên bản mới hơn. Đây là biện pháp khắc phục trực tiếp và hiệu quả nhất.

Ngoài ra, các tổ chức nên thực hiện các biện pháp phòng ngừa bổ sung khi xử lý các tệp RAR5, đặc biệt là những tệp có nguồn gốc không đáng tin cậy. Việc xem xét triển khai các lớp bảo mật bổ sung trong quy trình xử lý tệp lưu trữ, chẳng hạn như quét mã độc hoặc sử dụng môi trường sandbox để giải nén các tệp đáng ngờ, có thể giảm thiểu rủi ro tiềm ẩn. Luôn xác minh nguồn gốc của các tệp nén trước khi xử lý chúng là một thực hành bảo mật tốt.