Apa yang terjadi
CVE-2026-124424 (CVSS 7.1, CWE-22) — path traversal di WWBN/AVideo plugin/AI/receiveAsync.json.php. Endpoint tersebut menyetel bypassSameDomainCheck dan tidak melakukan validasi sesi/kepemilikan; di cabang type=translation, response[lang] yang dikendalikan pengguna diteruskan tanpa sanitasi ke getVTTPaths(), sehingga payload traversal di lang menulis konten yang dikendalikan penyerang ke path *.vtt mana pun yang dapat ditulis oleh pengguna server web, termasuk file subtitle pengguna lain dan webroot. Bukan langsung RCE (suffix .vtt dipaksa dan tidak dieksekusi), tetapi kontrol integritas penuh atas permukaan konten bersubtitle plus DoS melalui penimpaan.
Mengapa penting
Path traversal komponen AI yang memberikan penulisan file arbitrer dengan hanya token AI berhak rendah yang tidak kedaluwarsa — paparan integritas/penanaman konten pada permukaan subtitle AI. Jangkauannya terbatas, tetapi model token yang tidak terikat dan tidak pernah kedaluwarsa memperbesar paparan (token sebelumnya atau bocor tetap dapat digunakan), itulah mengapa layak dikatalogkan.
Vektor serangan
Permintaan terjemahan ke plugin/AI/receiveAsync.json.php dengan token AI valid dan response[lang] yang mengandung urutan traversal. lang diteruskan tanpa sanitasi ke Ai_transcribe_responses::getVTTPaths(), sehingga konten yang dikendalikan penyerang ditulis ke path *.vtt mana pun yang dapat ditulis oleh pengguna server web — termasuk penanaman webroot (disajikan melalui HTTP) dan penulisan di luar pohon direktori — tanpa pemeriksaan sesi atau kepemilikan dan bypassSameDomainCheck disetel.
Sistem yang terdampak
WWBN/AVideo master (plugin/AI/receiveAsync.json.php), plugin AI diaktifkan
Mitigasi
Validasi lang terhadap daftar putih (mis. /^[a-z0-9_-]{2,8}$/i) sebelum getVTTPaths(), atau buat getVTTPaths menolak lang apa pun yang mengandung /, \, .., atau NUL; terapkan kedaluwarsa token AI dan ikat token ke peminta dan pemilik video. Lihat advisory GHSA-v64v-r7qm-w5x4.