Nguy Hiểm Lỗ Hổng Zip Slip: RCE và Các CVE Nghiêm Trọng

Trong bối cảnh các mối đe dọa an ninh mạng không ngừng biến đổi, các lỗi lạm dụng đường dẫn (path traversal flaws) như lỗ hổng Zip Slip vẫn là một nguy cơ nghiêm trọng. Lỗ hổng này cho phép tin tặc thay đổi cấu trúc hệ thống tệp trong quá trình giải nén, dẫn đến những hậu quả khôn lường.
Nguyên nhân của lỗ hổng Zip Slip xuất phát từ việc thiếu xác thực đầu vào đầy đủ trong các tiện ích nén. Điều này cho phép kẻ tấn công nhúng các đường dẫn độc hại vào bên trong các tệp lưu trữ, từ đó tạo, ghi đè hoặc thực thi các tệp trái phép bên ngoài các thư mục dự kiến.
Được phát hiện và ghi nhận rộng rãi trong những năm gần đây, Zip Slip ảnh hưởng đến nhiều định dạng nén phổ biến như ZIP, TAR, RAR và 7Z. Lỗ hổng này khai thác cơ chế tích hợp siêu dữ liệu đường dẫn tệp trong cấu trúc của các định dạng này.
Khi các công cụ giải nén xử lý các tệp lưu trữ mà không thực hiện kiểm tra đường dẫn nghiêm ngặt, kẻ tấn công có thể lợi dụng các đường dẫn tương đối hoặc tuyệt đối để nhắm mục tiêu vào các vị trí nhạy cảm của hệ thống. Điều này tiềm ẩn nguy cơ dẫn đến thực thi mã từ xa (remote code execution) hoặc tạo ra các cửa hậu (backdoor) dai dẳng.
Cơ chế hoạt động của lỗ hổng Zip Slip
Theo báo cáo của ASEC, lỗ hổng Zip Slip hoạt động bằng cách chèn các đường dẫn tệp được tạo sẵn vào siêu dữ liệu của các tệp lưu trữ đã nén. Các đường dẫn này sau đó được diễn giải theo nghĩa đen trong quá trình giải nén.
Về cơ bản, khi một chương trình giải nén dễ bị tổn thương gặp một tên tệp chứa các chuỗi lạm dụng đường dẫn như "../" hoặc các đường dẫn tuyệt đối, nó sẽ không chuẩn hóa hoặc hạn chế chúng. Điều này cho phép các tệp được ghi vào các vị trí không mong muốn.
Ví dụ, trong môi trường Linux, kẻ tấn công có thể nhúng một đường dẫn như "../../../../etc/passwd" vào trong một tệp ZIP. Khi giải nén, tệp này có thể ghi đè lên tệp mật khẩu của hệ thống, dẫn đến việc xâm phạm cơ chế xác thực người dùng.
Tương tự, trên hệ thống Windows, các đường dẫn nhắm mục tiêu vào thư mục Khởi động (Startup folder), ví dụ "/../AppData/Roaming/Microsoft/Windows/Start Menu/Programs/Startup/", có thể triển khai phần mềm độc hại dai dẳng thực thi khi khởi động. Điều này giúp mã độc lẩn tránh sự phát hiện ban đầu do vẻ ngoài “lành tính” của tệp lưu trữ.
Cấu trúc định dạng nén và khả năng khai thác của lỗ hổng Zip Slip
Tính phổ biến của lỗ hổng Zip Slip bắt nguồn từ thiết kế cấu trúc của các định dạng nén, nơi thông tin đường dẫn được lưu trữ rõ ràng trong các tiêu đề tệp.
Hãy xem xét tiêu đề tệp cục bộ của định dạng ZIP, bắt đầu bằng một số magic number (0x504B0304). Tiêu đề này bao gồm các trường cho phiên bản tương thích, phương pháp nén (ví dụ: DEFLATE được mã hóa là 0x0800), dấu thời gian, tổng kiểm CRC-32 để xác minh tính toàn vẹn, và quan trọng nhất là độ dài tên tệp cùng nội dung bắt đầu từ byte offset 30.
Trường tên tệp này có thể bao gồm các đường dẫn đầy đủ, cho phép tạo thư mục con hoặc thực hiện lạm dụng đường dẫn. Kẻ tấn công thường thao túng trường này bằng cách sử dụng các công cụ như module zipfile của Python để chèn các đường dẫn tương đối, hoặc trực tiếp chỉnh sửa cấu trúc nhị phân của tệp lưu trữ.
Đối với định dạng RAR và TAR, các cấu trúc tiêu đề tương tự như tiêu đề khối của RAR chứa chuỗi đường dẫn hoặc trường tên tệp 100 byte của TAR cũng tạo điều kiện cho các khai thác tương tự.
Ngay cả các định dạng được mã hóa như 7Z, dù che khuất các đường dẫn văn bản thuần túy, vẫn dễ bị tổn thương nếu quá trình xử lý sau giải mã bỏ qua việc xác thực. Điều này nhấn mạnh sự cần thiết của việc phân giải đường dẫn chính tắc và kiểm tra giới hạn trong logic giải nén.
Cấu trúc này cho thấy cách mục nhập tên tệp, không bị ràng buộc bởi xác thực nghiêm ngặt, trở thành một vector cho lạm dụng đường dẫn.
Các lỗ hổng CVE và các chiến dịch khai thác đáng chú ý
Các tiết lộ gần đây đã làm tăng mối lo ngại về tác động thực tế của lỗ hổng Zip Slip.
- CVE-2025-8088: Ảnh hưởng đến các phiên bản WinRAR trước 7.13. Lỗ hổng này cho phép kẻ tấn công vượt qua các kiểm tra đường dẫn bằng cách sử dụng chuỗi
"../"kết hợp với Luồng Dữ liệu Thay thế (Alternate Data Streams – ADS), từ đó cho phép tạo tệp tùy ý.Được phát hiện bởi các nhà nghiên cứu của ESET, lỗ hổng này đã bị nhóm APT RomCom khai thác trong các chiến dịch tấn công có chủ đích.
- CVE-2025-6218: Trong WinRAR trước 7.12, lỗ hổng CVE này tạo điều kiện cho remote code execution bằng cách nhúng khoảng trắng vào các đường dẫn tương đối, qua đó né tránh các bộ lọc và cho phép triển khai mã độc.
- CVE-2022-30333: Trong các phiên bản Unrar dưới 6.12, lỗ hổng này nhắm mục tiêu vào các hệ thống giống Unix, ghi đè các tệp như
~/.ssh/authorized_keysthông qua các chuỗi lạm dụng đường dẫn cơ bản. - CVE-2018-20250: Trong WinRAR trước 5.61, lỗ hổng này khai thác cách xử lý định dạng ACE trong thư viện
UNACEV2.dll, bỏ qua các bộ lọc ký tự để truy cập thư mục mẹ.Để biết thêm chi tiết kỹ thuật về lỗ hổng này, bạn có thể tham khảo NVD – CVE-2018-20250.
Biện pháp phòng ngừa và giảm thiểu rủi ro
Sức mạnh của lỗ hổng Zip Slip nằm ở việc khai thác dễ dàng, chỉ yêu cầu người dùng khởi tạo quá trình giải nén. Điều này biến nó thành một chiến thuật ưa thích để phát tán mã độc mà không cần thực thi trực tiếp.
Để giảm thiểu rủi ro, yêu cầu đặt ra là phải có cơ chế chuẩn hóa đường dẫn mạnh mẽ trong phần mềm, chẳng hạn như từ chối các đường dẫn tuyệt đối hoặc những đường dẫn chứa các yếu tố lạm dụng. Đồng thời, người dùng cần nâng cao cảnh giác với các tệp lưu trữ không mong muốn.
Việc cập nhật thường xuyên các công cụ như WinRAR là rất cần thiết, vì các phiên bản chưa nhận được bản vá bảo mật vẫn là cánh cửa cho các mối đe dọa dai dẳng nâng cao (Advanced Persistent Threats – APT).
Khi các tiện ích nén tích hợp vào các hệ sinh thái rộng lớn hơn, bao gồm các quy trình xây dựng tự động và dịch vụ đám mây, việc giải quyết lỗ hổng Zip Slip thông qua các thực hành mã hóa an toàn là bắt buộc để bảo vệ chống lại các cuộc tấn công thao túng tệp đang phát triển, góp phần củng cố an ninh mạng tổng thể.









