Katalog CVE

CVE-2026-17347

WysokieCVSS 7.5
Opublikowano: Zaktualizowano: Przetłumaczono: NVD NIST

Prawdopodobieństwo exploitacji (EPSS)

Niskie ryzyko
0.27%

Percentyl 19 - wyżej niż 19% wszystkich znanych CVE

Streszczenie

W pgAdmin 4 od wersji 7.2 do 9.17, ustawienie MASTER_PASSWORD_HOOK pozwalało na wstrzyknięcie poleceń powłoki przez nazwę użytkownika zawierającą znaki specjalne (np. ';', '$()', backticks). Nazwa użytkownika pochodząca z zewnętrznych źródeł autoryzacji (OAuth, Kerberos) mogła być wykorzystana do wykonania dowolnych poleceń jako konto usługi pgAdmin.

Ocena ryzyka

Uwierzytelniony użytkownik może przejąć kontrolę nad serwerem pgAdmin, wykonując dowolne polecenia w kontekście konta usługi, co prowadzi do pełnej kompromitacji systemu i danych.

Rekomendacja

Niezwłocznie zaktualizuj pgAdmin 4 do wersji 9.17 lub nowszej. Jeśli używasz MASTER_PASSWORD_HOOK, przenieś logikę powłoki (potoki, przekierowania) do skryptu wywoływanego przez hak.

Inne podatności w pgAdmin 4

Zobacz wszystkie
Oryginalny opis (angielski, źródło NVD)

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.

Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS