🔍 CVE-2026-12050

4.3
CVSS Score
MEDIUM
2026-06-19
2026-10-25 23:10
✅ 완료

🇰🇷 한글 설명

pgAdmin 4의 이름 지정 복구 지점 엔드포인트에서 SQL 인젝션 취약점이 발견되었습니다. 사용자 입력값이 바인딩된 파라미터가 아닌 str.format()을 통해 SQL 문자열에 직접 삽입되어, 인증된 사용자가 추가적인 SQL 문을 실행할 수 있습니다. 다만, 이는 사용자가 이미 보유한 데이터베이스 권한 내에서만 동작하므로 권한 상승으로 이어지지는 않습니다.

💡 쉬운 설명

pgAdmin 4를 사용하는 사용자가 원래 허용된 기능 외에 몰래 다른 데이터베이스 명령어를 실행할 수 있는 보안 약점이 있습니다. 이미 데이터베이스에 접속 권한이 있는 사람이 사용하는 것이라 위험도가 아주 높지는 않지만, 보안 규칙을 우회할 수 있는 통로가 될 수 있습니다.

🇺🇸 원문 (English)

SQL injection in pgAdmin 4's named restore point endpoint (POST /browser/server/restore_point/{gid}/{sid}). The user-supplied 'value' field was interpolated directly into the SQL string with str.format() instead of being passed as a bound parameter, allowing an authenticated pgAdmin user with a connected PostgreSQL session to inject additional statements through that endpoint. The injected SQL executes under the database role the user is already authenticated as. The defect does not cross a privilege boundary -- the user already has direct SQL access to that role through the Query Tool -- so the attacker gains no capability beyond what their database role already grants them. The marginal impact accounts for the fact that the injection path is not the documented SQL-execution interface, so a deployment that gates the Query Tool at the application layer could see SQL executed through a path it did not anticipate. Fix passes the restore point name as a bound parameter and schema-qualifies the function call as pg_catalog.pg_create_restore_point so a non-default search_path on the connection cannot redirect the call to a shadow definition. A regression test asserts the value arrives as a bound parameter and not spliced into the SQL string. This issue affects pgAdmin 4: from 1.0 before 9.16.

📍 영향받는 시스템

pgAdmin 4: 1.0 버전부터 9.16 미만 버전

⚔️ 공격 벡터

인증된 사용자가 특정 API 엔드포인트(POST /browser/server/restore_point/{gid}/{sid})의 'value' 필드에 악의적인 SQL 구문을 삽입하여 공격

🛡️ 대응 방법

pgAdmin 4를 최신 버전으로 업데이트하여 입력값이 바인딩된 파라미터로 처리되도록 수정된 패치를 적용하십시오.

🔧 검증 코드

출력된 pgAdmin 4의 버전이 9.16 이상인지 확인하여 취약 여부를 판단합니다.

Shell / Script
pip show pgadmin4 2>/dev/null | grep Version || dpkg -l | grep pgadmin4

📊 CVSS Vector String

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

💻 영향받는 소프트웨어

PostgreSQL