因为Flask-CKEditor的示例程序目录下包含一个旧的requirements.txt文件,其中Flask版本被固定为0.12.2,推动代码到GitHub时,触发了内置的依赖安全提示,进而了解了一下这个关于Flask 0.12.2版本的漏洞。
漏洞描述
这个漏洞(CVE-2018-1000656)四天前(8月20号)被发布在NVD(National Vulnerability Database,国家漏洞数据库)上,漏洞描述如下:
The Pallets Project flask version Before 0.12.3 contains a CWE-20: Improper Input Validation vulnerability in flask that can result in Large amount of memory usage possibly leading to denial of service. This attack appear to be exploitable via Attacker provides JSON data in incorrect encoding. This vulnerability appears to have been fixed in 0.12.3.
大致的翻译如下:
Pallets项目组开发的Flask 0.12.3及以下版本包含CWE-20类型的漏洞:不合适的输入验证漏洞。这个漏洞将会导致大量内存占用,可能会导致拒绝服务。攻击者可以通过提供使用了错误编码的JSON数据来进行攻击。这个漏洞已经在0.12.3版本中修复(#2691)。
应对措施
$ pip install -U flask
如果你使用Pipenv,则可以使用下面的命令:
$ pipenv update flask
$ pip install flask==0.12.3
然后更新requirements.txt:
flask ~> 0.12.3
如果使用Pipenv,则使用下面的命令:
$ pipenv install flask==0.12.3
附注
- CVE(The Common Vulnerabilities and Exposures,一般漏洞及暴露)是一个漏洞数据库,由美国非营利组织MITRE维护,详情见Common Vulnerabilities and Exposures (CVE)。