Rilis keamanan Desember 2021/Pertanyaan umum

From mediawiki.org
This page is a translated version of the page 2021-12 security release/FAQ and the translation is 100% complete.

Serangkaian kelemahan telah ditemukan di MediaWiki yang memungkinkan penyerang membocorkan isi halaman dari wiki pribadi dan mengabaikan izin penyuntingan. Vektor utama untuk kebocoran ini adalah menggunakan tindakan berisiko di halaman yang dicantumkan di $wgWhitelistRead dan dapat diakses secara publik. MediaWiki sekarang hanya membuat tindakan "view" bisa diakses secara publik di halaman dalam $wgWhitelistRead secara bawaan. Masalah ini telah diperbaiki di 1.35.5, 1.36.3, dan 1.17.1, lihat pengumuman untuk pranala ke tarball dan tambalannya.

Apa saja masalahnya?

  • CVE-2021-44858: Fitur "balikkan" (action=edit&undo=##&undoafter=###) memungkinkan penyerang melihat isi sembarang revisi, meskipun mereka tidak punya izin untuk melakukan hal tersebut. Ini juga ditemukan dalam tindakan "mcrundo" dan "mcrrestore" (action=mcrundo dan action=mcrrestore).
  • CVE-2021-45038: Fitur "rollback" (action=rollback) bisa digunakan dengan parameter yang dibuat secara khusus untuk memungkinkan penyerang membaca konten sembarang halaman, sekalipun mereka tidak punya izin untuk melakukan hal tersebut.
  • CVE-2021-44857: Tindakan "mcrundo" dan "mcrrestore" (action=mcrundo dan action=mcrrestore) tidak memeriksa izin penyuntingan, dan memungkinkan penyerang mengambil konten dari sembarang revisi dan menyimpannya di halaman mana pun yang dia pilih. Ini mempengaruhi wiki publik ataupun halaman publik di wiki pribadi.

Saya tidak punya waktu untuk menambalnya, bagaimana cara mematikannya saja?

Tambahkan ini ke LocalSettings.php Anda:

$wgActions['mcrundo'] = false;
$wgActions['mcrrestore'] = false;

Jika wiki Anda pribadi (harus masuk log untuk membaca halaman), Anda juga harus mengatur:

$wgWhitelistRead = [];
$wgWhitelistReadRegexp = [];

Ini seharusnya mematikan seluruh kode yang lemah. Perubahan ini juga akan bekerja pada versi MediaWiki lemah yang sudah kedaluwarsa dan tidak punya tambalan.

Jika Anda menggunakan $wgWhitelistRead untuk memungkinkan pengguna di luar log untuk melihat halaman utama dengan teks bantuan, Anda sebaiknya memindahkan teks bantuan tersebut ke pesan MediaWiki:Loginreqpagetext, yang ditampilkan ketika galat "wajib masuk log".

Apakah saya terpengaruh?

Jika Anda menggunakan ekstensi seperti Lockdown atau Whitelist Pages untuk membuat beberapa halaman tidak bisa dibaca oleh beberapa pengguna, Anda kemungkinan juga terpengaruh.

Versi apa saja yang terpengaruh?

Semua versi MediaWiki sejak 1.23.0 sampai 1.34.x, dan 1.35.x, 1.36.x, 1.37.x sebelum diperbaiki (lihat bagian paling atas), lemah terhadap serangan pengabaian izin membaca wiki pribadi (CVE-2021-44858, CVE-2021-45038).

Semua versi MediaWiki sejak 1.32.0 lemah terhadap serangan pengabaian izin menyunting (CVE-2021-44857).

Bagaimana ini diperbaiki secara jangka panjang?

Semua tindakan kecuali "view" sekarang mewajibkan hak pengguna eksplisit "read". Ini mirip dengan pemeriksaan izin yang digunakan di API Action dan REST. Jika kelemahan lebih lanjut ditemukan dalam tindakan, paling tidak kelemahan tersebut tidak akan bisa dimanfaatkan oleh pengguna di luar log di wiki pribadi.

Tindakan yang harus bisa digunakan di halaman $wgWhitelistRead bisa mengabaikan fungsi Action::needsReadRight() baru.

Bagaimana cara melihat apakah seseorang telah memanfaatkan kelemahan itu di wiki saya?

Cari action=mcrundo atau action=mcrrestore di log akses Anda. Kecuali jika Anda secara spesifik menyalakan ekstensi yang menggunakan revisi multikonten, tidak ada penggunaan yang dibenarkan untuk kedua tindakan tersebut.

Selain itu, cari permintaan action=edit&undo=###&undoafter=### dan periksa apakah ID revisinya adalah milik judul yang berbeda dengan halaman yang sedang disunting.

Untuk kutu rollback, cari action=rollback&from=... yang parameter "from"-nya berisi transklusi templat (contohnya, from={{:halaman pribadi}}).

Kutu ini tidak menyebabkan kehilangan data, jadi semua tindakan menulis yang penyerang lakukan akan direkam di riwayat halaman layaknya suntingan biasa.

Kredit

Masalah ini ditemukan oleh Dylsss, terima kasih banyak kepadanya karena telah mengidentifikasi dan melaporkan masalah tersebut. Jika Anda menemukan sebuah kutu di MediaWiki, tolong lihat proses untuk melaporkan kutu keamanan.