AVIDEO · CVE-2026-124424 · Other
NO FIX YET · SEE WHAT TO DO
AVideo's AI plugin endpoint plugin/AI/receiveAsync.json.php does not sanitize the lang parameter when saving translated subtitles. A holder of any valid AI token can write .vtt files anywhere the web server can write, including the webroot or over other users' subtitle files.
first public Oct 23, 2026 · 2 sources
Could this affect your app?
Free first check from your website. Connect your repo for the full answer.
Self-hosted AVideo sites with the bundled AI plugin enabled are exposed. Anyone holding any valid AI token (tokens never expire and are not tied to a user or video) can write attacker-controlled .vtt files anywhere the web server user can write, including the webroot or over other users' subtitles. It is not direct code execution. Sites with the AI plugin disabled can skip it. The vendor gives no version range, only current master.
Not affected if ai-plugin-disabled, no-ai-plugin, no-ai-tokens
Who cares ai-plugin, avideo, php, self-hosted
WWBN AVideo contains a path traversal vulnerability in plugin/AI/receiveAsync.json.php that allows holders of any valid AI token to write arbitrary .vtt files by injecting traversal sequences into the unsanitized response[lang] parameter. Attackers can send a type=translation request with a crafted lang value to plant attacker-controlled content in the webroot or overwrite other users' subtitle files.
This page as .md · .json · CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:N/VI:H/VA:L/SC:N/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X
. Posts quoted belong to their authors.
Are you affected?
Tell InfraStack what you run. It checks this one, and every next one, against your stack.
Ask from here. InfraStack checks the affected versions against your stack and answers in your inbox.
InfraStack checks the affected versions against your stack and answers in Slack, with the evidence and the fix.
, `, `..' and NUL in Ai_transcribe_responses::getVTTPaths(); disable the AI plugin