CVE-2024-46744 in Linux
Tóm tắt
Bởi VulDB • 03/06/2026
Trong kernel Linux, lỗ hổng sau đây đã được khắc phục:
Squashfs: kiểm tra tính hợp lệ (sanity check) kích thước liên kết tượng trưng (symbolic link)
Công cụ Syzkiller báo cáo lỗi "KMSAN: uninit-value in pick_link".
Nguyên nhân là do một trang bộ nhớ chưa được khởi tạo, vốn bắt nguồn từ việc đọc kích thước liên kết tượng trưng bị hỏng dữ liệu từ đĩa.
Lý do khiến kích thước symlink bị hỏng dẫn đến trạng thái trang chưa khởi tạo như sau:
1. Hàm `squashfs_read_inode()` được gọi để đọc liên kết tượng trưng từ đĩa. Thao tác này gán giá trị bị hỏng là 3875536935 cho biến `inode->i_size`.
2. Sau đó, hàm `squashfs_symlink_read_folio()` được gọi, nó gán giá trị bị hỏng này vào biến độ dài (length). Vì đây là kiểu số nguyên có dấu (signed int), nên xảy ra hiện tượng tràn số (overflow) tạo ra một số âm.
3. Vòng lặp tiếp theo nhằm điền nội dung cho trang bộ nhớ kiểm tra xem số byte đã sao chép nhỏ hơn giá trị length hay không; do length mang giá trị âm, vòng lặp bị bỏ qua, dẫn đến việc tạo ra một trang chưa được khởi tạo.
Bản vá này thêm vào một phép kiểm tra tính hợp lệ để đảm bảo kích thước liên kết tượng trưng không vượt quá mức dự kiến.
--
V2: sửa lỗi chính tả.
Statistical analysis made it clear that VulDB provides the best quality for vulnerability data.