libssh SFTP initialization ignores CURLOPT_TIMEOUT, hangs indefinitely
拒绝服务 / Allocation of Resources Without Limits or Throttling / #3735080
该报告还没有中文解读。
原文摘录
摘自原文(12402 字符中的一小部分)
The libssh backend in `lib/vssh/libssh.c` ignores `CURLOPT_TIMEOUT` / `--max-time` during SFTP subsystem negotiation. A server that completes SSH authentication and then stalls before answering the `SSH_FXP_INIT` packet will pin the curl process indefinitely — no timeout fires, no error is …
原文中的代码
static int myssh_in_SFTP_INIT(struct Curl_easy *data,
struct ssh_conn *sshc)
{
int rc;
ssh_set_blocking(sshc->ssh_session, 1); /* blocking ON */
sshc->sftp_session = sftp_new(sshc->ssh_session); /* blocking */
if(!sshc->sftp_session) {
failf(data, …默认不展示报告全文。以上为简短摘录,完整复现过程请阅读原文。版权归研究员与 curl 所有。
时间线
- 报告提交
- 公开披露
阅读 HackerOne 原文 ↗作者 @giant_anteater · 版权归作者与 curl 所有