WebSocket send queue use-after-free during nested curl_ws_send()
该报告还没有中文解读。
原文摘录
摘自原文(2359 字符中的一小部分)
At `lib/ws.c:1734`, `ws_flush()` borrows a pointer from the outgoing `sendbuf` and passes it to `ws_send_raw_blocking()`; it skips those bytes only after the send returns. A `curl_ws_send()` from the WebSocket write callback can be interrupted by a TCP-trace debug callback that calls …
原文中的代码
POC=/absolute/path/to/h1-attachments git checkout curl-8_23_0 cmake -S . -B bld-asan -DBUILD_SHARED_LIBS=OFF -DBUILD_STATIC_LIBS=ON -DENABLE_DEBUG=OFF -DCURL_DISABLE_VERBOSE_STRINGS=OFF -DCMAKE_C_FLAGS="-fsanitize=address -fno-omit-frame-pointer -g" cmake --build bld-asan --target …
默认不展示报告全文。以上为简短摘录,完整复现过程请阅读原文。版权归研究员与 curl 所有。
时间线
- 报告提交
- 公开披露
阅读 HackerOne 原文 ↗作者 @rat5ak · 版权归作者与 curl 所有