Skip to main content

Command Palette

Search for a command to run...

Một cú restore… và toàn bộ hệ thống của bạn thuộc về hacker - câu chuyện từ CVE-2025-12762

Vừa qua PostgreSQL — một trong những hệ quản trị cơ sở dữ liệu mã nguồn mở hàng đầu đã phát hành bản vá bảo mật khẩn cấp.

Updated
6 min read
Một cú restore… và toàn bộ hệ thống của bạn thuộc về hacker - câu chuyện từ CVE-2025-12762

Giới thiệu về CVE-2025-12762

Để có thể hiểu rõ hơn về lỗ hổng này, chúng ta sẽ đi qua một số khái niệm cơ bản. PgAdmin được biết đến là công cụ quản trị và phát triển PostgreSQL phổ biến nhất hiện nay, được sử dụng rộng rãi bởi quản trị viên hệ thống (DBA), nhà phát triển và các tổ chức vận hành hạ tầng dữ liệu. Đây là phần mềm mã nguồn mở, cung cấp giao diện đồ họa (GUI) giúp quản lý cơ sở dữ liệu PostgreSQL một cách trực quan, dễ sử dụng và hiệu quả.

CVE-2023-5002 pgAdmin RCE, LDAP Injection

PgAdmin hỗ trợ đầy đủ các chức năng quản trị cơ bản đến nâng cao, bao gồm:

  • Quản lý kết nối đến nhiều máy chủ PostgreSQL

  • Tạo, chỉnh sửa và xóa bảng, schema, view, function

  • Chạy truy vấn SQL với Query Tool

  • Theo dõi và quản lý session, process, khóa (locks)

  • Sao lưu và khôi phục dữ liệu (backup/restore)

  • Giám sát hoạt động và hiệu năng của cơ sở dữ liệu

  • Tích hợp các công cụ cho developer và DBA

CVE-2025-12762 đã được các chuyên gia An ninh mạng công bố vào ngày 13 tháng 11 năm 2025. Theo báo cáo đây là một lỗ hổng Remote Code Execution (RCE) được phát hiện trong pgAdmin 4. Điều này có thể cho phép kẻ tấn công tương tác trực tiếp với cơ sở dữ liệu database để thực hiện việc đánh cắp thông tin và tạo tài khoản quản trị viên mới.

Phạm vi ảnh hưởng

Các phiên bản bị ảnh hưởng: pgAdmin 4 ≤ 9.9 khi chạy ở chế độ “server mode” (máy chủ) và sử dụng chức năng khôi phục (restore) từ file dump định dạng PLAIN.

Đánh giá mức độ nghiêm trọng

CVE-2022-45822 được đánh giá mức độ nghiêm trọng là : CRITICAL với số điểm như sau:

  • NIST: NVD Base Score: 9.8 - CRITICAL Vector: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H

  • CNA: Patchstack Base Score: 9.1 - CRITICAL Vector: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H

Phân tích và khai thác lỗ hổng

Như đã đề cập bên trên thì đây là một lỗ hổng RCE (remote code execution) ảnh hưởng tới pgAdmin 4 chạy ở chế độ server khi thực hiện restore từ các file dump ở PLAIN format. Nếu file dump chứa lệnh đặc biệt, pgAdmin có thể vô tình cho chạy lệnh đó trên máy host.

Kẻ tấn công đầu tiên sẽ đăng nhập vào giao diện pgAdmin Web. Từ đó, chúng có thể:

  • Truy cập file manager của pgAdmin

  • Upload file vào thư mục tạm của pgAdmin

  • Gọi các job như restore, backup, import/export

Bạn có thắc mắc là kẻ tấn công lấy đâu ra mật khẩu để đăng nhập không? Thông thường chúng sẽ có ba cách chính để thực hiện:

  • Cách 1: Để mật khẩu quản trị yếu, đương nhiên với cách này chúng chỉ 10–50 lần thử là có thể tìm trúng nếu mật khẩu “dễ đoán”.

  • Cách 2: Lộ mật khẩu trong các file cấu hình như: config_distro.py, config_local.py hay servers.json. Và nếu server bị truy cập hoặc repo cấu hình bị leak, kẻ tấn công lấy được thông tin đăng nhập.

  • Cách 3: Phishing nội bộ giả mạo thông tin đăng nhập. Đối với trường hợp này thì cũng rất phổ biến hiện nay khi mà kẻ tấn công lợi dụng AI tạo các trang Web giả mạo và Email trông hợp lệ nhằm đánh lừa nạn nhân cung cấp thông tin đăng nhập.

Sau khi đã đăng nhập, kẻ tấn công sẽ tải file dump PLAIN có nội dung độc hại. Điểm cốt lõi của vấn đề là trong PLAIN format, PostgreSQL dump cho phép sử dụng các meta-command “\!“ và nó là tính năng hợp pháp của psql, dùng để chạy lệnh trên hệ điều hành. Khi đấy kẻ tấn công chỉ cần chuẩn bị các file dump với câu lệnh SQL trông hợp pháp và Upload.

Sau khi tải lên file, kẻ tấn công chỉ cần yêu cầu pgAdmin thực hiện Restore file dump vừa upload. Từ đó có thể truy cập vào bất kỳ database nào (thường là postgres). Như đã biết thì pgAdmin không lọc, không vô hiệu hóa, không sandbox các meta-command (\!, \set, …) trong file dump PLAIN.

Một khi restore bắt đầu, tiến trình restore của pgAdmin:

  • Đọc file dump

  • Thấy lệnh hệ thống \! something

  • Trực tiếp chuyển lệnh đến shell của host đang chạy pgAdmin

Đến được bước này thì kẻ tấn công sẽ dễ dàng RCE trên hệ thống và viết file, mở reverse shell, cài backdoor, sửa cấu hình, hoặc pivot mạng. Cuối cùng sẽ thực hiện:

  • Kiểm tra đã thực thi thành công hay chưa (dựa vào file marker hoặc log)

  • Phát tán malware, crypto-miner hoặc backdoor

  • Tiến hành hoạt động lateral movement trong mạng nội bộ

Khuyến nghị

  1. Cập nhật pgAdmin 4 lên phiên bản đã vá

    • Nâng cấp lên pgAdmin 4 ≥ 9.10 — phiên bản này đã khắc phục lỗ hổng.

    • Kiểm tra phiên bản hiện tại:

        pip show pgadmin4
      
    • Nếu triển khai bằng Docker:

        docker pull dpage/pgadmin4:latest
      
  2. Tạm thời vô hiệu hóa tính năng Restore dạng PLAIN

    • Vì lỗ hổng xuất phát từ việc xử lý plain-format dump file, hãy:

      • Chỉ cho phép restore từ định dạng Custom hoặc Directory.

      • Cấm hoặc hạn chế người dùng tải lên file dump .sql PLAIN cho đến khi cập nhật hoàn tất.

      • Với deployment có reverse proxy (Nginx, Apache), có thể chặn upload .sql.

  3. Giới hạn truy cập vào pgAdmin (server mode)

    • pgAdmin tuyệt đối không nên mở ra Internet.

      • Chỉ cho phép truy cập:

        • Từ LAN nội bộ

        • Từ VPN

        • Từ firewall whitelist

      • Trên Linux:

          ufw allow from 10.0.0.0/24 to any port 5050
          ufw deny 5050
        

Tổng kết

Lỗ hổng CVE-2025-12762 trong pgAdmin 4 cho thấy một thực tế đáng lo ngại: chỉ một chức năng tưởng chừng vô hại như khôi phục cơ sở dữ liệu từ file dump lại có thể trở thành điểm tấn công dẫn đến Remote Code Execution và chiếm quyền toàn bộ máy chủ. Với mức độ nghiêm trọng CVSS 9.1, lỗ hổng này đặc biệt nguy hiểm đối với các hệ thống vận hành trong server mode, nơi nhiều người dùng có thể tương tác và upload file.

Bản chất của vấn đề nằm ở việc pgAdmin xử lý file dump dạng PLAIN mà không kiểm soát đầy đủ dữ liệu đầu vào, cho phép attacker chèn lệnh độc hại và thực thi chúng ở cấp hệ điều hành. Điều này khiến phạm vi ảnh hưởng vượt xa ứng dụng pgAdmin, trực tiếp đe dọa máy chủ, cơ sở dữ liệu, và thậm chí các hệ thống liên quan trong cùng hạ tầng.

Vì vậy, việc cập nhật ngay lập tức, kiểm tra toàn diện, và tăng cường kiểm soát file dump là bước bắt buộc để bảo vệ hệ thống. Sự cố này cũng là lời nhắc nhở quan trọng rằng trong an ninh hệ thống, những thành phần hỗ trợ như công cụ quản trị - có thể trở thành điểm yếu chết người nếu không được giám sát và cập nhật đúng cách.

Tham khảo

  1. Critical pgAdmin Flaws (CVE-2025-12762, CVSS 9.1) Allow Remote Code Execution via PostgreSQL Dump Files

  2. Blackash-CVE-2025-12762/CVE-2025-12762.py at main · B1ack4sh/Blackash-CVE-2025-12762 · GitHub

  3. NVD - CVE-2025-12762

Newsletters

Part 1 of 50

More from this blog

F

FPT IS Security

761 posts

Dedicated to providing insightful articles on cybersecurity threat intelligence, aimed at empowering individuals and organizations to navigate the digital landscape safely.