Oktober 17, 2012
Ini adalah terbitan ke empat di rangkaian Django 1.3.
Beberapa bagian dari Django -- berdiri sendiri dari aplikasi ditulis-pengguna-akhir -- menggunakan URL penuh, termasuk nama ranah, yang dibangkitkan dari kepala HTTP Host. Beberapa serangan terhadap ini adalah diluar kemampuan Django untuk mengendalikan, dan membutuhkan peladen jaringan untuk secara benar dikonfigurasikan; Dokumentasi Django mempunyai untuk terkadang mengandung catatan menganjurkan pengguna pada konfigurasi tersebut.
Django's own built-in parsing of the Host header is, however, still vulnerable,
as was reported to us recently. The Host header parsing in Django 1.3.3 and
Django 1.4.1 -- specifically, django.http.HttpRequest.get_host()
-- was
incorrectly handling username/password information in the header. Thus, for
example, the following Host header would be accepted by Django when running on
validsite.com
:
Host: validsite.com:random@evilsite.com
Menggunakan ini, seorang penyerang dapat menyebabkan bagian dari Django -- terutama mekanisme setel kembali sandi -- untuk membangkitkan dan menampilkan URL berubah-ubah kepada pengguna.
Untuk memperbaiki ini, mengurai di HttpRequest.get_host()
sedang dirubah; kepala Host yang mengandung isi kemungkinan berbahaya (seperti pasangan nama pengguna/sandi) sekarang memunculkan pengecualian django.core.exceptions.SuspiciousOperation
.
Rincian dari masalah secara inisial ditempatkan daring seperti security advisory.
Agu 03, 2022