Lỗ hổng SQL Injection nghiêm trọng trong PostgreSQL


Trong báo cáo mới đây của Rapid7 cho biết tin tặc đang tích cực khai thác một lỗ hổng Zero-day nghiêm trọng đang tồn tại trong PostgreSQL, cho phép tin tặc thực hiện tấn công bằng SQL Injection và có thể dẫn tới các cuộc tấn công thực thi mã từ xa.
Thông tin lỗ hổng
- Định danh lỗ hổng:
CVE-2025-1094
- Điểm CVSS(3.1): 8.1
- Mức độ nghiêm trọng: High
- Phiên bản bị ảnh hưởng: Các phiên bản PostgreSQL trước
17.3
,16.7
,15.11
,14.16
,13.19
đều bị ảnh hưởng.
CVE-2025-1094 được phát hiện trong quá trình nghiên cứu lỗ hổng CVE-2024-12356 - cho phép kẻ tấn công chưa xác thực thực thi mã từ xa trên các sản phẩm của BeyondTrust, các nhà nghiên cứu nhận thấy khai thác thành công CVE-2025-1094 chính là bước đệm để thực hiện khai thác CVE-2024-12356. Mặc dù BeyondTrust đã phát hành bản vá cho CVE-2024-12356 từ tháng 12/2024, nhưng lỗ hổng trong PostgreSQL vẫn chưa được khắc phục cho tới khi các nhà nghiên cứu thuộc Rapid7 phát hiện ra.
Bắt nguồn từ việc PostgreSQL xử lý không đúng cách cú pháp trích dẫn (quoting syntax) trong các hàm của thư viện libpq
bao gồm:
PQescapeLiteral()
PQescapeIdentifier()
PQescapeString()
PQescapeStringConn()
Mặc dù được thiết kế và xây dựng cho việc thoát (escape) các ký tự đặc biệt và tránh nguy cơ xảy ra SQL Injection trong psql
(trình terminal tương tác của PostgreSQL), tuy nhiên nếu lập trình viên sử dụng các hàm trên sai cách khi xây dựng truy vấn SQL trong psql
thì vẫn có thể dẫn tới khả năng bị chèn mã khi kết hợp với cách psql
xử lý chuỗi UTF-8 không hợp lệ.
Tương tự, nếu không được xử lý đúng cú pháp trích dẫn trong những chương trình tiện ích (utility programs) bằng dòng lệnh của PortgreSQL, khai thác SQL Injection vẫn có thể được thực hiện khi tham số client_encoding
được đặt gán giá trị BIG5
và tham số server_encoding
được gán giá trị EUC_TW
hoặc MULE_INTERNAL
.
Nghiên cứu cũng chỉ ra tin tặc có thể kiểm soát toàn bộ hệ thống nếu khai thác thành công CVE-2025-1094. Lợi dụng khả năng chạy meta-lệnh (meta-commands) của công cụ tương tác, cho phép mở rộng chức năng của công cụ và cung cấp nhiều thao tác bổ sung như thực hiện lệnh với dấu chấm than !
trên psql
, tin tặc có thể thực thi lệnh shell với quyền hệ điều hành, dẫn tới thực thi mã tuỳ ý và kiểm soát hệ thống.
Người dùng PostgreSQL cần cập nhật lên phiên bản 17.3
, 16.7
, 15.11
, 14.16
, 13.19
hoặc các phiên bản mới hơn để nhận được bản vá cho lỗ hổng này.
Tham khảo
- CVE-2025-1094: https://nvd.nist.gov/vuln/detail/CVE-2025-1094
- CVE-2024-12356: https://nvd.nist.gov/vuln/detail/CVE-2024-12356
- PostgreSQL: https://www.postgresql.org/support/security/CVE-2025-1094
- Rapid7 report: https://www.rapid7.com/blog/post/2025/02/13/cve-2025-1094-postgresql-psql-sql-injection-fixed/
Subscribe to my newsletter
Read articles from Nam Anh Mai D. directly inside your inbox. Subscribe to the newsletter, and don't miss out.
Written by
