🇰🇷 한글 설명
pgAdmin 4의 LLM API 설정 엔드포인트에서 로컬 파일 포함(LFI) 및 서버 측 요청 위조(SSRF) 취약점이 발견되었습니다. 인증된 사용자가 검증되지 않은 api_key_file 및 api_url 설정을 악용하여 서버의 임의 파일을 읽거나 내부 네트워크로 요청을 보낼 수 있습니다.
💡 쉬운 설명
해커가 권한을 가진 상태에서 pgAdmin의 설정을 조작해 서버 내부의 중요한 파일을 훔쳐보거나, 서버를 이용해 내부 네트워크의 다른 컴퓨터에 공격을 시도할 수 있는 문제입니다.
🇺🇸 원문 (English)
Local file inclusion (LFI) and server-side request forgery (SSRF) vulnerabilities in pgAdmin 4 LLM API configuration endpoints.
User-supplied api_key_file and api_url preferences were passed to the LLM provider clients without validation. An authenticated user could read arbitrary server-side files by pointing api_key_file at any path readable by the pgAdmin process, or coerce pgAdmin into making requests to internal targets (e.g. cloud metadata services such as 169.254.169.254) by setting api_url, exploiting the chat path and model-list endpoints.
Fix restricts api_key_file to the user's private storage (server mode) or home directory (desktop mode), enforces a printable-ASCII key shape and a 1024-byte read cap, and gates api_url against a configurable allow-list (config.ALLOWED_LLM_API_URLS) at every entry point.
This issue affects pgAdmin 4: before 9.15.
📍 영향받는 시스템
pgAdmin 4 버전 9.15 미만 모든 버전
⚔️ 공격 벡터
인증된 사용자가 LLM 설정의 api_key_file 경로를 조작하여 파일을 읽거나, api_url을 내부 IP로 설정하여 SSRF 공격 수행
🛡️ 대응 방법
pgAdmin 4를 최신 버전으로 업데이트하여 파일 경로 제한 및 API URL 허용 목록(allow-list) 적용 기능을 활성화하십시오.
🔧 검증 코드
출력된 버전 번호가 9.15 미만이면 해당 취약점에 노출된 상태입니다.
pip show pgadmin4 2>/dev/null | grep -E 'Version'