
Một lỗ hổng bảo mật nghiêm trọng vừa được phát hiện trong ADOdb – thư viện dùng để kết nối cơ sở dữ liệu trong các ứng dụng PHP, với hơn 2,8 triệu lượt sử dụng trên toàn cầu. Lỗ hổng này được theo dõi với mã định danh CVE-2025-46337, tồn tại trong phương thức pg_insert_id() của trình điều khiển PostgreSQL, có thể cho phép kẻ tấn công thực thi các câu lệnh SQL tùy ý trong các ứng dụng dễ bị tấn công.
Lỗ hổng được kích hoạt khi đầu vào do người dùng kiểm soát được truyền vào tham số $fieldname
trong hàm pg_insert_id()
mà không được kiểm tra và làm sạch đúng cách. Điều này cho phép kẻ tấn công can thiệp vào truy vấn SQL được tạo ra và có khả năng kiểm soát hoặc làm tổn hại đến cơ sở dữ liệu bên dưới.
Trong cấu hình nguy hiểm nhất – khi dữ liệu đầu vào được lấy trực tiếp từ các tham số HTTP hoặc biểu mẫu người dùng và được đưa vào pg_insert_id()
– kẻ tấn công có thể giành toàn quyền kiểm soát quá trình thực thi SQL. Điều này có thể dẫn đến việc đánh cắp dữ liệu, xóa dữ liệu hoặc thậm chí là thực thi mã từ xa, tùy thuộc vào quyền hạn của cơ sở dữ liệu và mức độ tích hợp trong hệ thống.
Lỗ hổng đã được vá trong ADOdb phiên bản 5.22.9, cụ thể tại commit 11107d6
. Các nhà phát triển được khuyến nghị nâng cấp ngay lập tức để loại bỏ rủi ro. Đối với những trường hợp chưa thể nâng cấp, cảnh báo đề xuất biện pháp khắc phục tạm thời: chỉ truyền dữ liệu đã kiểm soát vào tham số $fieldname
của hàm pg_insert_id()
hoặc sử dụng hàm pg_escape_identifier()
để thoát dữ liệu trước khi sử dụng.