CVE-2026-17347
Received Received - Intake

Command Injection in pgAdmin 4 via MASTER_PASSWORD_HOOK

Vulnerability report for CVE-2026-17347, including description, CVSS score, EPSS score, affected products, exploitability, helpful resources, and attack-flow context.

Publication date: 2026-07-31

Last updated on: 2026-07-31

Assigner: PostgreSQL

Description

The MASTER_PASSWORD_HOOK setting, introduced in pgAdmin 4 7.2, lets an administrator configure an external command that returns a per-user encryption key, with %u in the configured string replaced by the current user's name. The previous implementation substituted the username directly into the command string and executed the result with subprocess.Popen(..., shell=True). Because the username can originate from an external authentication source (OAuth/OIDC claims, Kerberos, webserver auth) rather than a value pgAdmin fully controls, a username containing shell metacharacters (';', '$()', backticks, pipes, '&&', newlines) allowed an authenticated user to execute arbitrary commands as the pgAdmin service account in any deployment where the configured hook string uses %u. Fix tokenises the trusted, administrator-configured hook string into an argument vector first (using shlex in POSIX-quoting mode, with backslash-escaping disabled so Windows-style paths are not mis-parsed), substitutes the untrusted username into the individual argv elements, and executes with shell=False. The username is therefore always confined to a single argv element; any shell metacharacters it contains are inert. Administrators whose MASTER_PASSWORD_HOOK previously relied on shell features (pipes, redirection, environment-variable expansion, globbing) within the hook string itself must move that logic into the invoked script, since it is no longer interpreted by a shell. This issue affects pgAdmin 4: from 7.2 before 9.17.

CVSS Scores

EPSS Scores

Probability:
Percentile:

Meta Information

Published
2026-07-31
Last Modified
2026-07-31
Generated
2026-07-31
AI Q&A
2026-07-31
EPSS Evaluated
N/A
NVD
EUVD

Affected Vendors & Products

Showing 1 associated CPE
Vendor Product Version / Range
pgadmin pgadmin to 9.17 (exc)

Helpful Resources

Exploitability

CWE
CWE Icon
KEV
KEV Icon
CWE ID Description
CWE-88 The product constructs a string for a command to be executed by a separate component in another control sphere, but it does not properly delimit the intended arguments, options, or switches within that command string.
CWE-78 The product constructs all or part of an OS command using externally-influenced input from an upstream component, but it does not neutralize or incorrectly neutralizes special elements that could modify the intended OS command when it is sent to a downstream component.

Attack-Flow Graph

AI Quick Actions

Instant insights powered by AI
Executive Summary

This vulnerability in pgAdmin 4 versions 7.2 to 9.16 allows authenticated users to execute arbitrary commands as the pgAdmin service account. It occurs because the MASTER_PASSWORD_HOOK setting, which runs an external command with the user's name, uses shell=True and directly substitutes the username into the command string. If the username contains shell metacharacters like semicolons or command substitutions, it can inject and execute malicious commands.

Detection Guidance

Check if your pgAdmin version is between 7.2 and 9.17. Inspect the MASTER_PASSWORD_HOOK configuration for shell metacharacters in usernames. Review logs for unusual command execution patterns from the pgAdmin service account.

Impact Analysis

An attacker with authenticated access could gain full control over the pgAdmin server by executing arbitrary commands. This could lead to data theft, unauthorized modifications, or disruption of services. The impact depends on the privileges of the pgAdmin service account.

Compliance Impact

This vulnerability could lead to unauthorized access to sensitive data, violating confidentiality requirements in GDPR and HIPAA. Organizations using affected pgAdmin versions may face compliance violations, data breaches, and potential regulatory penalties.

Mitigation Strategies

Upgrade pgAdmin to version 9.17 or later. Remove or disable the MASTER_PASSWORD_HOOK setting if not required. If the hook is necessary, ensure the configured command does not rely on shell features and uses shell=False execution.

Chat Assistant

Ask questions about this CVE
Hi! I’m here to help you understand CVE-2026-17347. Ask me anything about the vulnerability, its impact, or mitigation strategies.
0/70

EPSS Chart