Advisory · CVE-2026-100857
AzuraCast station fields smuggle shell commands into Liquidsoap
AzuraCast's config writer fails to sanitize Liquidsoap string interpolation, so Media or Profile users can inject shell commands that run when the station restarts.
- Vendor
- AzuraCast
- Product
- AzuraCast
- Identifier / CWE
- CVE-2026-100857
CWE-94 - Action timing
- Immediate
Explain it like I’m five
AzuraCast has a cleaning step for text that is supposed to remove booby traps, but it misses a type of trap. A user can hide 'run this command' in a playlist link or station name, and it fires when the station restarts.
- 01Interpolation injected
An authenticated user with Media or Profile permissions injects #{process.run()} expressions into playlist URLs or station metadata fields.
- 02Sanitization misses it
ConfigWriter::cleanUpString() fails to sanitize Liquidsoap string interpolation sequences.
- 03Station restarts
The poisoned values land in the generated station configuration and are consumed on station restart.
- 04Shell commands run
The injected expressions execute shell commands as the azuracast user.
What happened
AzuraCast before 0.23.4 (CVE-2026-100857, CVSS 8.6) contains a code injection vulnerability in the ConfigWriter::cleanUpString() method, which fails to sanitize Liquidsoap string interpolation sequences.
Authenticated users with Media or Profile permissions can inject arbitrary Liquidsoap code into station configuration. Attackers can inject #{process.run()} expressions into playlist URLs or station metadata fields that execute shell commands as the azuracast user when the station restarts. Version 0.23.4 fixes the issue.
What to do
- Upgrade AzuraCast to 0.23.4 or later.
- Search station metadata, playlist URLs, and profile fields for interpolation sequences like
#{. - Review system and Liquidsoap logs for unexpected shell commands or station restarts.
- Narrow Media and Profile permissions to trusted operators.
Management note
This is the oldest of this week’s AzuraCast injection cluster, which suggests several independent reviews found the same weak sanitizer. Update past 0.23.8 to close the whole set, not just this one.