Heap-use-after-free in libcurl's multi event machinery (curl_multi_remove_handle() from a socket callback nested under a notify callback)
该报告还没有中文解读。
原文摘录
摘自原文(4815 字符中的一小部分)
Summary: The multi interface in libcurl 8.23.0 and current master has a reproducible use-after-free. Inside a `CURLMOPT_NOTIFYFUNCTION` callback, calling `curl_easy_pause()` on a second transfer that is still in flight re-enters libcurl's event handling and invokes the socket callback, where a …
原文中的代码
#include <curl/curl.h>
#include <arpa/inet.h>
#include <sys/select.h>
#include <stdio.h>
#include <string.h>
static CURLM *m; static CURL *a, *b; static curl_socket_t fd[8]; static int act[8], run = 1, ntfy, gone, nf;
static size_t wr(char *p, size_t s, size_t n, void *u){ (void)p; (void)u; return …默认不展示报告全文。以上为简短摘录,完整复现过程请阅读原文。版权归研究员与 curl 所有。
时间线
- 报告提交
- 公开披露
阅读 HackerOne 原文 ↗作者 @soop-ost · 版权归作者与 curl 所有