PostgreSQL vá lỗ hổng bảo mật 12 năm tuổi: Nguy cơ thực thi mã từ xa qua quyền Replication
PostgreSQL vừa phát hành bản vá cho lỗ hổng nghiêm trọng CVE-2026-6471, cho phép người dùng có quyền REPLICATION thực thi mã tùy ý trên hệ điều hành. Lỗ hổng này đã tồn tại từ năm...
- Giọng nữ Bắc
Cộng đồng PostgreSQL vừa phát hành các bản cập nhật quan trọng nhằm khắc phục một lỗ hổng bảo mật nghiêm trọng, được định danh là CVE-2026-6471 (điểm CVSS 7.2). Lỗ hổng này cho phép bất kỳ tài khoản nào sở hữu thuộc tính REPLICATION có thể thực thi mã tùy ý với quyền của người dùng hệ điều hành đang chạy tiến trình database server.
Table Of Content
Chi tiết về lỗ hổng PostGREShell
Lỗ hổng này đã tồn tại từ khi tính năng logical decoding được giới thiệu trong PostgreSQL 9.4 vào năm 2014. Các phiên bản bị ảnh hưởng bao gồm tất cả các bản phát hành trước 18.6, 17.11, 16.15, 15.19 và 14.24.
Theo các chuyên gia từ Cyera Research, những người đặt tên cho lỗ hổng này là PostGREShell, kẻ tấn công có thể lợi dụng cơ chế tải thư viện của tính năng logical decoding. Cụ thể, tham số plugin trong lệnh CREATE_REPLICATION_SLOT không được kiểm soát chặt chẽ, cho phép kẻ tấn công thực hiện kỹ thuật path traversal để tải các thư viện độc hại từ bên ngoài vào server.
- Trên Windows: Kẻ tấn công có thể sử dụng đường dẫn mạng SMB để tải thư viện từ máy chủ do chúng kiểm soát.
- Trên Linux/macOS: Kẻ tấn công cần kích hoạt tính năng tự động mount NFS hoặc có quyền ghi file lên đĩa của server.
Sau khi mã được tải, nó sẽ chạy dưới quyền của người dùng postgres, cho phép kẻ tấn công leo thang đặc quyền lên superuser hoặc thiết lập các cơ chế duy trì quyền truy cập (persistence) lâu dài.
Giải pháp khắc phục
Để ngăn chặn, PostgreSQL đã giới thiệu tham số cấu hình mới là output_plugin_libraries. Tham số này hoạt động như một danh sách trắng (whitelist), chỉ cho phép các thư viện được chỉ định cụ thể được tải làm plugin giải mã logic. Mặc định, danh sách này chỉ bao gồm pgoutput và test_decoding.
Các bước quản trị viên cần thực hiện:
- Kiểm tra: Chạy câu lệnh
SELECT DISTINCT plugin FROM pg_replication_slots WHERE plugin IS NOT NULL;để xác định các plugin đang được sử dụng trong hệ thống. - Cập nhật: Nâng cấp lên các phiên bản PostgreSQL mới nhất (18.6, 17.11, 16.15, 15.19, hoặc 14.24).
- Cấu hình: Thêm các plugin đang sử dụng vào tham số
output_plugin_librariesvà tải lại cấu hình bằngpg_ctl reloadhoặcSELECT pg_reload_conf();.
Khuyến nghị tạm thời
Nếu chưa thể cập nhật ngay lập tức, quản trị viên nên:
- Rà soát và thu hồi quyền
REPLICATIONtừ các tài khoản không thực sự cần thiết. - Giới hạn các kết nối replication trong file
pg_hba.confchỉ cho phép từ các địa chỉ IP tin cậy. - Chặn lưu lượng outbound SMB (cổng 445) và NFS (cổng 2049) từ máy chủ database để ngăn chặn việc tải thư viện từ xa.
- Vô hiệu hóa
autofsnếu không cần thiết.
Hiện tại, dù bản vá đã được phát hành, một số công cụ như pg_createsubscriber vẫn đang gặp vấn đề tương thích với tham số mới và đang chờ các bản cập nhật bổ sung từ cộng đồng.
Nguồn tham khảo: The Hacker News
No Comment! Be the first one.