Kode di atas terdapat celah kerentanan karena tidak ada pemeriksaan apakah pengguna boleh mengunggah file atau tidak. Selain itu, tidak terdapat pemeriksaan file yang diunggah benar-benar aman atau berbahaya. Sehingga memungkinkan siapa saja untuk mengunggah jenis file apa pun.
Hal ini dapat memungkinkan penyerang mengunggah file untuk tujuan eksploitasi, seperti script berbahaya atau virus, yang dapat merusak atau mengambil alih kendali sistem.
Perbaikan (patch) dengan menambahkan validasi pengguna dan jenis file
Untuk menutup celah risiko arbitrary file upload, perlu ditambahkan script pengecekan pengguna yang sah (berhak untuk melakukan upload) dan pengecekan jenis file (yang dianggap berbahaya) yang tidak boleh diupload.
Dua lapis metode validasi pengguna dan file ini sudah disediakan di WordPress core API: current_user_can() dan wp_check_file_type().
Implementasinya seperti ini:
P.S.:
Snippet di atas didapat dari riset software plugin WordPress: Download Monitor