{"items":[{"id":"NVI-00004958","kind":"vulnerability","title":"AVideo's Meet plugin: `uploadRecordedVideo.json.php` derives `users_id` from the uploaded filename and calls passwordless `User->login()`, allowing any caller with the Meet shared secret to obtain a session as arbitrary users including admi","revision":5,"unknowns":["Customer inventory, deployment, reachability and exploitation have not been inspected."],"lifecycle":"active","identifiers":["GHSA-qxvm-r42f-5p8j","CVE-2026-56345"],"plain_summary":"GitHub lists this reviewed advisory for WWBN/AVideo. Published version ranges and source prerequisites are shown below; this is not an inspection of a visitor’s application.","review_status":"source_listed","control_topics":[],"public_actions":[{"summary":"Identify the exact component and deployed version, examine the linked publisher’s conditions, and retain evidence of any mitigation.","source_ids":["sr-13695259f3e31ddacbac1406e3a0f1f9"],"action_type":"investigate","limitations":"Confirm current vendor support, compatibility and deployment evidence. This report has not tested a fix in your system.","current_supported_target":null}],"schema_version":"1.1.0","source_metrics":[{"kind":"CVSS","as_of":"2026-05-15T18:17:21.000Z","value":"8.1 high","meaning":"GitHub source severity; exploitability and local consequence require separate evidence.","source_id":"sr-0606140c1a8eb08ef57199b74e067e48"},{"kind":"EPSS","as_of":"2026-11-04T12:03:12.000Z","value":"0.453%","meaning":"FIRST EPSS model v2026.06.15; exploitation probability over 30 days, percentile 0.3946. Missing scores are unknown.","source_id":"sr-13695259f3e31ddacbac1406e3a0f1f9"}],"why_it_matters":"Published affected context helps an owner decide what evidence to gather. This report has not examined your application.","related_sources":[{"id":"sr-0606140c1a8eb08ef57199b74e067e48","url":"https://github.com/advisories/GHSA-qxvm-r42f-5p8j","basis":"vendor_advisory","notes":"GitHub Advisory Database; CC-BY-4.0. Each advisory links its original attribution. Null normalizes fields.","title":"GHSA-qxvm-r42f-5p8j","publisher":"GitHub Advisory Database","observed_at":"2026-11-08T01:47:24.790Z"},{"id":"sr-7ab700754dfc5d1b3b2394582180f1e9","url":"https://github.com/advisories/GHSA-qxvm-r42f-5p8j","basis":"vendor_advisory","notes":"GitHub-origin advisory, CC-BY-4.0; OSV is an aggregate copy, not independent corroboration.","title":"GHSA-qxvm-r42f-5p8j","publisher":"GitHub Advisory Database via OSV","observed_at":"2026-10-31T21:42:41.354Z"},{"id":"sr-13695259f3e31ddacbac1406e3a0f1f9","url":"https://www.first.org/epss/data.html","basis":"official_catalog","notes":"FIRST EPSS; probability of exploitation in the next 30 days, not local compromise. Dataset date/model retained; FIRST services terms apply.","title":"CVE-2026-56345","publisher":"FIRST EPSS","observed_at":"2026-11-04T23:33:33.051Z"}],"affected_context":[{"certainty":"source_listed","source_ids":["sr-0606140c1a8eb08ef57199b74e067e48"],"technology":"WWBN/AVideo","known_exclusions":[],"conditions_summary":"## Summary\n\n**Type:** Authorization-bypass via user-controlled identifier. The Meet plugin's recorded-video upload endpoint (`plugin/Meet/uploadRecordedVideo.json.php`) authenticates the caller using a single shared `Authorization: Bearer ` against `$objM->secret`. Once that check passes, the endpoint reads the *target user identifier* from the uploaded file's `name` field, instantiates a `User` object with that ID, and calls `$userObject->login(true, true)` — the no-password / encoded-password login path — committing a session for that user and emitting `Set-Cookie` headers to the caller. There is no check that the caller actually owns the requested `users_id`.\n**File:** `plugin/Meet/uploadRecordedVideo.json.php`, lines 56-65; secondary in `objects/user.php` `User::login()` (no-password branch at lines 1276-1310).\n**Root cause:** the upload handler's identity model is \"service-to-service\" (a Meet/Jitsi recorder posts a finished recording back to AVideo with the shared secret) but the `users_id` to credit the upload to is parsed from the FILENAME the same caller controls — `$users_id = explode('-', $_FILES['upl']['name'])[0];`. There is no signed claim, no separate proof-of","public_affected_ranges":["<= 29.0"]},{"certainty":"source_listed","source_ids":["sr-7ab700754dfc5d1b3b2394582180f1e9"],"technology":"WWBN/AVideo","known_exclusions":[],"conditions_summary":"## Summary\n\n**Type:** Authorization-bypass via user-controlled identifier. The Meet plugin's recorded-video upload endpoint (`plugin/Meet/uploadRecordedVideo.json.php`) authenticates the caller using a single shared `Authorization: Bearer ` against `$objM->secret`. Once that check passes, the endpoint reads the *target user identifier* from the uploaded file's `name` field, instantiates a `User` object with that ID, and calls `$userObject->login(true, true)` — the no-password / encoded-password login path — committing a session for that user and emitting `Set-Cookie` headers to the caller. There is no check that the caller actually owns the requested `users_id`.\n**File:** `plugin/Meet/uploadRecordedVideo.json.php`, lines 56-65; secondary in `objects/user.php` `User::login()` (no-password branch at lines 1276-1310).\n**Root cause:** the upload handler's identity model is \"service-to-service\" (a Meet/Jitsi recorder posts a finished recording back to AVideo with the shared secret) but the `users_id` to credit the upload to is parsed from the FILENAME the same caller controls — `$users_id = explode('-', $_FILES['upl']['name'])[0];`. There is no signed claim, no separate proof-of","public_affected_ranges":["ECOSYSTEM: introduced 0; last_affected 29.0"]}],"null_published_at":"2026-11-08T15:11:47.444Z","source_updated_at":"2026-05-15T18:17:21.000Z","source_disclosed_at":"2026-05-15T18:17:19.000Z","is_synthetic_fixture":false,"null_last_reviewed_at":null,"public_change_summary":"Source facts changed; compare the preserved prior revision.","null_first_observed_at":"2026-10-31T21:42:41.354Z"},{"id":"NVI-00004958","kind":"vulnerability","title":"AVideo's Meet plugin: `uploadRecordedVideo.json.php` derives `users_id` from the uploaded filename and calls passwordless `User->login()`, allowing any caller with the Meet shared secret to obtain a session as arbitrary users including admi","revision":4,"unknowns":["Customer inventory, deployment, reachability and exploitation have not been inspected."],"lifecycle":"active","identifiers":["GHSA-qxvm-r42f-5p8j","CVE-2026-56345"],"plain_summary":"OSV carries this publisher advisory for WWBN/AVideo. This is an aggregated source copy; consult the original publisher and compare update dates.","review_status":"source_listed","control_topics":[],"public_actions":[{"summary":"Identify the exact component and deployed version, examine the linked publisher’s conditions, and retain evidence of any mitigation.","source_ids":["sr-13695259f3e31ddacbac1406e3a0f1f9"],"action_type":"investigate","limitations":"Confirm current vendor support, compatibility and deployment evidence. This report has not tested a fix in your system.","current_supported_target":null}],"schema_version":"1.1.0","source_metrics":[{"kind":"EPSS","as_of":"2026-11-04T12:03:12.000Z","value":"0.453%","meaning":"FIRST EPSS model v2026.06.15; exploitation probability over 30 days, percentile 0.3946. Missing scores are unknown.","source_id":"sr-13695259f3e31ddacbac1406e3a0f1f9"}],"why_it_matters":"Published affected context helps an owner decide what evidence to gather. This report has not examined your application.","related_sources":[{"id":"sr-7ab700754dfc5d1b3b2394582180f1e9","url":"https://github.com/advisories/GHSA-qxvm-r42f-5p8j","basis":"vendor_advisory","notes":"GitHub-origin advisory, CC-BY-4.0; OSV is an aggregate copy, not independent corroboration.","title":"GHSA-qxvm-r42f-5p8j","publisher":"GitHub Advisory Database via OSV","observed_at":"2026-10-31T21:42:41.354Z"},{"id":"sr-13695259f3e31ddacbac1406e3a0f1f9","url":"https://www.first.org/epss/data.html","basis":"official_catalog","notes":"FIRST EPSS; probability of exploitation in the next 30 days, not local compromise. Dataset date/model retained; FIRST services terms apply.","title":"CVE-2026-56345","publisher":"FIRST EPSS","observed_at":"2026-11-04T23:33:33.051Z"}],"affected_context":[{"certainty":"source_listed","source_ids":["sr-7ab700754dfc5d1b3b2394582180f1e9"],"technology":"WWBN/AVideo","known_exclusions":[],"conditions_summary":"## Summary\n\n**Type:** Authorization-bypass via user-controlled identifier. The Meet plugin's recorded-video upload endpoint (`plugin/Meet/uploadRecordedVideo.json.php`) authenticates the caller using a single shared `Authorization: Bearer ` against `$objM->secret`. Once that check passes, the endpoint reads the *target user identifier* from the uploaded file's `name` field, instantiates a `User` object with that ID, and calls `$userObject->login(true, true)` — the no-password / encoded-password login path — committing a session for that user and emitting `Set-Cookie` headers to the caller. There is no check that the caller actually owns the requested `users_id`.\n**File:** `plugin/Meet/uploadRecordedVideo.json.php`, lines 56-65; secondary in `objects/user.php` `User::login()` (no-password branch at lines 1276-1310).\n**Root cause:** the upload handler's identity model is \"service-to-service\" (a Meet/Jitsi recorder posts a finished recording back to AVideo with the shared secret) but the `users_id` to credit the upload to is parsed from the FILENAME the same caller controls — `$users_id = explode('-', $_FILES['upl']['name'])[0];`. There is no signed claim, no separate proof-of","public_affected_ranges":["ECOSYSTEM: introduced 0; last_affected 29.0"]}],"null_published_at":"2026-11-08T08:10:32.026Z","source_updated_at":"2026-09-10T03:50:55.271Z","source_disclosed_at":"2026-05-15T18:17:19.000Z","is_synthetic_fixture":false,"null_last_reviewed_at":null,"public_change_summary":"Dated EPSS estimate updated; this is not a new disclosure or proof of exploitation.","null_first_observed_at":"2026-10-31T21:42:41.354Z"},{"id":"NVI-00004958","kind":"vulnerability","title":"AVideo's Meet plugin: `uploadRecordedVideo.json.php` derives `users_id` from the uploaded filename and calls passwordless `User->login()`, allowing any caller with the Meet shared secret to obtain a session as arbitrary users including admi","revision":3,"unknowns":["Customer inventory, deployment, reachability and exploitation have not been inspected."],"lifecycle":"active","identifiers":["GHSA-qxvm-r42f-5p8j","CVE-2026-56345"],"plain_summary":"OSV carries this publisher advisory for WWBN/AVideo. This is an aggregated source copy; consult the original publisher and compare update dates.","review_status":"source_listed","control_topics":[],"public_actions":[{"summary":"Identify the exact component and deployed version, examine the linked publisher’s conditions, and retain evidence of any mitigation.","source_ids":["sr-22067bdf165d993891097aebd7d5605e"],"action_type":"investigate","limitations":"Confirm current vendor support, compatibility and deployment evidence. This report has not tested a fix in your system.","current_supported_target":null}],"schema_version":"1.1.0","source_metrics":[{"kind":"EPSS","as_of":"2026-11-01T12:00:16.000Z","value":"0.453%","meaning":"FIRST EPSS model v2026.06.15; exploitation probability over 30 days, percentile 0.39352. Missing scores are unknown.","source_id":"sr-22067bdf165d993891097aebd7d5605e"}],"why_it_matters":"Published affected context helps an owner decide what evidence to gather. This report has not examined your application.","related_sources":[{"id":"sr-7ab700754dfc5d1b3b2394582180f1e9","url":"https://github.com/advisories/GHSA-qxvm-r42f-5p8j","basis":"vendor_advisory","notes":"GitHub-origin advisory, CC-BY-4.0; OSV is an aggregate copy, not independent corroboration.","title":"GHSA-qxvm-r42f-5p8j","publisher":"GitHub Advisory Database via OSV","observed_at":"2026-10-31T21:42:41.354Z"},{"id":"sr-22067bdf165d993891097aebd7d5605e","url":"https://www.first.org/epss/data.html","basis":"official_catalog","notes":"FIRST EPSS; probability of exploitation in the next 30 days, not local compromise. Dataset date/model retained; FIRST services terms apply.","title":"CVE-2026-56345","publisher":"FIRST EPSS","observed_at":"2026-11-01T14:28:32.283Z"}],"affected_context":[{"certainty":"source_listed","source_ids":["sr-7ab700754dfc5d1b3b2394582180f1e9"],"technology":"WWBN/AVideo","known_exclusions":[],"conditions_summary":"## Summary\n\n**Type:** Authorization-bypass via user-controlled identifier. The Meet plugin's recorded-video upload endpoint (`plugin/Meet/uploadRecordedVideo.json.php`) authenticates the caller using a single shared `Authorization: Bearer ` against `$objM->secret`. Once that check passes, the endpoint reads the *target user identifier* from the uploaded file's `name` field, instantiates a `User` object with that ID, and calls `$userObject->login(true, true)` — the no-password / encoded-password login path — committing a session for that user and emitting `Set-Cookie` headers to the caller. There is no check that the caller actually owns the requested `users_id`.\n**File:** `plugin/Meet/uploadRecordedVideo.json.php`, lines 56-65; secondary in `objects/user.php` `User::login()` (no-password branch at lines 1276-1310).\n**Root cause:** the upload handler's identity model is \"service-to-service\" (a Meet/Jitsi recorder posts a finished recording back to AVideo with the shared secret) but the `users_id` to credit the upload to is parsed from the FILENAME the same caller controls — `$users_id = explode('-', $_FILES['upl']['name'])[0];`. There is no signed claim, no separate proof-of","public_affected_ranges":["ECOSYSTEM: introduced 0; last_affected 29.0"]}],"null_published_at":"2026-11-04T18:04:03.168Z","source_updated_at":"2026-09-10T03:50:55.271Z","source_disclosed_at":"2026-05-15T18:17:19.000Z","is_synthetic_fixture":false,"null_last_reviewed_at":null,"public_change_summary":"Dated EPSS estimate updated; this is not a new disclosure or proof of exploitation.","null_first_observed_at":"2026-10-31T21:42:41.354Z"},{"id":"NVI-00004958","kind":"vulnerability","title":"AVideo's Meet plugin: `uploadRecordedVideo.json.php` derives `users_id` from the uploaded filename and calls passwordless `User->login()`, allowing any caller with the Meet shared secret to obtain a session as arbitrary users including admi","revision":2,"unknowns":["Customer inventory, deployment, reachability and exploitation have not been inspected."],"lifecycle":"active","identifiers":["GHSA-qxvm-r42f-5p8j","CVE-2026-56345"],"plain_summary":"OSV carries this publisher advisory for WWBN/AVideo. This is an aggregated source copy; consult the original publisher and compare update dates.","review_status":"source_listed","control_topics":[],"public_actions":[{"summary":"Identify the exact component and deployed version, examine the linked publisher’s conditions, and retain evidence of any mitigation.","source_ids":["sr-97ed7cf8cd03457a31dbc06c7c3e0851"],"action_type":"investigate","limitations":"Confirm current vendor support, compatibility and deployment evidence. This report has not tested a fix in your system.","current_supported_target":null}],"schema_version":"1.1.0","source_metrics":[{"kind":"EPSS","as_of":"2026-10-31T12:00:27.000Z","value":"0.453%","meaning":"FIRST EPSS model v2026.06.15; exploitation probability over 30 days, percentile 0.39356. Missing scores are unknown.","source_id":"sr-97ed7cf8cd03457a31dbc06c7c3e0851"}],"why_it_matters":"Published affected context helps an owner decide what evidence to gather. This report has not examined your application.","related_sources":[{"id":"sr-7ab700754dfc5d1b3b2394582180f1e9","url":"https://github.com/advisories/GHSA-qxvm-r42f-5p8j","basis":"vendor_advisory","notes":"GitHub-origin advisory, CC-BY-4.0; OSV is an aggregate copy, not independent corroboration.","title":"GHSA-qxvm-r42f-5p8j","publisher":"GitHub Advisory Database via OSV","observed_at":"2026-10-31T21:42:41.354Z"},{"id":"sr-97ed7cf8cd03457a31dbc06c7c3e0851","url":"https://www.first.org/epss/data.html","basis":"official_catalog","notes":"FIRST EPSS; probability of exploitation in the next 30 days, not local compromise. Dataset date/model retained; FIRST services terms apply.","title":"CVE-2026-56345","publisher":"FIRST EPSS","observed_at":"2026-10-31T22:06:15.383Z"}],"affected_context":[{"certainty":"source_listed","source_ids":["sr-7ab700754dfc5d1b3b2394582180f1e9"],"technology":"WWBN/AVideo","known_exclusions":[],"conditions_summary":"## Summary\n\n**Type:** Authorization-bypass via user-controlled identifier. The Meet plugin's recorded-video upload endpoint (`plugin/Meet/uploadRecordedVideo.json.php`) authenticates the caller using a single shared `Authorization: Bearer ` against `$objM->secret`. Once that check passes, the endpoint reads the *target user identifier* from the uploaded file's `name` field, instantiates a `User` object with that ID, and calls `$userObject->login(true, true)` — the no-password / encoded-password login path — committing a session for that user and emitting `Set-Cookie` headers to the caller. There is no check that the caller actually owns the requested `users_id`.\n**File:** `plugin/Meet/uploadRecordedVideo.json.php`, lines 56-65; secondary in `objects/user.php` `User::login()` (no-password branch at lines 1276-1310).\n**Root cause:** the upload handler's identity model is \"service-to-service\" (a Meet/Jitsi recorder posts a finished recording back to AVideo with the shared secret) but the `users_id` to credit the upload to is parsed from the FILENAME the same caller controls — `$users_id = explode('-', $_FILES['upl']['name'])[0];`. There is no signed claim, no separate proof-of","public_affected_ranges":["ECOSYSTEM: introduced 0; last_affected 29.0"]}],"null_published_at":"2026-11-04T02:53:03.153Z","source_updated_at":"2026-09-10T03:50:55.271Z","source_disclosed_at":"2026-05-15T18:17:19.000Z","is_synthetic_fixture":false,"null_last_reviewed_at":null,"public_change_summary":"Dated EPSS estimate updated; this is not a new disclosure or proof of exploitation.","null_first_observed_at":"2026-10-31T21:42:41.354Z"},{"id":"NVI-00004958","kind":"vulnerability","title":"AVideo's Meet plugin: `uploadRecordedVideo.json.php` derives `users_id` from the uploaded filename and calls passwordless `User->login()`, allowing any caller with the Meet shared secret to obtain a session as arbitrary users including admi","revision":1,"unknowns":["Customer inventory, deployment, reachability and exploitation have not been inspected."],"lifecycle":"active","identifiers":["GHSA-qxvm-r42f-5p8j","CVE-2026-56345"],"plain_summary":"OSV carries this publisher advisory for WWBN/AVideo. This is an aggregated source copy; consult the original publisher and compare update dates.","review_status":"source_listed","control_topics":[],"public_actions":[{"summary":"Identify the exact component and deployed version, examine the linked publisher’s conditions, and retain evidence of any mitigation.","source_ids":["sr-7ab700754dfc5d1b3b2394582180f1e9"],"action_type":"investigate","limitations":"Confirm current vendor support, compatibility and deployment evidence. This report has not tested a fix in your system.","current_supported_target":null}],"schema_version":"1.1.0","source_metrics":[],"why_it_matters":"Published affected context helps an owner decide what evidence to gather. This report has not examined your application.","related_sources":[{"id":"sr-7ab700754dfc5d1b3b2394582180f1e9","url":"https://github.com/advisories/GHSA-qxvm-r42f-5p8j","basis":"vendor_advisory","notes":"GitHub-origin advisory, CC-BY-4.0; OSV is an aggregate copy, not independent corroboration.","title":"GHSA-qxvm-r42f-5p8j","publisher":"GitHub Advisory Database via OSV","observed_at":"2026-10-31T21:42:41.354Z"}],"affected_context":[{"certainty":"source_listed","source_ids":["sr-7ab700754dfc5d1b3b2394582180f1e9"],"technology":"WWBN/AVideo","known_exclusions":[],"conditions_summary":"## Summary\n\n**Type:** Authorization-bypass via user-controlled identifier. The Meet plugin's recorded-video upload endpoint (`plugin/Meet/uploadRecordedVideo.json.php`) authenticates the caller using a single shared `Authorization: Bearer ` against `$objM->secret`. Once that check passes, the endpoint reads the *target user identifier* from the uploaded file's `name` field, instantiates a `User` object with that ID, and calls `$userObject->login(true, true)` — the no-password / encoded-password login path — committing a session for that user and emitting `Set-Cookie` headers to the caller. There is no check that the caller actually owns the requested `users_id`.\n**File:** `plugin/Meet/uploadRecordedVideo.json.php`, lines 56-65; secondary in `objects/user.php` `User::login()` (no-password branch at lines 1276-1310).\n**Root cause:** the upload handler's identity model is \"service-to-service\" (a Meet/Jitsi recorder posts a finished recording back to AVideo with the shared secret) but the `users_id` to credit the upload to is parsed from the FILENAME the same caller controls — `$users_id = explode('-', $_FILES['upl']['name'])[0];`. There is no signed claim, no separate proof-of","public_affected_ranges":["ECOSYSTEM: introduced 0; last_affected 29.0"]}],"null_published_at":"2026-10-31T22:12:57.149Z","source_updated_at":"2026-09-10T03:50:55.271Z","source_disclosed_at":"2026-05-15T18:17:19.000Z","is_synthetic_fixture":false,"null_last_reviewed_at":null,"public_change_summary":"First indexed by Null; source disclosure date is shown separately.","null_first_observed_at":"2026-10-31T21:42:41.354Z"}],"next_cursor":null,"snapshot_revision":"42594"}