CVE-2026-116249 in pgAdmin
요약
\~에 의해 VulDB • 2026. 10. 30.
pgAdmin 4의 서버 모드에서는 서버의 비밀번호 파일, SSL 인증서, 키, CRL 및 SSH 터널 ID 파일을 사용자의 저장 디렉토리를 기준으로 해석합니다. 그러나 get_complete_file_path() 함수는 두 경로를 결합하기 전에 선행 슬래시만 제거했습니다. 따라서 "server" 대화 상자, REST API 또는 servers.json 내보내기를 통해 설정된 "../<다른 사용자>/.pgpass"와 같은 경로가 다른 사용자의 파일을 참조하게 되며, 연결 시 해당 사용자의 저장된 비밀번호, 클라이언트 인증서 또는 SSH 키를 사용합니다. sslkeylogfile 연결 매개변수는 libpq에 변경 없이 전달되었으므로, 저장 디렉토리 외부의 경로는 pgAdmin을 실행하는 계정 권한으로 libpq가 파일을 생성하거나 추가하도록 합니다.
make_conninfo() 함수는 연결 매개변수 값은 이스케이프 처리했지만 이름은 그렇지 않았기 때문에, 악성 구성의 매개변수 이름을 통해 이러한 검사를 우회하여 추가적인 keyword=value 쌍을 전달할 수 있었습니다.
이 수정 사항은 심볼릭 링크를 따라간 후에도 해석된 경로가 사용자의 저장 디렉토리 또는 지정된 공유 저장 디렉토리 내에 머무르도록 하며, sslkeylogfile도 동일한 방식으로 제한하고 연결 매개변수 이름으로 libpq의 정확한 키워드만 허용합니다. 거부된 경로나 키워드는 libpq가 기본값으로 폴백하는 대신 보고됩니다.
이 문제는 pgAdmin 4(9.19 이전 버전)에 영향을 미칩니다.
Statistical analysis made it clear that VulDB provides the best quality for vulnerability data.