POJIA破甲
地图 / OpenSSL backend: X509 peer certificate not freed in ossl_get_channel_binding causes per-request memory leak (DoS risk for long-lived clients)

OpenSSL backend: X509 peer certificate not freed in ossl_get_channel_binding causes per-request memory leak (DoS risk for long-lived clients)

拒绝服务 / 资源消耗失控 / #3373640

厂商
curl
严重程度
低危
赏金
—
弱点
资源消耗失控
研究员
@giant_anteater
披露日期
2025-10-08
资产
https://github.com/curl/curl
CVE
—

该报告还没有中文解读。

原文摘录

摘自原文(3277 字符中的一小部分)
Summary: In curl’s OpenSSL backend, `ossl_get_channel_binding` retains a new reference to the server’s X509 certificate via `SSL_get1_peer_certificate` and never releases it. When Negotiate (SPNEGO) over TLS is in use, this path is invoked and leaks one X509 object per trigger. Over many requests …
原文中的代码
  cert = SSL_get1_peer_certificate(octx->ssl);
  if(!cert) {
    /* No server certificate, don't do channel binding */
    return CURLE_OK;
  }

  if(!OBJ_find_sigid_algs(X509_get_signature_nid(cert), &algo_nid, NULL)) {
    failf(data,
          "Unable to find digest NID for certificate signature …

默认不展示报告全文。以上为简短摘录,完整复现过程请阅读原文。版权归研究员与 curl 所有。

时间线

  • 报告提交
  • 公开披露
阅读 HackerOne 原文 ↗作者 @giant_anteater · 版权归作者与 curl 所有

同类报告

DoS on PayPal via web cache poisoningPayPal · 2019-10-23 · $9,700profile-picture name parameter with large value lead to DoS for other users and programs on the platformHackerOne · 2020-03-25Denial of service to WP-JSON API by cache poisoning the CORS allow origin headerAutomattic · 2020-04-16[Urgent] Invalidating OAuth2 Bearer token makes TweetDeck unavailableX / xAI · 2019-04-25Oracle Webcenter Sites administrative and hi-privilege access available directly from the internet (/cs/Satellite)LocalTapiola · — · $18,000Denial of service via cache poisoningHackerOne · 2018-12-22 · $2,500