参考PoC资料:自建docker DNS服务器,并验证可以触发Assertion,导致服务器停止运行,仅限教学用:
https://github.com/knqyf263/CVE-2020-8617
参考价值较高的漏洞分析原文资料:
https://kb.isc.org/docs/cve-2020-8617
影响:CVE-2020-8617是由检查TSIG合理性的验证代码中的逻辑错误引发的,攻击者可以通过精心构造的payload触发tsig.c文件的失败断言,导致拒绝服务攻击。
披露时间:2020年5月19日
受影响范围:BIND 9.00 至 9.11.18 BIND 9.12.0 至 9.1.4-P2, BIND 9.14.0 至 9.14.11,BIND 9.16.0 至 9.16.2,BIND 9.14.0 至 9.1.11 9.16.0至9.16.2 以及其他release版本如:9.17.0 至 9.17.1,还有其他release版本 如 9.13 至9.15,9.9.3S1 至 9.11.18-S1
修复方式:
目前官方给出的修复方式只有两个:
1. 升级到最近的版本:9.11.19,9.14.12,9.16.3 三个版本。
2. 打补丁,但是目前还没有查询到。
然后提到了一些问答:
1) 你的BIND 9 服务器是否有可能运行加载TSIG的key?
至少在此文章发布前,所有BIND 9 版本都包含了TSIG密钥,并自动加载到配置文件中。
2) 如何确认TSIG密钥在配置文件中的位置:
有两种方式查看:2.1 在配置文件中的key{} 符号,通常情况下,如果你直接在name.conf文件中或者其他包含文件中,
2.2 你使用了update-policy local命令,自动化生成了session key,并且时刻自动更新。