Bug 2510678 - CVE-2026-17347 pgadmin4: OS command injection in MASTER_PASSWORD_HOOK via untrusted username substitution [fedora-all]
Summary: CVE-2026-17347 pgadmin4: OS command injection in MASTER_PASSWORD_HOOK via unt...
Keywords:
Status: CLOSED ERRATA
Alias: None
Product: Fedora
Classification: Fedora
Component: pgadmin4
Version: rawhide
Hardware: Unspecified
OS: Unspecified
high
high
Target Milestone: ---
Assignee: Sandro Mani
QA Contact:
URL:
Whiteboard: {"flaws": ["da4a80a4-ab2a-4f4c-8cf6-c...
Depends On:
Blocks: CVE-2026-17347
TreeView+ depends on / blocked
 
Reported: 2026-08-03 14:06 UTC by Guilherme de Almeida Suckevicz
Modified: 2026-08-09 01:17 UTC (History)
1 user (show)

Fixed In Version: pgadmin4-9.17-1.fc44 pgadmin4-9.17-1.fc43
Clone Of:
Environment:
Last Closed: 2026-08-09 00:59:12 UTC
Type: ---
Embargoed:


Attachments (Terms of Use)

Description Guilherme de Almeida Suckevicz 2026-08-03 14:06:09 UTC
Disclaimer: Community trackers are created by Red Hat Product Security team on a best effort basis. Package maintainers are required to ascertain if the flaw indeed affects their package, before starting the update process.

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.

Comment 1 Fedora Update System 2026-08-03 14:17:06 UTC
FEDORA-2026-f0550055a7 (pgadmin4-9.17-1.fc44) has been submitted as an update to Fedora 44.
https://bodhi.fedoraproject.org/updates/FEDORA-2026-f0550055a7

Comment 2 Fedora Update System 2026-08-03 14:17:10 UTC
FEDORA-2026-bacb14f76f (pgadmin4-9.17-1.fc43) has been submitted as an update to Fedora 43.
https://bodhi.fedoraproject.org/updates/FEDORA-2026-bacb14f76f

Comment 3 Fedora Update System 2026-08-09 00:59:12 UTC
FEDORA-2026-f0550055a7 (pgadmin4-9.17-1.fc44) has been pushed to the Fedora 44 stable repository.
If problem still persists, please make note of it in this bug report.

Comment 4 Fedora Update System 2026-08-09 01:17:46 UTC
FEDORA-2026-bacb14f76f (pgadmin4-9.17-1.fc43) has been pushed to the Fedora 43 stable repository.
If problem still persists, please make note of it in this bug report.


Note You need to log in before you can comment on or make changes to this bug.