VYPR
Unrated severityNVD Advisory· Published Jun 20, 2026

AVideo - Arbitrary User Session Hijacking via Meet Plugin uploadRecordedVideo Endpoint

CVE-2026-56345

Description

AVideo through 29.0 contains an authorization bypass vulnerability in the Meet plugin's uploadRecordedVideo.json.php endpoint that derives the target users_id from the uploaded filename without verification. An attacker with knowledge of the Meet shared secret can craft a malicious file upload with a filename containing an arbitrary users_id to invoke passwordless User->login() and establish an authenticated session as any user including admin. Attackers can obtain the Meet shared secret through path-traversal vulnerabilities or timing attacks against checkToken.json.php, then POST a crafted file to uploadRecordedVideo.json.php with a filename like '1-anything.mp4' to hijack admin sessions and gain full account takeover.

AI Insight

LLM-synthesized narrative grounded in this CVE's description and references.

Affected products

2
  • WWBN/Avideoinferred2 versions
    <=29.0+ 1 more
    • (no CPE)range: <=29.0
    • (no CPE)range: <=29.0

Patches

Vulnerability mechanics

Root cause

"The upload handler derives the target users_id from the attacker-controlled filename without verification, then calls passwordless User->login() to establish a session as that user."

Attack vector

An attacker first obtains the Meet shared secret, which is computed as `md5($global['systemRootPath'] . $global['salt'] . "meet")` (Meet.php:73) — obtainable via path-traversal CVEs that leak `videos/configuration.php` or via a timing oracle on `checkToken.json.php` [ref_id=1]. With the secret in hand, the attacker POSTs a crafted multipart request to `uploadRecordedVideo.json.php` with `Authorization: Bearer <secret>` and a file whose filename is `1-anything.mp4` (where `1` is the admin's `users_id`). The endpoint passes the shared-secret check, parses `users_id=1` from the filename, and calls `$userObject->login(true, true)` which sets `$_SESSION['user']`, issues a new `PHPSESSID` via `_session_regenerate_id()`, and returns `Set-Cookie` headers. The attacker captures that session cookie and uses it to impersonate the admin user, achieving full account takeover [ref_id=1].

Affected code

The vulnerability resides in `plugin/Meet/uploadRecordedVideo.json.php` (lines 56–65) where `$users_id = explode('-', $_FILES['upl']['name'])[0];` parses the target user identifier from the attacker-controlled filename, and in `objects/user.php` (User::login() no-password branch, lines 1276–1310) which commits a session for that user without any password check. The Meet shared-secret check at line 46 (`$objM->secret != $token`) only authenticates the caller as a trusted recorder but does not verify ownership of the parsed `users_id`.

What the fix does

The suggested fix removes the trust in the filename by requiring a signed claim (e.g., a JWT minted at meeting-create time) that binds `users_id` to the upload request, and replaces the passwordless `User->login()` call with a parameter that credits the upload to the user without establishing a session [ref_id=1]. Additionally, the fix recommends using `hash_equals` for secret comparison to prevent timing attacks, and either removing `checkToken.json.php` or gating it behind admin authentication. These changes ensure that even if the shared secret is compromised, an attacker cannot forge a `users_id` or obtain a session cookie from the upload endpoint.

Preconditions

  • configMeet plugin must be enabled (default-off but commonly enabled in deployments using AVideo for video-conferencing recording)
  • authAttacker must know the Meet shared secret, computable from videos/configuration.php or recoverable via timing attack on checkToken.json.php
  • networkAttacker must be able to send HTTP POST requests to the AVideo server
  • inputAttacker controls the filename of the uploaded file, which must follow the pattern <users_id>-

Generated on Jun 21, 2026. Inputs: CWE entries + fix-commit diffs from this CVE's patches. Citations validated against bundle.

References

2

News mentions

0

No linked articles in our index yet.