Live › vulnerability › CVE-2026-61575
Go to dashboardAVideo before 8.1.0 stores a crafted filename from the encoder queue as a title and renders it unescaped in the admin encoder grid. An attacker who can self-grant upload rights can run JavaScript in an administrator's or operator's browser, acting with that user's privileges.
Summary written from the sources below. Check the originals before acting.
First seen by InfraStack 2026-10-28 22:35 UTC. All times on this page are UTC.
Self-hosted AVideo instances running a version before 8.1.0 with the encoder queue in use. The exposure depends on attackers being able to self-grant upload capability through an attacker-controlled login site, and on an administrator or an operator of the attacker's streamer viewing the queue grid. Instances already on 8.1.0 or later are not affected.
No product ranges from the sources yet.
grep -i version in the project's version file, and confirm it is below 8.1.0.view/queue.php for a pathinfo call on fileURI that feeds setTitle without escaping.8.1.0 or later.encoder_queue rows for HTML in titles.Each row is the first time that source carried this signal. The analyst’s rows are its own findings.
AVideo is a video-sharing Platform. Prior to 8.1.0, view/queue.php uses pathinfo on the caller-controlled fileURI and stores its filename through setTitle in encoder_queue.title without neutralization. fileURI is not in the objects/security.php filter lists, and the Login::canUpload() capability needed to submit a queue entry can be self-granted using an attacker-controlled login site without legitimate encoder credentials. view/index.php loads queue.json from view/queue.json.php into the #grid jQuery Bootgrid table; its title formatter concatenates row.title into raw cell HTML. An attacker can therefore store an HTML title whose event handler runs in a privileged viewer's browser. Encoder::getAll limits nonadministrators to their own streamer's rows, so the victim must be an administrator who sees all rows or an operator on the attacker's streamer. A second .html() sink in the progress panel uses the same title but additionally depends on a helper script loaded from the streamer; the Bootgrid sink is reachable from encoder code alone. The script can read session-visible data and rendered streamer credentials, act with the viewer's privileges, and execute again for each qualifying viewer until the row is removed. This issue is fixed in version 8.1.0.
This page as .md · .json · in your agent: get_signal("CVE-2026-61575")
NVD data is provided by NIST and is public domain. Posts quoted belong to their authors.