CVE-2026-54414 - FileRise shared-folder upload path traversal allows arbitrary file write and admin takeover
Özet
Bu kayıt, hedef sistemde bulunan bir zafiyeti detaylandırmaktadır. Zafiyet 2026-06-19 tarihinde yayınlanmış olup, topluluktan 202 görüntülenme almıştır. web uygulamaları kategorisinde sınıflandırılmıştır. Kullanıcıların teknik detaylar için Detay sekmesindeki kaynak kodunu incelemeleri önerilir.
Zafiyet Ozet Bilgileri
Zafiyet Detayi (Turkce)
3.16.0'dan önceki FileRise, paylaşılan klasör yükleme uç noktasında (/api/folder/uploadToSharedFolder.php) yol geçişine karşı savunmasızdır ve bu da rastgele dosya yazmaya ve yönetici hesabının ele geçirilmesine yol açar. Yükleme dosya adı, URL kodlu dizilere (regex blokları / ve \ ancak % değil) izin veren basename() ve REGEX_FILE_NAME ile FolderController tarafından doğrulanır. Ham dosya adı daha sonra UploadModel::handleUpload'a iletilir ve burada trim(urldecode(basename($fileName)) olarak yeniden yapılandırılır ve doğrulama sonrasında yol ayırıcıları yeniden sunulur (örn. ..%2fusers%2fusers.txt, ../users/users.txt olur). UploadNamePolicy::isAllowedForWrite(), basename() işlevini dahili olarak uygular ve bu nedenle yalnızca son bileşeni (users.txt) değerlendirerek geçiş sırasının uzantı ilkesini geçmesine izin verir. Hedef yol daha sonra hiçbir gerçek yol sınırlama kontrolü olmadan doğrudan move_uploaded_file() içinde kullanılır ve amaçlanan yükleme dizininin dışına yazmaya izin verir. Geçerli, süresi dolmamış, yükleme özellikli bir paylaşılan klasör bağlantısına/belirtecine (herkese açık olarak paylaşılmak üzere tasarlanmış) sahip bir saldırgan, bir yönetici hesabı oluşturmak için user/users.txt dosyasının üzerine yazabilir, bu da kimlik doğrulaması yapılmadan yöneticinin ele geçirilmesine ve yapılandırmaya bağlı olarak uzaktan kod yürütülmesine neden olabilir. Yararlanma, geçerli, süresi dolmamış, yükleme özelliği etkinleştirilmiş bir paylaşılan klasör bağlantısına/belirtecine sahip olmayı gerektirir. Bu sorun, doğrulamadan önce URL kodunu çözen ve yükleme dosya adındaki tüm yol ayırıcıları reddeden 3.16.0'da düzeltilmiştir.
Orijinal Aciklama (Ingilizce)
FileRise before 3.16.0 is vulnerable to path traversal in the shared-folder upload endpoint (/api/folder/uploadToSharedFolder.php), leading to arbitrary file write and administrator account takeover. The upload filename is validated by FolderController with basename() and REGEX_FILE_NAME, which permit URL-encoded sequences (the regex blocks / and \ but not %). The raw filename is then passed to UploadModel::handleUpload, where it is reconstructed as trim(urldecode(basename($fileName))), re-introducing path separators after validation (e.g. ..%2fusers%2fusers.txt becomes ../users/users.txt). UploadNamePolicy::isAllowedForWrite() applies basename() internally and therefore only evaluates the final component (users.txt), allowing the traversal sequence to pass the extension policy. The destination path is then used directly in move_uploaded_file() with no realpath containment check, allowing a write outside the intended upload directory. An attacker who possesses a valid, non-expired, upload-enabled shared-folder link/token (which are designed to be shared publicly) can overwrite users/users.txt to create an administrator account, resulting in unauthenticated admin takeover and, depending on configuration, remote code execution. Exploitation requires possession of a valid, non-expired, upload-enabled shared-folder link/token. This issue is fixed in 3.16.0, which URL-decodes before validation and rejects any path separators in the upload filename.
Kaynak Kodu İndir
Çevrimdışı analiz ve test için exploit kaynak kodunu indirin.
Şimdi İndirDosya Boyutu: ~5.2 KB | MD5: 0b1083c457486ccaedf0ae523d0ea490
Galeri görseli bulunmuyor.
Henüz tartışma başlatılmamış.