Django 2.2.22 release notes

2021 年 5 月 6 日

Django 2.2.22 fixes a security issue in 2.2.21.

CVE-2021-32052:在 Python 3.9.5 以上版本中,URLValidator 接受了输入中的换行符,因此存在注入头的可能性

在 Python 3.9.5+ 上,URLValidator 没有禁止换行和制表符。如果你在 HTTP 响应中使用带换行符的值,你可能会遭受头注入攻击。Django 本身没有漏洞,因为 HttpResponse 禁止在 HTTP 头中使用换行符。

此外,使用 URLValidatorURLField 表单字段在 Python 3.9.5+ 上默默地删除了换行符和制表符,所以只有在你在表单字段之外使用这个验证器时才存在换行符进入你的数据的可能性。

这个问题是由 bpo-43882 修正所引入的。