FICHE CVE

CVE-2026-61567

Publiée le 2026-10-28 · Dernière modification le 2026-10-28

🇫🇷 EN BREF

Les versions d'AVideo antérieures à la 8.1.0, une plateforme d'hébergement de vidéos, contiennent une faille critique dans le point de terminaison du streaming en direct. Le logiciel fait confiance aux données JSON externes fournies par un serveur distant pour gérer les états de session et ne parvient pas à assainir les entrées transmises aux commandes système. En fournissant une URL malveillante et une liste de vidéos spécifiquement conçue, un attaquant peut injecter des commandes shell directement dans les processus `ffmpeg` et `ffprobe` du serveur.

Un attaquant distant non authentifié peut ainsi prendre le contrôle total du serveur, en exécutant des commandes arbitraires du système d'exploitation avec les privilèges de l'utilisateur du serveur web. Cela lui permet de voler des identifiants de base de données, de modifier des fichiers système ou d'interrompre complètement le service. Comme l'attaque ne nécessite aucun identifiant, aucune interaction de l'utilisateur et seulement un accès réseau basique, elle est triviale à exécuter.

Publiée2026-10-28
Dernière modification2026-10-28

DÉTAIL DU VECTEUR CVSS

Vecteur d'attaqueRéseau
Complexité d'attaqueFaible
Privilèges requisAucun
Interaction utilisateurAucune
PortéeModifiée
Impact sur la confidentialitéÉlevé
Impact sur l'intégritéÉlevé
Impact sur la disponibilitéÉlevé

RÉFÉRENCES

Description officielle du NVD (en anglais)

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.