RTSP CRLF injection in libcurl allows CURLOPT_RTSP_* values to inject commands into independent sessions
该报告还没有中文解读。
原文摘录
摘自原文(14568 字符中的一小部分)
libcurl's RTSP code interpolates the values of `CURLOPT_RTSP_STREAM_URI`, `CURLOPT_RTSP_TRANSPORT`, and `CURLOPT_RTSP_SESSION_ID` directly into the RTSP request text with no check for embedded CR/LF, so a value containing `\r\n` splits one intended RTSP operation into multiple independent RTSP …
原文中的代码
curlx_dyn_addf(&req_buffer,
"%s %s RTSP/1.0\r\n" /* Request Stream-URI RTSP/1.0 */
"CSeq: %u\r\n",
block.request, block.stream_uri, rtsp->CSeq_sent);
...
curlx_dyn_addf(&req_buffer, "Session: %s\r\n", block.session_id);默认不展示报告全文。以上为简短摘录,完整复现过程请阅读原文。版权归研究员与 curl 所有。
时间线
- 报告提交
- 公开披露
阅读 HackerOne 原文 ↗作者 @subadevan · 版权归作者与 curl 所有