🔍 CVE-2026-17349

9.6
CVSS Score
CRITICAL
2026-07-31
2026-10-23 23:10
✅ 완료

🇰🇷 한글 설명

pgAdmin 4 9.0 이상 9.17 미만의 Workspaces 기능에서 adhoc_connect_server 엔드포인트가 기존 서버를 복제할 때 소유자(user_id), 공유 상태, 저장된 데이터베이스 자격증명(password, save_password, tunnel_password)까지 그대로 복사합니다. 이로 인해 비소유자가 다른 사용자(주로 관리자)의 공유 서버에 접근하여 그 사용자의 자격증명과 권한을 이어받을 수 있습니다. CVSS 9.6의 심각한 취약점입니다.

💡 쉬운 설명

pgAdmin에서 다른 사람이 공유한 데이터베이스 연결을 복사할 때, 원래 사용자의 비밀번호와 소유권까지 함께 복사되는 문제입니다. 이를 악용하면 권한이 없는 사용자도 관리자의 데이터베이스 권한을 사용할 수 있습니다.

🇺🇸 원문 (English)

/misc/workspace/adhoc_connect_server, part of the Workspaces feature introduced in pgAdmin 4 9.0, when passed the id of an existing server, clones that server via Server.clone(), which copies every column from the source row, including user_id, shared, shared_username, and the stored credential fields password, save_password, and tunnel_password. When a non-owner triggered an adhoc connect against another user's (in practice, typically an administrator's) shared server, the clone inherited that user's ownership, shared flag, and stored database credentials verbatim. pgAdmin persisted this cross-tenant, credential-bearing server row before the connection was even attempted, so it survived even when the connection subsequently failed. The non-owner could then open the newly-owned clone and pgAdmin would connect using the source user's stored database password on the non-owner's behalf, granting the non-owner use of database credentials -- and whatever database privileges they confer -- that were never their own. Fix forces the cloned adhoc record's ownership fields (user_id, shared, shared_username) and stored credential fields (password, save_password, tunnel_password) to belong to the calling user and be cleared/private before committing, regardless of the source server's ownership, sharing state, or stored credentials. A regression test asserts that an adhoc connect triggered by a non-owner against another user's shared server persists a row owned by the caller, not shared, and without the source's stored credentials. This issue affects pgAdmin 4: from 9.0 before 9.17.

📍 영향받는 시스템

pgAdmin 4 9.0 이상 9.17 미만 버전

⚔️ 공격 벡터

일반 사용자가 관리자 등 다른 사용자의 공유 서버에 adhoc connect를 실행해 소유권과 저장된 DB 자격증명이 복제된 서버 레코드를 얻은 뒤 이를 열어 원 소유자의 권한으로 DB에 접속

🛡️ 대응 방법

pgAdmin 4를 9.17 이상으로 업그레이드하고, 그 전까지 Workspaces 기능 사용을 제한하며 공유 서버의 저장 비밀번호를 재설정

🔧 검증 코드

출력된 버전이 9.0 이상 9.17 미만이면 취약하므로 9.17 이상으로 업그레이드가 필요하며, 명령이 아무 결과도 없으면 pgAdmin이 설치되어 있지 않을 가능성이 있습니다.

Shell / Script
pgadmin4 --version 2>/dev/null || python3 -c "import importlib.metadata as m; print(m.version('pgadmin4'))" 2>/dev/null

📊 CVSS Vector String

CVSS Vector
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:N

💻 영향받는 소프트웨어

Magento Open Source