-
09/04/2020
-
93
-
611 bài viết
Lỗ hổng nghiêm trọng trong ngôn ngữ lập trình phổ biến PHP
Hai lỗ hổng nghiêm trọng vừa được phát hiện trong PHP - một ngôn ngữ lập trình phổ biến dùng để phát triển các ứng dụng viết cho máy chủ, mã nguồn mở, thích hợp để tạo các trang web động và có thể dễ dàng kết hợp với HTML.
Lỗ hổng tồn tại do xác thực đầu vào XML của người dùng cung cấp không đầy đủ. Kẻ tấn công có thể khai thác lỗ hổng này bằng cách gửi mã XML tự tạo tới ứng dụng. Sau đó, ứng dụng sẽ phân tích cú pháp của mã này, từ đó kẻ tấn công có quyền truy cập vào thông tin nhạy cảm, chẳng hạn như nội dung của các tệp tùy ý trên hệ thống hoặc xem được kết quả các truy vấn bên ngoài.
Mọi ứng dụng, thư viện và máy chủ phân tích cú pháp hoặc tương tác với các tài liệu XML đều bị ảnh hưởng bởi CVE-2023-3823.
Lỗ hổng tồn tại do kiểm tra giới hạn hàm phar_dir_read() không đúng. Kẻ tấn công có thể khai thác lỗ hổng này bằng cách gửi một yêu cầu tự tạo tới ứng dụng gây ra lỗi tràn bộ đệm, cho phép chúng giành quyền kiểm soát hệ thống và thực thi mã tùy ý.
Bên cạnh đó, vẫn còn rủi ro về việc tràn bộ đệm trong hàm "memset". Mặc dù hiện tại chưa có trường hợp nào xảy ra trong chính PHP, nhưng các tiện ích mở rộng từ bên thứ ba vẫn có thể bị ảnh hưởng bởi CVE-2023-3824.
Thực tế, việc tấn công và lạm dụng lỗ hổng này khá phức tạp, tùy thuộc vào ứng dụng bị nhắm mục tiêu. Tuy vậy, về mặt lý thuyết, việc khai thác vẫn có thể xảy ra. Theo khuyến cáo cho biết: "Những người kiểm tra nội dung của các tệp phar không đáng tin cậy có thể bị ảnh hưởng."
CVE-2023-3823: Lỗi tiết lộ thông tin
Đây là lỗ hổng tiết lộ thông tin có điểm CVSS 8,6 cho phép kẻ tấn công từ xa đánh cắp thông tin nhạy cảm từ ứng dụng viết bằng PHP.Lỗ hổng tồn tại do xác thực đầu vào XML của người dùng cung cấp không đầy đủ. Kẻ tấn công có thể khai thác lỗ hổng này bằng cách gửi mã XML tự tạo tới ứng dụng. Sau đó, ứng dụng sẽ phân tích cú pháp của mã này, từ đó kẻ tấn công có quyền truy cập vào thông tin nhạy cảm, chẳng hạn như nội dung của các tệp tùy ý trên hệ thống hoặc xem được kết quả các truy vấn bên ngoài.
Mọi ứng dụng, thư viện và máy chủ phân tích cú pháp hoặc tương tác với các tài liệu XML đều bị ảnh hưởng bởi CVE-2023-3823.
CVE-2023-3824: Lỗi tràn bộ đệm
Đây là lỗ hổng tràn bộ đệm có điểm CVSS 9,4 cho phép kẻ tấn công từ xa thực thi mã tùy ý trên hệ thống chạy bằng PHP.Lỗ hổng tồn tại do kiểm tra giới hạn hàm phar_dir_read() không đúng. Kẻ tấn công có thể khai thác lỗ hổng này bằng cách gửi một yêu cầu tự tạo tới ứng dụng gây ra lỗi tràn bộ đệm, cho phép chúng giành quyền kiểm soát hệ thống và thực thi mã tùy ý.
Bên cạnh đó, vẫn còn rủi ro về việc tràn bộ đệm trong hàm "memset". Mặc dù hiện tại chưa có trường hợp nào xảy ra trong chính PHP, nhưng các tiện ích mở rộng từ bên thứ ba vẫn có thể bị ảnh hưởng bởi CVE-2023-3824.
Thực tế, việc tấn công và lạm dụng lỗ hổng này khá phức tạp, tùy thuộc vào ứng dụng bị nhắm mục tiêu. Tuy vậy, về mặt lý thuyết, việc khai thác vẫn có thể xảy ra. Theo khuyến cáo cho biết: "Những người kiểm tra nội dung của các tệp phar không đáng tin cậy có thể bị ảnh hưởng."
Khuyến cáo
Cả hai lỗ hổng CVE-2023-3823 và CVE-2023-3824 đều đã được vá trong phiên bản PHP 8.0.30 và đã có mã khai thác (PoC). Vì vậy, người dùng nên nâng cấp lên phiên bản mới càng sớm càng tốt và thực hiện thêm các bước dưới đây để bảo vệ các ứng dụng viết bằng PHP:- Xác thực tất cả dữ liệu đầu vào của người dùng đầy đủ
- Sử dụng tường lửa ứng dụng web (WAF) để ngăn chặn các lỗ hổng và hành vi độc hại.
- Luôn cập nhật phiên bản mới nhất của PHP.
Theo Security Online