CVE-2025-8088 là lỗ hổng truy cập đường dẫn trong WinRAR, ảnh hưởng đến các phiên bản trước 7.13. Việc khai thác lỗ hổng này cho phép một tệp lưu trữ được tạo đặc biệt bỏ qua quá trình xác thực tên tệp và đường dẫn trong quá trình giải nén, từ đó khiến nội dung do kẻ tấn công kiểm soát được ghi vào các vị trí cụ thể trên phân vùng NTFS. Trong một số điều kiện nhất định, khả năng ghi này có thể được tận dụng để thực thi mã từ xa.
Các nghiên cứu sinh thuộc Chương trình Học bổng OPSWAT đã tiến hành phân tích kỹ thuật về lỗ hổng CVE-2025-8088. Kết quả phân tích về cơ chế hoạt động của RAR5 và NTFS (ADS) đã xác định quy trình trích xuất dữ liệu và đường dẫn xử lý ADS dẫn đến các thao tác ghi dữ liệu không an toàn, đồng thời tổng hợp các hướng dẫn thực tiễn về biện pháp giảm thiểu và khắc phục sự cố dành cho các chuyên gia an ninh mạng và các tổ chức.

Giới thiệu về CVE-2025-8088
WinRAR là một trong những công cụ nén và giải nén được sử dụng phổ biến nhất trên Windows. Phần mềm này hỗ trợ việc bảo toàn và khôi phục các siêu dữ liệu đặc thù của hệ thống tệp NTFS, chẳng hạn như ADS (Dòng dữ liệu thay thế). Lỗ hổng CVE-2025-8088 tồn tại trong cơ chế xử lý ADS của một số phiên bản WinRAR cụ thể. Trong các phiên bản dễ bị tấn công, một tệp nén độc hại có thể can thiệp vào mã định danh dòng dữ liệu được sử dụng trong quá trình giải nén; việc thiếu các biện pháp chuẩn hóa và xác thực đường dẫn thích hợp trong quy trình tạo ADS sẽ tạo điều kiện cho việc xâm nhập thư mục.
Lỗ hổng CVE-2025-8088 được đánh giá là vấn đề có mức độ nghiêm trọng cao, với điểm cơ bản CVSS v4.0 là 8,4 (Cao), phản ánh khả năng gây ra tác động an ninh đáng kể nếu người dùng giải nén một tệp lưu trữ được tạo đặc biệt bằng phiên bản WinRAR có lỗ hổng.

Kiến thức kỹ thuật
Dòng dữ liệu thay thế NTFS
NTFS (Hệ thống tệp công nghệ mới) là hệ thống tệp mặc định cho các phiên bản Windows hiện đại. So với các hệ thống tệp dựa trên FAT, NTFS hỗ trợ các tính năng nâng cao bao gồm ACL (danh sách kiểm soát truy cập), mã hóa EFS, nén dữ liệu, liên kết cứng, điểm phân tích lại (điểm nối và liên kết tượng trưng) và ADS.
ADS là một tính năng của hệ thống tệp NTFS cho phép một tệp hoặc thư mục chứa nhiều luồng dữ liệu độc lập. Nội dung chính, hiển thị cho người dùng, được lưu trữ trong luồng mặc định không có tên, thường được biểu thị là ::$DATA, trong khi các luồng có tên khác có thể được truy cập bằng cú pháp:
tên_tệp.định_dạng:tên_luồng
Các luồng có tên này thường không hiển thị trong các chế độ xem tiêu chuẩn của Windows Explorer, nhưng chúng được hệ thống tệp hỗ trợ đầy đủ và có thể được liệt kê bằng các công cụ tương thích. Ví dụ,lệnh `dir/R` có thể hiển thị các luồng thay thế.
WinRAR hỗ trợ giải nén các mục lưu trữ có chứa cú pháp ADS. Khi các mục này tồn tại trong tệp lưu trữ, WinRAR sẽ ghi nội dung tương ứng vào luồng thay thế của tệp đích trong quá trình giải nén.

Hiểu về cấu trúc tệp RAR5
Các tệp lưu trữ RAR5 được lưu trữ dưới dạng một chuỗi các khối. Mỗi khối bắt đầu bằng một tiêu đề xác định loại khối và thông tin về kích thước. Khối này có thể tùy chọn bao gồm một vùng siêu dữ liệu bổ sung và một vùng dữ liệu bao gồm các byte tải trọng, chẳng hạn như nội dung nén.
Khối = Tiêu đề + (Khu vực bổ sung tùy chọn) + (Khu vực dữ liệu tùy chọn)
RAR5 sử dụng một số loại khối. Các loại khối liên quan trong CVE là:
- Tiêu đề tệp (loại 2): Mô tả một mục tệp trong kho lưu trữ (tên/đường dẫn, thuộc tính, dấu thời gian, thông số nén) và đi kèm với dữ liệu nội dung của tệp
- Tiêu đề dịch vụ (loại 3): Các tiêu đề bổ sung tùy chọn dùng để lưu trữ siêu dữ liệu bổ sung liên quan đến kho lưu trữ hoặc một mục tệp cụ thể, chẳng hạn như ADS
Trong hệ thống tệp NTFS, các ADS được biểu diễn bằng một tiêu đề dịch vụ (loại 3), được gọi là STM. Khu vực dữ liệu của tiêu đề dịch vụ chứa các byte luồng ADS cho mục tệp gốc.
Nói một cách đơn giản:

Phân tích kỹ thuật (CVE-2025-8088)
Quy trình giải nén RAR5
WinRAR xử lý các tệp lưu trữ RAR5 dưới dạng một chuỗi các khối. Trong quá trình giải nén, chương trình sẽ lặp qua các khối này, phân tích tiêu đề của từng khối và kiểm tra tính toàn vẹn của tiêu đề bằng mã CRC32 được nhúng sẵn trước khi tiếp tục. Sau khi xử lý xong một mục tệp, WinRAR sẽ giải nén và ghi nội dung tệp gốc lên đĩa, sau đó xác định xem có cần áp dụng thêm siêu dữ liệu liên quan đến NTFS thông qua các bản ghi dịch vụ liên quan hay không. Khi có bản ghi ADS (Dòng dữ liệu thay thế), chẳng hạn như mục dịch vụ STM, WinRAR sẽ chuyển sang đường dẫn xử lý ADS, kết hợp đường dẫn tệp cơ sở với tên dòng để tạo thành đích ADS và tạo dòng.

Trong lỗ hổng CVE-2025-8088, nguyên nhân gốc rễ là việc tạo luồng ADS đã gọi hàm API Windows API () bằng cách sử dụng đường dẫn được trích xuất từ dữ liệu siêu dữ liệu do hệ thống lưu trữ quản lý, dẫn đến việc xây dựng và xác thực đường dẫn ADS không đủ để ngăn chặn việc truy cập trái phép.
Xác định đường dẫn mã ADS (“STM”)
Các nghiên cứu sinh của chúng tôi đã thực hiện kết hợp phân tích tĩnh và động trong môi trường phòng thí nghiệm được kiểm soát bằng phần mềm WinRAR 7.12. Họ đã xác định được các đoạn mã logic liên quan đến ADS bằng cách tìm kiếm dấu hiệu dịch vụ “STM” trong tệp nhị phân, sau đó xác nhận đường dẫn mã phía trích xuất trong quá trình chạy chương trình.

Bằng cách đặt điểm dừng tại tham chiếu “STM” xuất hiện trong quá trình giải nén tệp lưu trữ chứa dữ liệu ADS, điểm dừng này đã liên tục được kích hoạt, chứng minh rằng đường dẫn thực thi này được gọi trong quy trình giải nén thông thường.

Khi chạm đến điểm dừng, ngăn xếp cuộc gọi của trình gỡ lỗi đã được sử dụng để tái tạo chuỗi các hàm được gọi sau thao tác “Trích xuất” trong giao diện người dùng WinRAR, từ đó xác định một điểm mốc rõ ràng cho quá trình xử lý khối ở các bước tiếp theo và đường dẫn thực thi ADS.

Phân tích tiêu đề và xác thực CRC32
WinRAR xử lý từng khối RAR5 bằng cách đọc tiêu đề khối, kiểm tra tính toàn vẹn của các trường dữ liệu và chuyển xử lý sang trình xử lý dành riêng cho loại khối đó. Điểm vào của quá trình xử lý khối cùng với logic phân tích tiêu đề liên quan được minh họa trong các Hình 6-10, trong đó WinRAR đặt con trỏ tệp vào vị trí hiện tại của khối, đọc các byte tiêu đề ban đầu (bao gồm loại và kích thước tiêu đề), đồng thời kiểm tra tính toàn vẹn của tiêu đề bằng thuật toán CRC32 trước khi tiếp tục.
Sau khi xác thực thành công, nó sẽ phân tích các trường tiêu đề bổ sung, chẳng hạn như các cờ, kích thước sau khi giải nén, phương pháp nén và các tổng kiểm tra tùy chọn. Sau đó, nó sẽ xử lý phần nội dung của khối.



Trong quá trình phân tích ngược, người ta nhận thấy hàm CRC32 hoạt động nhất quán với một triển khai CRC32 theo tiêu chuẩn zlib. Trên thực tế, kiểm tra CRC32 này đóng vai trò như một cơ chế kiểm tra tính toàn vẹn. Nếu các trường tiêu đề bị sửa đổi, giá trị CRC32 nhúng phải được cập nhật để đảm bảo WinRAR chấp nhận tiêu đề và tiếp tục xử lý.

Sau khi xác thực tiêu đề CRC32, trình phân tích cú pháp tiếp tục trích xuất các thông tin còn lại trong tiêu đề, chẳng hạn như kích thước sau khi giải nén, phương pháp nén và các thuộc tính khác.

Sau khi hoàn tất việc phân tích cú pháp và xác thực tiêu đề, WinRAR sẽ xử lý nội dung khối dựa trên loại tiêu đề và các cờ đã được phân tích.

Trong lỗ hổng CVE-2025-8088, quá trình xác thực tính toàn vẹn của tiêu đề được thực hiện trước khi WinRAR chuyển yêu cầu đến trình xử lý khối dịch vụ chịu trách nhiệm xử lý các bản ghi ADS.
Tạo ADS thông qua khối dịch vụ (“STM”)
Quá trình xử lý ADS sẽ được kích hoạt khi WinRAR phát hiện một khối Service. Các khối Service sử dụng giá trị loại khối là 3. Khi phát hiện một khối Service, WinRAR sẽ chuyển nó đến trình xử lý tiêu đề dịch vụ.

Trong trình xử lý dịch vụ, WinRAR sẽ kiểm tra tên dịch vụ. Khi tên dịch vụ trùng khớp với “STM”, bản ghi sẽ được coi là dữ liệu ADS, và quá trình thực thi sẽ chuyển sang quy trình tạo ADS.

WinRAR sau đó lấy tên luồng từ bản ghi dịch vụ và kết hợp nó với đường dẫn tệp gốc để tạo ra mục tiêu ADS cuối cùng. Trong các phiên bản trước 7.13, phân tích cho thấy tên luồng không được làm sạch đầy đủ, dẫn đến việc các chuỗi truy cập có thể ảnh hưởng đến việc xác định đường dẫn mục tiêu kết quả.


Sau khi tạo đối tượng đích, WinRAR sẽ tạo luồng dữ liệu thông qua một hàm phụ trợ gọi API CreateFileW của Windows, sau đó ghi các byte ADS bằng hàm WriteFile. Nếu đường dẫn được xác định nằm ngoài thư mục giải nén do người dùng chọn, WinRAR sẽ tạo luồng/tệp đích và điền vào đó nội dung do kẻ tấn công kiểm soát.




Tóm lại, quy trình trích xuất ADS bộc lộ hai lỗ hổng liên quan đến bảo mật. Thứ nhất, tên luồng ADS không được làm sạch đầy đủ, dẫn đến việc các chuỗi truy cập có thể tác động đến đường dẫn đích cuối cùng. Thứ hai, WinRAR tạo luồng ADS bằng cách gọi hàm CreateFileW() với đường dẫn được dẫn xuất từ dữ liệu meta do tệp lưu trữ kiểm soát.
Khi kết hợp với nhau, các điều kiện này cho phép một tệp lưu trữ được tạo sẵn điều hướng mục tiêu của hàm CreateFileW() ra khỏi thư mục giải nén dự định và ghi nội dung do kẻ tấn công kiểm soát vào một vị trí do kẻ tấn công can thiệp. Nếu đích đến là một thư mục liên quan đến khả năng duy trì (ví dụ: thư mục Startup của người dùng), thao tác ghi này có thể cho phép thực thi mã tiếp theo vào lần đăng nhập hoặc khởi động lại hệ thống tiếp theo, tùy thuộc vào loại tải trọng và cấu hình hệ thống.
Kịch bản tấn công
Lỗ hổng CVE-2025-8088 có thể bị khai thác trên thực tế trong các tình huống mà kẻ tấn công dụ dỗ người dùng giải nén một tệp lưu trữ RAR được tạo ra đặc biệt bằng phiên bản WinRAR có lỗ hổng. Một phương thức lây nhiễm điển hình là kỹ thuật xã hội, chẳng hạn như lừa đảo qua email (phishing), khiến nạn nhân tin tưởng vào tệp lưu trữ độc hại và tiến hành giải nén trên một hệ thống quan trọng.
Tập tin lưu trữ chứa một bản ghi dịch vụ ADS (“STM”). Tên luồng của nó được cấu trúc để hỗ trợ cơ chế truy cập theo luồng. Trong quá trình giải nén trên hệ thống NTFS, WinRAR xử lý bản ghi ADS và xác định đường dẫn luồng đích dựa trên siêu dữ liệu do tập tin lưu trữ kiểm soát. Do việc xây dựng đường dẫn ADS này không được kiểm soát chặt chẽ đủ, vị trí đích được xác định có thể nằm ngoài thư mục giải nén do người dùng chọn, bao gồm cả các vị trí quan trọng như thư mục khởi động của người dùng.

Chứng minh khái niệm
Để minh họa lỗ hổng CVE-2025-8088, các nghiên cứu sinh của chúng tôi đã chuẩn bị một tệp lưu trữ RAR được thiết kế đặc biệt, chứa bản ghi dịch vụ ADS (“STM”) với các trường do kẻ tấn công kiểm soát. Tệp lưu trữ này được cấu trúc với tên luồng ADS bao gồm các chuỗi truy cập. Cấu trúc này ảnh hưởng đến vị trí đích cuối cùng trong quá trình xử lý ADS, bao gồm cả đường dẫn được truyền đến CreateFileW() khi luồng được tạo. Để đảm bảo WinRAR chấp nhận siêu dữ liệu đã sửa đổi và truy cập được đường dẫn xử lý ADS, các giá trị CRC32 của tiêu đề liên quan được tính toán lại để tệp lưu trữ vượt qua quá trình xác thực tính toàn vẹn của tiêu đề.

Khi một phiên bản WinRAR có lỗ hổng bước vào quy trình xử lý ADS trong quá trình giải nén tệp lưu trữ được tạo ra đặc biệt, nó sẽ ghi nội dung do kẻ tấn công kiểm soát vào vị trí đích đã được chọn sẵn thay vì thư mục giải nén do người dùng chọn. Sau khi giải nén, việc thực thi mã độc phụ thuộc vào định dạng của nó và cơ chế thực thi của vị trí đích đã được chọn sẵn. Ví dụ, các vị trí có thể thực thi nội dung đó vào lần đăng nhập hoặc khởi động lại tiếp theo.

Khắc phục
Có thể giảm thiểu rủi ro từ lỗ hổng CVE-2025-8088 bằng cách cập nhật WinRAR lên phiên bản đã được vá lỗi (7.13 trở lên) trên tất cả các thiết bị đầu cuối được quản lý. Nếu không thể cập nhật kịp thời, cần xem xét áp dụng các biện pháp kiểm soát bù đắp, chẳng hạn như:
- Hạn chế hoặc vô hiệu hóa tính năng lưu giữ ADS trong các công cụ lưu trữ khi không cần thiết
- Hạn chế việc giải nén các tệp lưu trữ không đáng tin cậy trong các môi trường cách ly
- Áp dụng nguyên tắc "quyền hạn tối thiểu" (tránh chạy các công cụ trích xuất với quyền quản trị)
- Theo dõi các thư mục quan trọng, chẳng hạn như các thư mục khởi động, để phát hiện các thao tác ghi dữ liệu bất thường xuất phát từ các quy trình giải nén tệp lưu trữ
Để vulnerability detection sớm vulnerability detection ở giai đoạn nghiêm trọng vulnerability detection khắc phục nhanh chóng, MetaDefender hỗ trợ các hoạt động khắc phục khẩn cấp bằng cách xác định các thiết bị đang chạy các phiên bản WinRAR có lỗ hổng và đánh dấu các bản cập nhật cần thiết. Với khả năng quản lý lỗ hổng và bản vá mạnh mẽ, hỗ trợ hơn 1.100 ứng dụng, giải pháp này chủ động xác định các thiết bị đầu cuối đang chạy hệ điều hành hoặc ứng dụng của bên thứ ba chưa được vá lỗi hoặc đã lỗi thời, đồng thời cung cấp các giải pháp khắc phục được đề xuất.
Vulnerability Management cho phép các quản trị viên nhanh chóng phát hiện các lỗ hổng, ưu tiên khắc phục và thúc đẩy việc nâng cấp lên phiên bản đã được vá lỗi, từ đó giảm thiểu rủi ro từ các cuộc tấn công ghi tệp dựa trên tệp lưu trữ, chẳng hạn như CVE-2025-8088, cũng như các mối đe dọa tương tự nhắm vào các thiết bị đầu cuối.

