Django SQL注入缝隙风险公告

颁布功夫 2020-02-13

缝隙编号和级别


CVE编号:CVE-2020-7471,,,,,,,,危险级别:严沉,,,,,,,,CVSS分值:9.8


影响版本


Django 1.11.x < 1.11.28

Django 2.2.x < 2.2.10

Django 3.0.x < 3.0.3

Django 主开发分支


缝隙概述


Django是Django基金会的一套基于Python说话的开源Web利用框架。。。。。。。该框架蕴含面向对象的映射器、视图系统、模板系统等。。。。。。。


近日,,,,,,,,Django官方颁布安全公告颁布了一个通过StringAgg(分隔符)实现利用的潜在SQL注入缝隙。。。。。。。攻击者可通过机关分隔符传递给聚合函数contrib.postgres.aggregates.StringAgg,,,,,,,,从而绕过转义并注入恶意SQL语句。。。。。。。


有关用户可通过版本检测的步骤判断当前利用是否存在风险。。。。。。。在号令行输入 python。。。。。。。而后在 Python 提醒符下输入下列号令,,,,,,,,可查看当前Django版本信息。。。。。。。若Django版本在受影响领域内,,,,,,,,且使用的数据库为PostgreSQL,,,,,,,,则存在此缝隙的安全风险。。。。。。。


>>> import django

>>> django.get_version()


或者,,,,,,,,此缝隙是由于聚合函数StringAgg导致,,,,,,,,若Django版本在受影响领域内,,,,,,,,且使用了该聚合函数,,,,,,,,则可能存在安全风险。。。。。。�??? ??? ?⑷嗽笨勺孕信挪槭欠袷褂昧讼铝泻�。。。。。。。StringAgg函数,,,,,,,,是PostgreSQL数据库中将表白式造成字符串的聚合函数,,,,,,,,可实现多行拼接,,,,,,,,利用宽泛。。。。。。。


django.contrib.postgres.aggregates.StringAgg。。。。。。。


缝隙验证


暂无POC/EXP。。。。。。。


建复建议


Django 官方已经颁布新版本建复了上述缝隙,,,,,,,,请受影响的用户尽快升级进行防护。。。。。。。


Django 1.11.28下载地址:https://www.djangoproject.com/m/releases/1.11/Django-1.11.28.tar.gz

Django 2.2.10 下载地址:https://www.djangoproject.com/m/releases/2.2/Django-2.2.10.tar.gz

Django 3.0.3下载地址:https://www.djangoproject.com/m/releases/3.0/Django-3.0.3.tar.gz


若使用 pip 装置 Django,,,,,,,,可通过 --upgrade 或 -U 来实现此操作:


$ pip install -U Django


版本更新操作可参考下列链接:


https://docs.djangoproject.com/zh-hans/2.2/howto/upgrade-version


参考链接


https://www.djangoproject.com/weblog/2020/feb/03/security-releases