报告 #3264469 - OpenSSL分配失败引发的Use After Free(或断言触发)
提交者: catenacyber
提交时间: 14天前
摘要
当某些内存分配失败时,可能触发堆Use After Free(或断言失败)。不确定是否将分配失败视为安全问题的一部分,也不确定问题是在curl还是OpenSSL中,但仍认为需要修复。
未使用AI
受影响版本
使用提交48c6927f3b708fc6b6c0cd65d7971380798c8696
复现步骤
使用 https://github.com/curl/curl-fuzzer/pull/173 并查看失败的运行
运行 FUZZ_VERBOSE=1 /out/curl_fuzzer_http repro
,其中repro为 echo AJ4AAAACfkIAAQAAAAVAMT86PQ== | base64 -d > repro
,可以看到以下堆栈跟踪:
|
|
(此处省略详细堆栈跟踪,原文中包含多个malloc失败和断言触发的调用链)
CI运行显示
|
|
(此处省略详细的AddressSanitizer输出,包括内存释放和分配的历史记录)
影响
bagder (curl staff) 评论于14天前:
感谢您的报告!我们将花时间调查您的报告,并尽快回复您详细信息和可能的后续问题!很可能在接下来的24小时内。
我们始终努力尽快修复报告的问题。低或中等严重性的问题我们会合并到普通发布周期的下一个版本中。只有更严重的问题我们可能会提前发布修复。
后续讨论摘要:
- 讨论了malloc失败的含义(返回NULL)
- 确认fuzzer可以模拟分配失败
- 发现Curl_HMAC_init中缺少错误检查
- 提出了修复方案:在hashparams->hinit调用后添加NULL检查
- 讨论了漏洞利用的可行性(认为理论上可能但实际利用困难)
- 最终将问题视为普通bug而非安全问题
- 修复PR:https://github.com/curl/curl/pull/18008
报告状态: 已公开
严重性: 无评级 (—)
弱点: Use After Free
CVE ID: 无
赏金: 无