Home Assistant’s FFmpeg integration recently came under scrutiny after researchers demonstrated that unsafe argument handling in the Wyoming Assist satellite feature could be exploited to steal Supervisor tokens and ultimately execute commands as root on the host system.
The issue arises not from FFmpeg’s core parsing logic but rather from how Home Assistant incorporates attacker-controlled data directly into FFmpeg’s command line, transforming a powerful multimedia tool into a significant security risk.
Home Assistant FFmpeg Flaw
According to Elttam, the problem centers on Home Assistant’s use of FFmpeg to process audio streams for the Wyoming “announce” service, where a user-controlled `media_id` value is passed directly to FFmpeg as the `-i` input argument.
Due to insufficient sanitization of this parameter, an attacker with control over a paired Assist satellite and a valid Home Assistant API token can inject specially crafted FFmpeg protocol strings instead of benign media URLs.
By chaining pseudo-protocols such as `concat:`, `file:`, and `subfile:`, researchers demonstrated that it is possible to create a synthetic audio header from existing binaries on the device and then append arbitrary local files, causing FFmpeg to treat them as valid audio input.
Once this synthetic stream is accepted, FFmpeg processes the data and sends it back to the attacker-controlled satellite, effectively turning the audio pipeline into a covert file exfiltration channel.
Notably, this includes the ability to read `/proc/self/environ`, which contains sensitive environment variables like `SUPERVISOR_TOKEN` that grant access to Home Assistant’s Supervisor API.
With that token, an attacker can escalate from “arbitrary file read” to “full remote command execution,” exploiting Supervisor endpoints to run commands as root and compromise the underlying host operating system.
In response, the Home Assistant team has tightened FFmpeg usage in recent core releases by introducing a strict `-protocol_whitelist` that limits the protocols that can be used with the `-i` argument and carefully ordering options to prevent bypassing the allowlist.
This approach significantly reduces the attack surface by blocking the dangerous pseudo-protocols used in the proof of concept.
However, this incident serves as a broader lesson for smart home and IoT ecosystems: even widely trusted components like FFmpeg can become high-impact vulnerabilities when integrated without robust input validation and clear trust boundaries.
For defenders, the key takeaways are twofold: always validate and constrain user-controlled parameters passed into system utilities, and treat integrations between home automation services and multimedia processing tools as potential attack surfaces rather than benign connections.
As smart homes become more complex and interconnected, neglecting these “glue” components can leave entire households vulnerable to stealthy, high-impact compromises.
ALERT: 20+ government sites delivered malware to businesses and citizens. See full attack research to check your own exposure.

