Một lỗ hổng (CVE-2024-2961) đã được xác định trong thư viện C tiêu chuẩn Glibc dẫn đến tràn bộ đệm khi chuyển đổi các chuỗi được định dạng đặc biệt trong mã hóa ISO-2022-CN-EXT bằng hàm iconv(). Nhà nghiên cứu đã xác định được vấn đề dự định trình bày tại hội nghị OffensiveCon vào ngày 10 tháng XNUMX, thông báo trong đó đề cập đến khả năng khai thác lỗ hổng thông qua các ứng dụng trong PHP. Vấn đề được cho là ảnh hưởng đến toàn bộ hệ sinh thái PHP và một số ứng dụng.
Khi chuyển đổi các chuỗi được mã hóa UCS4, theo yêu cầu của RFC 1922, thư viện sẽ thêm một số ký tự thoát để đánh dấu các phần của chuỗi nơi mã hóa đã được thay đổi. Lỗ hổng này xảy ra do việc kiểm tra ranh giới bộ đệm bên trong không chính xác bằng hàm iconv(), điều này có thể dẫn đến tràn bộ đệm lên tới 4 byte. Khi xảy ra lỗi tràn bộ đệm, một số giá trị cố định nhất định có thể được ghi, chẳng hạn như '$+I', '$+J', '$+K', '$+L', '$+M' và '$* H'. Mặc dù việc khai thác lỗ hổng như vậy để thực thi mã dường như khó xảy ra, nhưng theo nhà nghiên cứu đã xác định được vấn đề, điều này đủ để chuẩn bị một số cách khai thác nguyên mẫu cho một cuộc tấn công từ xa vào các ứng dụng PHP, dẫn đến việc thực thi mã.
Lỗ hổng này đã tồn tại từ năm 2000 và đã được khắc phục trong nhánh phát triển Glibc 2.40. Bản vá lỗi cũng có sẵn cho các phiên bản Glibc từ 2.32 đến 2.39. Bạn có thể theo dõi tiến trình khắc phục lỗ hổng trên các bản phân phối sau: Debian, UbuntuGentoo, RHEL, SUSE, Fedora, Arch.
Nguồn: opennet.ru
