Một lỗ hổng CVE nghiêm trọng mới được công bố trong PostgreSQL, có tên mã là CVE-2026-6471 và biệt danh PostGREShell, có thể cho phép kẻ tấn công có quyền truy cập replication cấp thấp thực thi mã tùy ý trên các máy chủ cơ sở dữ liệu.
Phân tích lỗ hổng PostGREShell (CVE-2026-6471)
Lỗ hổng này, tồn tại trong tính năng giải mã logic (logical decoding) của PostgreSQL khoảng 12 năm, đã được khắc phục trong các phiên bản được hỗ trợ. PostgreSQL là một hệ quản trị cơ sở dữ liệu được sử dụng rộng rãi để lưu trữ dữ liệu kinh doanh, hồ sơ ứng dụng, thông tin khách hàng, dữ liệu tài chính và các tải công việc trên đám mây.
Rủi ro bảo mật từ lỗ hổng này đặc biệt đáng quan ngại bởi nó ảnh hưởng đến một loại tài khoản thường được sử dụng cho các hoạt động sao lưu, replication, phục hồi sau thảm họa và thu thập dữ liệu thay đổi (change data capture).
Tác động của lỗ hổng
Lỗ hổng ảnh hưởng đến các tài khoản PostgreSQL không phải là superuser nhưng có thuộc tính REPLICATION. Các tài khoản này thường được sử dụng để hỗ trợ replication cơ sở dữ liệu, cho phép các máy chủ dự phòng và hệ thống sao lưu nhận các thay đổi từ máy chủ chính.
Tuy nhiên, các nhà nghiên cứu đã phát hiện ra rằng một tài khoản được kích hoạt replication có thể lợi dụng tính năng giải mã logic để buộc PostgreSQL tải một thư viện do kẻ tấn công kiểm soát. Điều này mở ra nguy cơ chiếm quyền điều khiển thông qua việc thực thi mã từ xa.
Giải mã logic cho phép các công cụ bên ngoài đọc các thay đổi cơ sở dữ liệu từ nhật ký ghi trước (write-ahead log) của PostgreSQL. Nó sử dụng các plugin đầu ra để định dạng các thay đổi đó cho các công cụ replication, phân tích, di chuyển và đường ống dữ liệu.
Trong các phiên bản bị ảnh hưởng, PostgreSQL đã không hạn chế đúng cách đường dẫn thư viện được cung cấp dưới dạng tên plugin đầu ra. Kết quả là, một kẻ tấn công có đặc quyền REPLICATION có thể trỏ PostgreSQL đến một thư viện chia sẻ độc hại có sẵn cho tài khoản hệ điều hành đang chạy cơ sở dữ liệu.
PostgreSQL sau đó sẽ tải tệp này bằng các hàm tải thư viện của hệ điều hành, chẳng hạn như dlopen() trên Linux và macOS hoặc LoadLibrary() trên Windows. Mã độc hại sẽ được thực thi với quyền của tiến trình máy chủ PostgreSQL.
Điều này rất quan trọng vì kẻ tấn công không cần quyền superuser của PostgreSQL để bắt đầu cuộc tấn công. Một tài khoản replication có đặc quyền thấp có thể trở thành điểm khởi đầu cho việc thực thi mã trên máy chủ cơ sở dữ liệu.
Từ đó, kẻ tấn công có thể cố gắng truy cập các cơ sở dữ liệu nhạy cảm, đánh cắp thông tin xác thực, thay đổi quyền tài khoản, cài đặt các backdoor dai dẳng hoặc xâm nhập sâu hơn vào môi trường.
Chi tiết kỹ thuật và phát hiện
Cyera Research đã phát hiện ra CVE-2026-6471, một lỗ hổng có nguồn gốc từ phiên bản 9.4 của PostgreSQL phát hành năm 2014. Lỗ hổng này bắt nguồn từ việc hạn chế đường dẫn thư viện không đầy đủ trong quy trình làm việc của replication logic.
Các phiên bản bị ảnh hưởng và bản vá
Nhóm phát triển PostgreSQL đã phát hành các bản vá cho lỗ hổng này. Các tổ chức nên nâng cấp lên PostgreSQL 18.6, 17.11, 16.15, 15.19 hoặc 14.24, tùy thuộc vào nhánh phiên bản họ đang sử dụng. Các phiên bản cũ hơn các bản phát hành đã vá này đều bị ảnh hưởng.
Quản trị viên cũng nên kiểm tra tất cả các tài khoản có thuộc tính REPLICATION và loại bỏ đặc quyền này khỏi các tài khoản không thực sự cần thiết. Kết nối replication nên được giới hạn thông qua các quy tắc pg_hba.conf nghiêm ngặt và các địa chỉ IP nguồn đáng tin cậy.
Các nhóm quản trị cơ sở dữ liệu nên xem xét hoạt động replication logic để phát hiện các nỗ lực bất thường trong việc tạo các bản sao lưu (replication slots) hoặc các tên plugin đáng ngờ có chứa đường dẫn hệ thống tệp, chuỗi traversal hoặc tên thư viện không mong muốn.
Việc hạn chế truy cập mạng đầu ra không cần thiết từ các máy chủ cơ sở dữ liệu, đặc biệt là lưu lượng SMB và NFS, cũng có thể giảm thiểu rủi ro về các đường dẫn phân phối thư viện từ xa.
CVE-2026-6471 cho thấy các tài khoản cơ sở dữ liệu vận hành có thể trở thành mục tiêu có tác động cao. Một thông tin xác thực sao lưu có vẻ ít rủi ro, nhưng trong trường hợp này, nó có thể cung cấp một con đường để thực thi mã và chiếm quyền hoàn toàn môi trường PostgreSQL.
Để tìm hiểu thêm về các biện pháp phòng ngừa và bản vá, bạn có thể tham khảo thông tin chi tiết trên NVD.










