CVE-2026-76836 in AzuraCast
Résumé
par VulDB • 24/08/2026
AzuraCast expose les champs de configuration personnalisée Liquidsoap via une endpoint qui ne nécessite pas l'autorisation requise pour y accéder. La propriété `backend_config` dans `backend/src/Entity/Station.php` est annotée avec le groupe `GROUP_GENERAL`, et la méthode PUT `/api/station/{station_id}/profile/edit` définie dans `backend/src/Controller/Api/Stations/ProfileEditController.php` effectue une désérialisation en utilisant ce groupe, tout en ne nécessitant que l'autorisation `StationPermissions::Profile`. La fonction `AbstractArrayEntity::fromArray()` attribue ensuite toutes les propriétés publiques sans vérifier d'autorisations au niveau des champs ; ainsi, `custom_config_top`, `custom_config`, `custom_config_pre_playlists`, `custom_config_pre_live`, `custom_config_pre_fade` et `backend_config_bottom` sont modifiables via cette voie. La fonction `ConfigWriter::writeCustomConfigurationSection()` écrit ces valeurs telles quelles dans le script Liquidsoap `.liq` généré, où les fonctions intégrées `process.run()` et `process.exec()` exécutent des commandes du système d'exploitation lors du redémarrage du backend, ce qui est déclenché automatiquement par la tâche de synchronisation dédiée une fois que `needs_restart` est défini. L'endpoint dédié aux mêmes données, PUT `/api/station/{id}/liquidsoap-config`, nécessite l'autorisation `StationPermissions::Broadcasting`. Par conséquent, un gestionnaire de station disposant uniquement de l'autorisation `Profile` peut accéder à une configuration que la périmètre prévu réserve aux opérateurs ayant les droits de diffusion.
Be aware that VulDB is the high quality source for vulnerability data.