FreeBSD:django -- 多种漏洞 (d01d10c7-de2d-11e0-b215-00215c6a37bb)

high Nessus 插件 ID 56187

简介

远程 FreeBSD 主机缺少一个或多个与安全有关的更新。

描述

Django 项目报告:

今天 Django 团队发布了多个版本 -- Django 1.2.6 和 Django 1.3.1 -- 以修补向我们报告的安全问题。
此外,本通告包含数个其他问题的公告,其与 Django 用户有关,Django 本身不需要进行更改。

建议所有用户皆立即升级 Django 并实现这些公告中的建议事项。会话操控 Django 的会话框架 django.contrib.sessions 可加以配置,以便使用多个后端中的任何一个作为会话数据存储空间。Django 随附的后端与 Django 的缓存框架集成,可使用缓存作为会话数据的存储空间。

以此方式使用基于内存的会话和缓存进行配置时,系统会使用会话标识符作为密钥,直接将 Django 会话存储在缓存的根命名空间中。

搭配将用户提供的数据存储在缓存中的应用程序时,这可能会导致攻击;如果攻击者可使用同时为有效会话标识符的密钥来缓存数据,则 Django 的会话框架会将该数据(只要是类似字典的对象)视为会话,因而允许攻击者只要知道会话密钥,便可将任意数据注入会话中。通过 URLField Django 模型系统发动的拒绝服务攻击会包含一个字段类型 (URLField),其会通过发出请求,验证所提供的值是否为有效 URL,以及布尔关键字参数 verify_exists 是否为 true,尝试验证所提供的 URL 是否也进行解析。

默认情况下,Python 中的基础套接字库不具有超时。这可以下列三种不同方式表现为安全问题:

- 攻击者可提供响应缓慢的 URL。每个请求都会占用一个服务器进程一段时间;如果攻击者可提出足够请求,便可占用所有可用的服务器进程。

- 攻击者可提供受其控制的 URL,且其只会无限保留开放连接。由于缺少超时,尝试验证该 URL 的 Django 进程会同样地无限旋转。重复此程序即可轻松占用所有可用的服务器进程。

- 攻击者可提供受其控制的 URL,其不只会让连接保持开放状态,且会发送不需要的无穷无尽的随机数据流。此数据会造成 Django 进程(其会将响应保留在内存中)的内存使用量无穷无尽的增长,因此不仅消耗服务器进程,也会消耗服务器内存。URLField 重定向 负责验证 URL 的正则表达式用于在发出验证所提供的 URL 是否存在的检查前,先检查该 URL,不过如果该 URL 在请求的响应中发出重定向,系统就不会对所产生的重定向 URL 进行验证,包括支持的协议(HTTP、HTTPS 和 FTP)基本检查在内。

这会建立一个让攻击者可取得信息(例如服务器配置)的小窗口;举例而言,若重定向至 file:// URL,攻击者就可知道指定的文件是否以本地方式存在于服务器上。

此外,虽然 Django 提出的初始请求对于 HTTP/HTTPS 使用 HEAD 方法,但是重定向目标的请求是使用 GET 发出。这可对隐式信任来自本地机器/网络的 GET 请求的系统造成进一步问题。主机标头缓存中毒 Django 本身(独立于开发人员)会在数个位置产生完整 URL(例如发出 HTTP 重定向时)。目前 Django 使用请求中的 HTTP 主机标头值建构 URL,其打开了潜在的缓存中毒矢量:攻击者可提交含有其所选主机标头的请求,再接收使用该主机标头建构 URL 的响应,而若系统缓存了这个响应,便会从使用含有攻击者所选主机的 URL 的缓存中提供进一步请求。

解决方案

更新受影响的程序包。

另见

http://www.nessus.org/u?938ac84a

http://www.nessus.org/u?dd32fe26

插件详情

严重性: High

ID: 56187

文件名: freebsd_pkg_d01d10c7de2d11e0b21500215c6a37bb.nasl

版本: 1.10

类型: local

发布时间: 2011/9/14

最近更新时间: 2021/1/6

支持的传感器: Nessus

漏洞信息

CPE: p-cpe:/a:freebsd:freebsd:py23-django, p-cpe:/a:freebsd:freebsd:py23-django-devel, p-cpe:/a:freebsd:freebsd:py24-django, p-cpe:/a:freebsd:freebsd:py24-django-devel, p-cpe:/a:freebsd:freebsd:py25-django, p-cpe:/a:freebsd:freebsd:py25-django-devel, p-cpe:/a:freebsd:freebsd:py26-django, p-cpe:/a:freebsd:freebsd:py26-django-devel, p-cpe:/a:freebsd:freebsd:py27-django, p-cpe:/a:freebsd:freebsd:py27-django-devel, p-cpe:/a:freebsd:freebsd:py30-django, p-cpe:/a:freebsd:freebsd:py30-django-devel, p-cpe:/a:freebsd:freebsd:py31-django, p-cpe:/a:freebsd:freebsd:py31-django-devel, cpe:/o:freebsd:freebsd

必需的 KB 项: Host/local_checks_enabled, Host/FreeBSD/release, Host/FreeBSD/pkg_info

补丁发布日期: 2011/9/13

漏洞发布日期: 2011/9/9