CVE-2026-61567
KritikTeknik Veri (Otomatik)
- CVSS Skoru
- 10
- EPSS
- 0.5%
- CWE
- CWE-78
- KEV Durumu
- Hayır
Yayım tarihi: 28 Ekim 2026
AVideo, bir video-paylaşım platformudur. 8.1.0 sürümünden önce, canlı yayın endpoint'i `view/videosListToLive.php` bir saldırgan tarafından adlandırılan bir yayıncıyı `webSiteRootURL` içinde kabul eder, `objects/Login.php` içinde `Login::run` çağırır ve döndürülen JSON'u oturum durumu olarak güvenilir kabul eder. Encoder tarafından erişilebilen bir HTTP hizmeti barındıran, kimliği doğrulanmamış bir uzaktan saldırgan, meşru kimlik bilgilerine sahip olmadan `isLogged` ve `canStream` self-atayabilir. Endpoint, yalnızca dolu `playlists_id` ve `APISecret` değerleri gerektirir; `APISecret` depolanan bir gizli anahtar ile karşılaştırılmak yerine iletilir. Bu yol asla `Streamer::isURLAllowed` çağrılmaz ve bu nedenle operatörün yayıncı izin listesinden bağımsız olarak çalışır. Bir saldırgan tarafından kontrol edilen ikinci bir video-listesi yanıtını alır ve `videos[].path` değerini kabuk argümanı kaçış karakteri olmadan `ffprobe` ve `ffmpeg` komutlarına ekler ve bu komutları `exec`'e geçirir; `isAudio` çağrısı `isVideo`'yu çağırarak `ffprobe` komutuna ulaşır. Kabuk ayırıcıları içeren yollar, web-sunucu kullanıcısı olarak keyfi işletim sistemi komutlarını çalıştırır. İstek filtresi video-listesi JSON'unu incelemiyor. Bu, veritabanı ve depolanan yayıncı kimlik bilgilerini ifşa edebilir, bu kimlik bilgilerini kullanarak üst akış platformunu tehlikeye atabilir, web-sunucu kullanıcısına ait dosyaları değiştirebilir, kalıcılık kurabilir ve encoder hizmetini reddedebilir. Bu sorun 8.1.0 sürümünde giderilmiştir.
Orijinal açıklama (İngilizce)
AVideo is a video-sharing Platform. Prior to 8.1.0, the live-streaming endpoint `view/videosListToLive.php` accepts an attacker-named streamer in `webSiteRootURL`, calls `Login::run` in `objects/Login.php`, and trusts the returned JSON as session state. An unauthenticated remote attacker who can host an HTTP service reachable by the encoder can self-grant `isLogged` and `canStream` without legitimate credentials. The endpoint requires only nonempty `playlists_id` and `APISecret` values; `APISecret` is forwarded rather than checked against a stored secret. This path never calls `Streamer::isURLAllowed` and therefore works regardless of the operator's streamer allowlist. It fetches a second attacker-controlled video-list response and interpolates `videos[].path` without shell argument escaping into `ffprobe` and `ffmpeg` commands passed to `exec`; `isAudio` calls `isVideo` to reach the `ffprobe` command. Paths containing shell delimiters execute arbitrary operating-system commands as the web-server user. The request filter does not inspect the video-list JSON. This can disclose database and stored streamer credentials, compromise the upstream platform using those credentials, modify files owned by the web-server user, establish persistence, and deny encoder service. This issue is fixed in version 8.1.0.
Referanslar
Bu CVE için henüz editoryal inceleme yapılmadı. Sadece otomatik teknik veri gösteriliyor.