HTTP/3 paused transfer buffers incoming data without bound up to ~1 GiB
拒绝服务 / Allocation of Resources Without Limits or Throttling / #3734947
该报告还没有中文解读。
原文摘录
摘自原文(8148 字符中的一小部分)
When a libcurl application's `CURLOPT_WRITEFUNCTION` returns `CURL_WRITEFUNC_PAUSE`, libcurl routes subsequent incoming body data through `cw-pause` (`lib/cw-pause.c`). The `bufq` inside `cw-pause` is initialised with `BUFQ_OPT_SOFT_LIMIT` and a chunk size of 16 KiB (`lib/cw-pause.c:51-52`), which …
原文中的代码
/* lib/vquic/curl_ngtcp2.c:2119-2129 */
static CURLcode h3_data_pause(struct Curl_cfilter *cf,
struct Curl_easy *data,
bool pause)
{
/* There seems to exist no API in ngtcp2 to shrink/enlarge the streams
* windows. As we do in HTTP/2. …默认不展示报告全文。以上为简短摘录,完整复现过程请阅读原文。版权归研究员与 curl 所有。
时间线
- 报告提交
- 公开披露
阅读 HackerOne 原文 ↗作者 @giant_anteater · 版权归作者与 curl 所有