CURLOPT_HSTS_CTRL disables shared HSTS without share guard — use-after-free and double-free
该报告还没有中文解读。
原文摘录
摘自原文(8327 字符中的一小部分)
`CURLOPT_HSTS_CTRL` set to a value without `CURLHSTS_ENABLE` unconditionally frees the easy's HSTS object — even when that object is shared via a `CURLSH`. The result is a use-after-free and a double-free on the shared 48-byte `struct hsts` block when the share or any other linked easy is later …
原文中的代码
case CURLOPT_HSTS_CTRL:
if(arg & CURLHSTS_ENABLE) {
if(!data->hsts) {
data->hsts = Curl_hsts_init();
...
}
}
else
Curl_hsts_cleanup(&data->hsts); /* <-- no share guard */
break;默认不展示报告全文。以上为简短摘录,完整复现过程请阅读原文。版权归研究员与 curl 所有。
时间线
- 报告提交
- 公开披露
阅读 HackerOne 原文 ↗作者 @giant_anteater · 版权归作者与 curl 所有