Incomplete IDN hostname check on the transfer path can lead to credential disclosure to an unintended host
该报告还没有中文解读。
原文摘录
摘自原文(14476 字符中的一小部分)
The fix that rejects URL-separator characters introduced by IDN decoding (`hostname_check()` after `host_decode()`) was applied only to the `curl_url_get()` getter path. The transfer path still IDN-decodes the URL host with libidn2 and stores the result without any `hostname_check()`. Because …
原文中的代码
import socket,threading,sys
L=('127.0.0.1',int(sys.argv[1])); LOG=sys.argv[2]
def log(m): open(LOG,'a').write(m+'\n'); print(m,flush=True)
def h(c):
b=b''
while b'\r\n\r\n' not in b:
d=c.recv(4096)
if not d: return
b+=d
line=b.split(b'\r\n',1)[0].decode(); …默认不展示报告全文。以上为简短摘录,完整复现过程请阅读原文。版权归研究员与 curl 所有。
时间线
- 报告提交
- 公开披露
阅读 HackerOne 原文 ↗作者 @christos_eth · 版权归作者与 curl 所有