Catatan terbitan Django 1.3.4

Oktober 17, 2012

Ini adalah terbitan ke empat di seri Django 1.3.

Peracunan kepala Host

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.

Pengurai siap-pakai Django sendiri dari kepala Host, bagaimanapun, masih rentan, ketika telah dilaporkan ke kami baru-baru ini. Pengurai kepala Host di Django 1.3.3 dan Django 1.4.1 – khususnya, django.http.HttpRequest.get_host() – tidak benar menangani informasi nama pengguna/sandi di kepala. Demikian, sebagai contoh, kepala Host berikut akan diterima oleh Django ketika berjalan pada “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.

Back to Top