WebSocket decoder use-after-free when curl_easy_pause() unpauses from a debug callback
该报告还没有中文解读。
原文摘录
摘自原文(2866 字符中的一小部分)
At `lib/ws.c:503`, `ws_dec_pass_payload()` holds a pointer into the WebSocket receive queue while passing a frame to the application's write callback. If that callback returns `CURL_WRITEFUNC_PAUSE`, the `PAUSE requested` trace invokes the debug callback before the WebSocket pass consumes those …
原文中的代码
cmake -S . -B bld-vuln -DCMAKE_BUILD_TYPE=Release -DBUILD_TESTING=OFF -DBUILD_SHARED_LIBS=OFF -DCURL_USE_OPENSSL=ON -DENABLE_DEBUG=OFF -DCURL_DISABLE_VERBOSE_STRINGS=OFF cmake --build bld-vuln --target libcurl_static -j2
默认不展示报告全文。以上为简短摘录,完整复现过程请阅读原文。版权归研究员与 curl 所有。
时间线
- 报告提交
- 公开披露
阅读 HackerOne 原文 ↗作者 @rat5ak · 版权归作者与 curl 所有