报告 #3295650 - curl源码仓库中硬编码私钥与凭证的暴露(CWE-321)
提交者: spectre-1
提交时间: 7小时前
在公开的curl源码仓库及相关文档中发现嵌入多个私有/测试RSA密钥和示例凭证。这些敏感密钥通过自动化工具(gitleaks)和人工审查检测到。若被攻击者重用,可能伪装受信任的curl基础设施、解密流量或渗透构建/CI系统,造成严重的供应链风险。此类暴露还可能违反合规要求(如GDPR、PCI-DSS、HIPAA),并削弱对开源版本的信任。
本报告(包括验证步骤和分析)使用AI安全助手准备,以确保全面和可重现的结果。
受影响版本
确认于2025年8月的curl主分支,在Linux和macOS的早期标签(≥7.80.0)中也观察到。测试示例版本:
curl 8.1.2 (x86_64-pc-linux-gnu) libcurl/8.1.2 OpenSSL/3.0.7 zlib/1.2.13 brotli/1.0.9 zstd/1.5.2 libidn2/2.3.4 nghttp2/1.51.0
发布日期:2023-06-12
协议:dict file ftp ftps gopher gophers http https imap imaps mqtt pop3 pop3s rtmp rtsp smb smbs smtp smtps telnet tftp ws wss
平台:Linux 5.15.0-83-generic x86_64
重现步骤
- 克隆curl仓库:
git clone https://github.com/curl/curl.git - 运行密钥扫描工具(例如:
gitleaks detect --source=.)识别硬编码密钥。 - 或使用以下命令搜索可能的私钥和凭证字符串:
grep -r '-----BEGIN' ./tests/
grep -r 'password' ./docs/examples/ - 审查识别出的文件以确认完整私钥或功能凭证示例的存在,例如
tests/data/testprivkey.pem或docs/examples/http-auth-example.txt。 - 查看
.gitleaks/report.json获取综合发现报告。
支持材料/参考
- 示例证据:
tests/data/testprivkey.pem包含完整私钥 - 示例证据:
docs/examples/http-auth-example.txt带有明文凭证 - 完整扫描日志:
.gitleaks/report.json(通过gitleaks生成) - curl/curl GitHub仓库
- 截图证据(根据请求提供)
严重性: 严重 / CWE-321(使用硬编码加密密钥)
影响摘要
此漏洞的安全影响严重且多面:
- 伪装与权限提升:攻击者可使用泄露的私钥伪装curl服务、开发者或自动化系统,获取对受保护基础设施或代码签名过程的未授权访问。
- 数据解密:如果任何暴露的密钥曾在(或正在)生产中使用,攻击者可解密敏感流量或文件,导致数据泄露。
- 凭证填充与服务劫持:暴露的示例/测试凭证可能在生产或CI/CD中重用,允许攻击者在目标环境中渗透和提升访问权限。
- 供应链攻击:恶意行为者可能利用敏感密钥注入或分发恶意curl/libcurl构建,或污染官方版本。
- 法规与合规风险:此级别的暴露可能触发强制性的违规报告和法律或监管行动,尤其对受合规标准约束的下游消费者。
总之:此问题使攻击者能够破坏对curl项目的信任,大规模攻击用户和下游集成,并可能将持久、难以检测的威胁引入开源供应链和全球软件生态系统。
时间线
-
bagder (curl staff) 关闭报告并将状态改为“不适用”。7小时前
-
bagder (curl staff) 请求披露此报告。7小时前
-
bagder (curl staff) 披露此报告。7小时前
-
spectre-1 发表评论。7小时前
-
bagder (curl staff) 发表评论。7小时前
-
curl 锁定此报告。7小时前
报告详情
- 报告时间:2025年8月12日,8:28am UTC
- 报告者:spectre-1
- 报告对象:curl
- 参与者:无
- 报告ID:#3295650
- 严重性:严重(9~10)
- 披露时间:2025年8月12日,8:33am UTC
- 弱点:使用硬编码加密密钥
- CVE ID:无
- 赏金:隐藏
- 账户详情:无