7-Zip xuất hiện lỗ hổng cực nguy hiểm, chỉ cần tiếp xúc mở file ZIP cũng có thể bị tấn công

VNZ-TECHS
Hãy nâng cấp ngay: 7-Zip 26.00 và các phiên bản cũ hơn tồn tại lỗ hổng nghiêm trọng 8.8 điểm, có thể bị khai thác để thực thi mã tùy ý

Cảnh báo phiên bản 7-Zip 26.00 và các phiên bản cũ hơn đang tồn tại lỗ hổng bảo mật nghiêm trọng mang mã CVE-2026-48095. Người dùng được khuyến nghị nâng cấp ngay lên phiên bản an toàn mới nhất 26.01.



Lỗ hổng mang mã CVE-2026-48095 thuộc dạng tràn ghi bộ nhớ đệm heap (Heap Buffer Overflow). Theo thông tin được công bố, kẻ tấn công có thể tạo một file ZIP độc hại để kích hoạt lỗi, từ đó thực thi mã tùy ý hoặc khiến ứng dụng bị sập.

Nguyên nhân của lỗ hổng nằm trong hàm CInStream::GetCuSize() thuộc tệp NtfsHandler.cpp. Tại đây, chương trình sử dụng biểu thức dịch bit 32-bit để tính kích thước bộ đệm của đơn vị nén NTFS:

(UInt32)1 << (BlockSizeLog + CompressionUnit)

Khi một ảnh NTFS được chế tạo đặc biệt đặt ClusterSizeLog lớn hơn hoặc bằng 28, đồng thời CompressionUnit bằng 4, giá trị dịch bit sẽ đạt tới 32, dẫn tới hành vi không xác định (Undefined Behavior).

Trên phần cứng x86, hành vi này khiến _inBuf cuối cùng chỉ được cấp phát đúng 1 byte bộ nhớ. Tuy nhiên sau đó, chương trình lại gọi ReadStream_FALSE để ghi tối đa tới 256 MB dữ liệu do kẻ tấn công kiểm soát vào vùng đệm chỉ có 1 byte, dẫn tới tình trạng tràn bộ đệm heap cực kỳ nghiêm trọng.

Do đối tượng CInStream nằm trên heap chỉ cách _inBuf khoảng 304 byte, ngay lần đọc đầu tiên với dung lượng 64 KB cũng đủ để ghi đè con trỏ bảng hàm ảo (vtable pointer) của đối tượng.

Ở vòng lặp thứ hai, chương trình sẽ thực hiện lời gọi hàm thông qua bảng hàm ảo đã bị sửa đổi, hình thành kỹ thuật chiếm quyền điều khiển vtable điển hình. Bằng cách tạo nội dung cụm NTFS đặc biệt, kẻ tấn công có thể kiểm soát con trỏ bị ghi đè, từ đó nâng cấp lỗi từ phá hủy bộ nhớ lên thực thi mã tùy ý.

Báo cáo cho biết cả phiên bản 32-bit lẫn 64-bit đều bị ảnh hưởng. Trên các hệ thống 64-bit có từ 16 GB RAM trở lên, lệnh _outBuf.Alloc(8 GB) có thể được thực hiện thành công, khiến chuỗi khai thác đi thẳng tới tình trạng tràn bộ nhớ. Trong khi đó, trên các thiết bị RAM thấp, tác động nhiều khả năng chỉ dừng ở mức từ chối dịch vụ (DoS).

Đối với người dùng phổ thông, trong kịch bản tấn công thực tế, nạn nhân thậm chí không cần phải giải nén hàng loạt file thủ công. Chỉ cần tiếp xúc với file ZIP được chế tạo đặc biệt cũng có thể đối mặt với nguy cơ bị tấn công.

Lỗ hổng này được chấm 8.8 điểm theo thang CVSS 3.1, thuộc mức nguy hiểm cao, liên quan tới CWE-787 (ghi vượt giới hạn bộ nhớ) và CWE-190 (tràn số nguyên). Lỗi được phát hiện và công bố có trách nhiệm bởi Jaroslav Lobačevski thuộc GitHub Security Lab.

Theo mốc thời gian công bố, lỗ hổng được báo cáo vào ngày 24/4/2026 và bản vá 26.01 đã được phát hành chỉ sau 3 ngày, vào ngày 27/4/2026.

Các bạn có thể cập nhật tại đây
 
Trả lời

thanit9x

Búa Đá
Các bác làm theo nếu muốn nhé:

Cách 1: (Method 1
Bước 1: Start => powershell => run as administrator (Step 1: Start => powershell => run as administrator)
Bước 2: Gõ "winget upgrade" để lấy list app (Step 2: Type "winget upgrade" to get the app list)
Bước 3: Gõ tiếp "winget upgrade --all" và chờ (Step 3: Next, type "winget upgrade --all" and wait)
----
Cách 2: DÙNG WingetUI (Method 2: USING WingetUI)
Chỉ cần paste câu lệnh "winget install SomePythonThings.WingetUI" vào powershell ở trên và dùng GUI cho lẹ
(Just paste the command "winget install SomePythonThings.WingetUI" into the powershell above and use the GUI for quickness
 

thanit9x

Búa Đá
ad nói chuẩn, chỉ là update tất cả thôi mà. Mì ăn liền cho nhanh chứ lẻ tẻ lâu lắm, muốn mỗi 7-zip thì dễ mà.

winget upgrade [ID] (ví dụ: winget upgrade 7zip.7zip)​

để tiến hành cập nhật