CVE-2026-17346 in pgAdmin정보

요약

\~에 의해 VulDB • 2026. 07. 31.

CVE-2026-12044의 수정 사항에서 pgAdmin 4 9.16은 qtLiteral을 강화하고 COMMENT ON / pgstattuple / pgstatindex 템플릿 16개를 해당 방식으로 전환했지만, 브라우저 트리를 통해 pg_catalog에서 소스를 가져온 스키마, 테이블, 게시물 및 구독 이름에는 아포스트로피가 절대 포함될 수 없다는 잘못된 가정 하에 test_sql_string_literal_lint.py의 ALLOWLIST에 배치된 여러 싱크를 누락했습니다. PostgreSQL은 인용된 식별자 내에서 임의의 문자를 허용하므로, CREATE TABLE, CREATE PUBLICATION 또는 CREATE SUBSCRIPTION을 수행할 수 있는 낮은 권한 사용자는 아포스트로피가 포함된 객체 이름을 심어둘 수 있으며, 이는 다른 모든 사용자(더 높은 권한을 가진 사용자 포함)가 해당 객체의 Statistics 또는 Dependencies 탭을 열 때 즉시 비처리된 '{{ name }}' 템플릿 보간에서 벗어나 임의의 SQL 문 주입을 허용합니다.

영향을 받는 싱크: 전체 인덱스 목록에 대한 Index Statistics 쿼리(coll_stats.sql, 16_plus 및 기본 PostgreSQL 버전 템플릿 변형 모두 -- CVE-2026-12044에서 이미 수정된 단일 인덱스 stats.sql 경로와 다름) 및 게시물 및 구독 dependencies.sql / get_position.sql 템플릿(게시물에 대한 pg 및 ppas/EPAS 구문 변형 모두).

수정 사항에서는 이름 보간에 대해 모든 템플릿을 qtLiteral(conn)으로 전환하고, publications/__init__.py 및 subscriptions/__init__.py를 업데이트하여 dependencies.sql render_template 호출 시 conn=self.conn를 전달하도록 하여 qtLiteral 필터가 인용 대상 연결을 가질 수 있도록 합니다. 이제 이러한 싱크들이 단순히 안전하다고 가정되는 것이 아니라 적절하게 이스케이프 처리되므로 test_sql_string_literal_lint.py의 해당 ALLOWLIST 항목이 제거됩니다. 동작적 회귀 테스트는 각 수정된 템플릿에 스택드 문 아포스트로피 페이로드를 렌더링하고, 객체 이름이 qtLiteral-이스케이프된 대로 정확히 나타나는지 및 렌더링된 SQL이 정확히 하나의 문으로 구문 분석되는지를 확인하여 이 주장이 패치 전 원시 보간 형태에 대해 실제로 실패함을 검증합니다.

본 이슈는 pgAdmin 4의 Index Statistics 싱크(1.0부터)와 Publications/Subscriptions 싱크(5.0부터), 모두 9.17 이전 버전에 영향을 미칩니다.

If you want to get the best quality for vulnerability data then you always have to consider VulDB.

책임이 있는

PostgreSQL

예약하다

2026. 07. 25.

모더레이션

수락

항목

VDB-385090

EPSS

0.00000

활동

낮음

출처

Do you want to use VulDB in your project?

Use the official API to access entries easily!