Debian DLA-143-1:python-django 安全性更新

medium Nessus Plugin ID 82126

概要

遠端 Debian 主機缺少一個安全性更新。

說明

在 Django 中發現多個安全性問題:
https://www.djangoproject.com/weblog/2015/jan/13/security/

針對 Debian 6 Squeeeze,這些問題已在 python-django 的 1.2.3-3+squeeze12 版本中修正。此處為上游開發人員針對這些問題的說明:

CVE-2015-0219 - 透過底線/虛線合併發生的 WSGI 標頭偽造

將 HTTP 標頭置入 WSGI 環境中時,系統會將其標準化,將字母轉換為大寫形式,將所有虛線轉換為底線,並在前面加上 HTTP_。例如,在 WSGI environ 中 (因此在 Django 的 request.META 字典中亦同),標頭 X-Auth-User 會變成 HTTP_X_AUTH_USER。

但問題在於,這表示 WSGI 環境無法辨別含有虛線的標頭和含有底線的標頭:X-Auth-User 和 X-Auth_User 都會變成 HTTP_X_AUTH_USER。這就代表,以顧慮安全性的方式使用標頭時 (例如從前端 proxy 傳遞驗證資訊),即使 proxy 謹慎去除 X-Auth-User 的所有傳入值,攻擊者仍可提供 X-Auth_User 標頭 (含底線) 並繞過這個保護機制。

為防止這類攻擊,Nginx 和 Apache 2.4+ 都預設為去除傳入要求中所有含有底線的標頭。Django 的內建開發伺服器現在也會執行相同程序。Django 的開發伺服器不建議用於生產,不過符合常見生產伺服器的行為可降低開發期間行為變更的影響面。

CVE-2015-0220 - 可能透過使用者提供的重新導向 URL 發動 XSS 攻擊

Django 在某些情況下會依賴使用者輸入 (例如
django.contrib.auth.views.login() 和 i18n) 將使用者重新導向至「on success」URL。這些重新導向的安全性檢查 (亦即 django.util.http.is_safe_url()) 並未去除受測試 URL 開頭的空格,因而會將類似 ‘\njavascript:...’ 的 URL 視為安全的 URL。
如果開發人員依賴 is_safe_url() 提供安全重新導向目標,並將這類 URL 放入連結中,就可能會遭受 XSS 攻擊。此錯誤目前不會影響 Django,因為我們只將這個 URL 放入 Location 回應標頭中,且瀏覽器似乎會忽略 JavaScript。

CVE-2015-0221 - 針對 django.views.static.serve 的拒絕服務攻擊

在舊版 Django 中,django.views.static.serve() 檢視會以一次一行的方式讀取其服務的檔案。因此,沒有任何新行的大型檔案會導致記憶體使用量等於該檔案的大小。
攻擊者可惡意利用此問題,藉由同時要求多個大型檔案來發動拒絕服務攻擊。此檢視現在能以區塊為單位讀取檔案,防止出現大記憶體使用量。

不過請注意,此檢視一律會出現一個警告,說明其並未針對生產用途進行增強,只應作為開發協助工具使用。若您尚未採取行動,現在正是時候,請使用真正的前端 web 伺服器稽核您的專案,並供生產中的檔案使用。

請注意,Debian 6 Squeeze 中目前使用的 Django 版本並未受到 CVE-2015-0222 (ModelMultipleChoiceField 資料庫拒絕服務) 影響,因為此版本中不存在該功能。

注意:Tenable Network Security 已直接從 DLA 安全性公告擷取前置描述區塊。Tenable 已盡量在不造成其他問題的前提下,嘗試自動清理並將其格式化。

解決方案

升級受影響的 python-django 和 python-django-doc 套件。

另請參閱

https://lists.debian.org/debian-lts-announce/2015/01/msg00017.html

https://packages.debian.org/source/squeeze-lts/python-django

https://www.djangoproject.com/weblog/2015/jan/13/security/

Plugin 詳細資訊

嚴重性: Medium

ID: 82126

檔案名稱: debian_DLA-143.nasl

版本: 1.8

類型: local

代理程式: unix

已發布: 2015/3/26

已更新: 2021/1/11

支援的感應器: Frictionless Assessment Agent, Nessus Agent, Agentless Assessment, Nessus

風險資訊

VPR

風險因素: Medium

分數: 4.2

CVSS v2

風險因素: Medium

基本分數: 5

時間分數: 3.7

媒介: CVSS2#AV:N/AC:L/Au:N/C:N/I:P/A:N

弱點資訊

CPE: p-cpe:/a:debian:debian_linux:python-django, p-cpe:/a:debian:debian_linux:python-django-doc, cpe:/o:debian:debian_linux:6.0

必要的 KB 項目: Host/local_checks_enabled, Host/Debian/release, Host/Debian/dpkg-l

可輕鬆利用: No known exploits are available

修補程式發佈日期: 2015/1/29

弱點發布日期: 2015/1/16

參考資訊

CVE: CVE-2015-0219, CVE-2015-0220, CVE-2015-0221

BID: 72078, 72079, 72081