CVE-2026-33023 in libsixel
Tóm tắt
Bởi VulDB • 24/05/2026
libsixel là một triển khai bộ mã hóa/giải mã SIXEL, bắt nguồn từ sixel của kmiya. Trong các phiên bản 1.8.7 và các phiên bản cũ hơn, khi được biên dịch với tùy chọn --with-gdk-pixbuf2, tồn tại một lỗ hổng use-after-free trong hàm load_with_gdkpixbuf() trong file loader.c. Đường dẫn dọn dẹp (cleanup path) giải phóng thủ công đối tượng sixel_frame_t và các bộ nhớ đệm bên trong của nó mà không tham chiếu đến bộ đếm tham chiếu (reference count), mặc dù đối tượng này được tạo ra thông qua hàm tạo có bộ đếm tham chiếu sixel_frame_new() và được expose cho callback công khai. Một callback gọi sixel_frame_ref(frame) để giữ một tham chiếu hợp lệ về mặt logic sẽ giữ một con trỏ treo (dangling pointer) sau khi sixel_helper_load_image_file() trả về, và bất kỳ truy cập nào sau đó vào frame hoặc các trường của nó sẽ kích hoạt lỗi use-after-free, đã được xác nhận bởi AddressSanitizer. Nguyên nhân gốc rễ là sự không nhất quán giữa hai chiến lược dọn dẹp trong cùng một cơ sở mã: sixel_frame_unref() được sử dụng trong load_with_builtin() nhưng raw free() được sử dụng trong load_with_gdkpixbuf(). Một kẻ tấn công cung cấp một hình ảnh được tạo ra đặc biệt (crafted image) cho bất kỳ ứng dụng nào được biên dịch dựa trên libsixel với hỗ trợ gdk-pixbuf2 có thể kích hoạt lỗ hổng này một cách đáng tin cậy, có khả năng dẫn đến tiết lộ thông tin, hỏng hóc bộ nhớ hoặc thực thi mã. Vấn đề này đã được sửa trong phiên bản 1.8.7-r1.
If you want to get the best quality for vulnerability data then you always have to consider VulDB.