Lỗ hổng PostgreSQL 12 năm tuổi cho phép chiếm quyền điều khiển cơ sở dữ liệu và máy chủ

Công nghệ04 tháng 9, 2026·5 phút đọc

Một lỗ hổng nghiêm trọng tồn tại trong PostgreSQL kể từ năm 2014, được đặt tên là PostGREShell (CVE-2026-6471), cho phép kẻ tấn công có quyền Replication cấp thấp chiếm toàn bộ quyền superuser, thực thi mã từ xa và cài backdoor vĩnh viễn. Mọi phiên bản từ 9.4 đến 18 đều bị ảnh hưởng, và bản vá đã được phát hành trong các phiên bản mới nhất. Các tổ chức được khuyến cáo khẩn trương cập nhật và rà soát tài khoản Replication.

Lỗ hổng PostgreSQL 12 năm tuổi cho phép chiếm quyền điều khiển cơ sở dữ liệu và máy chủ

Lỗ hổng PostgreSQL 12 năm tuổi cho phép chiếm quyền điều khiển cơ sở dữ liệu và máy chủ

Một lỗ hổng nghiêm trọng tồn tại trong PostgreSQL kể từ năm 2014 vừa được hãng bảo mật Cyera phát hiện, cho phép kẻ tấn công chỉ với quyền Replication cấp thấp có thể chiếm toàn bộ quyền superuser, thực thi mã từ xa và cài backdoor vĩnh viễn trên hệ thống. Lỗ hổng có tên mã PostGREShell (CVE-2026-6471) ảnh hưởng đến mọi phiên bản từ 9.4 đến 18, đặt ra thách thức bảo mật lớn cho hàng chục nghìn doanh nghiệp đang sử dụng hệ quản trị cơ sở dữ liệu mã nguồn mở phổ biến nhất thế giới này.

Ảnh minh họa lỗ hổng PostgreSQLẢnh minh họa lỗ hổng PostgreSQL

Tổng quan về lỗ hổng PostGREShell

PostgreSQL là một hệ quản trị cơ sở dữ liệu quan hệ mã nguồn mở nổi tiếng, hỗ trợ cả truy vấn SQL truyền thống lẫn JSON phi quan hệ. Đây là một trong những cơ sở dữ liệu được sử dụng rộng rãi nhất hiện nay, phục vụ cho hàng chục nghìn công ty, bao gồm nhiều tập đoàn lớn trên toàn cầu.

Theo báo cáo từ Cyera, lỗ hổng CVE-2026-6471 có điểm CVSS 7.2 và được mô tả là thiếu cơ chế phân quyền (missing authorization) trong quá trình giải mã logic (logical decoding) của cơ sở dữ liệu. Kẻ tấn công sở hữu quyền Replication có thể lợi dụng để nạp bất kỳ tệp tin nào mà tài khoản hệ điều hành đang chạy máy chủ có thể đọc được, thông qua plugin giải mã logic.

Cơ chế khai thác hoạt động như thế nào?

PostgreSQL sử dụng giao thức nhân bản (replication protocol) chuyên dụng để đồng bộ nhiều bản sao của cơ sở dữ liệu chính, phục vụ mục đích sao lưu và khôi phục. Tài khoản có thuộc tính Replication thường được cấp cho các công cụ sao lưu, máy chủ, đường dẫn dữ liệu và tiện ích giám sát.

Khi plugin được nạp, PostgreSQL chạy hàm khởi tạo của chúng với quyền hạn của tiến trình máy chủ. Để ngăn chặn lạm dụng, người dùng không phải superuser chỉ được phép nạp plugin từ thư mục do quản trị viên kiểm soát. Tuy nhiên, Cyera phát hiện rằng tên plugin được truyền trực tiếp đến bộ nạp mà không qua kiểm tra hoặc làm sạch dữ liệu, cho phép kẻ tấn công cung cấp một đường dẫn hệ thống tuyệt đối được chuyển đến hàm dlopen() – hàm C/C++ dùng để tự động nạp thư viện chia sẻ.

“Trình phân tích giao thức nhân bản chấp nhận gần như mọi ký tự trong tên plugin được đặt trong dấu ngoặc kép: dấu gạch chéo, dấu chéo ngược, dấu chấm, dạng ../ để leo thang thư mục, thậm chí cả đường dẫn UNC của Windows,” Cyera nhấn mạnh.

Hậu quả: Chiếm quyền superuser vĩnh viễn

Việc khai thác thành công cho phép kẻ tấn công nạp và thực thi bất kỳ tệp tin nào thông qua dlopen(), và tệp tin sẽ được thực thi với quyền hạn của người dùng hệ thống postgres. Điều này đặc biệt nguy hiểm vì:

  • Mã được nạp chạy trong cùng không gian địa chỉ với PostgreSQL, không có sandbox và không có kiểm tra nào đối với các lời gọi API nội bộ.
  • Kẻ tấn công có thể gọi hàm nội bộ để trở thành bootstrap superuser cho phiên làm việc.
  • Chúng có thể ghi trực tiếp vào pg_authid – bảng danh mục xác định ai là superuser – và chuyển mọi cờ quyền hạn thành true.

Tại thời điểm này, kẻ tấn công đã giành được quyền superuser vĩnh viễn, có thể truy cập mọi bảng trong mọi cơ sở dữ liệu, thực thi lệnh hệ điều hành, đọc khóa riêng tư và ghi tệp tin vào bất kỳ vị trí nào mà tiến trình postgres có quyền truy cập.

Đáng lo ngại hơn, plugin có thể triển khai các cơ chế backdoor: kích hoạt kết nối không cần mật khẩu, tự sao chép vào vị trí ổn định, tự đăng ký để được nạp lại vào mọi backend mới, và tái áp đặt thay đổi superuser ngay cả khi bị thu hồi.

Phạm vi ảnh hưởng rộng lớn

“PostGREShell biến thông tin xác thực Replication mà ít ai để tâm thành công cụ thực thi mã, giành quyền superuser, và cài backdoor vĩnh viễn trên cơ sở dữ liệu đứng sau phần lớn internet. Mọi phiên bản từ 9.4 đến 18 đều bị ảnh hưởng (chúng tôi đã xác nhận trên bản 18.2), và nhân bản logic hiện là hạ tầng tiêu chuẩn trong sản xuất, do đó con đường khai thác tồn tại gần như ở khắp mọi nơi có chạy PostgreSQL,” Cyera cảnh báo.

Lỗ hổng CVE-2026-6471 đã được vá trong các phiên bản PostgreSQL 18.6, 17.11, 16.15, 15.19 và 14.24. Các tổ chức được khuyến cáo nên:

  • Khẩn trương cập nhật phiên bản PostgreSQL mới nhất.
  • Rà soát kỹ lưỡng các tài khoản Replication hiện có.
  • Gỡ bỏ thuộc tính Replication khỏi tài khoản không thực sự cần thiết.

Lỗ hổng này đặc biệt liên quan đến cộng đồng doanh nghiệp Việt Nam khi nhiều hệ thống ngân hàng, thương mại điện tử và chính phủ đang chạy trên nền tảng PostgreSQL. Việc kiểm tra và cập nhật ngay lập tức là hành động bắt buộc để tránh rủi ro bị xâm nhập dữ liệu nghiêm trọng.

Logo SecurityWeekLogo SecurityWeek

Chia sẻ:FacebookX
Nội dung tổng hợp bằng AI, mang tính tham khảo. Xem bài gốc ↗