GHSA-mwjc-5j4x-r686

Suggest an improvement
Source
https://github.com/advisories/GHSA-mwjc-5j4x-r686
Import Source
https://github.com/github/advisory-database/blob/main/advisories/github-reviewed/2026/03/GHSA-mwjc-5j4x-r686/GHSA-mwjc-5j4x-r686.json
JSON Data
https://api.osv.dev/v1/vulns/GHSA-mwjc-5j4x-r686
Aliases
Published
2026-03-20T21:55:12Z
Modified
2026-03-25T14:56:26Z
Severity
  • 7.5 (High) CVSS_V3 - CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N CVSS Calculator
Summary
AVideo has an unauthenticated decrypt oracle leaking any ciphertext
Details

Summary

The API plugin exposes a decryptString action without any authentication. Anyone can submit ciphertext and receive plaintext. Ciphertext is issued publicly (e.g., view/url2Embed.json.php), so any user can recover protected tokens/metadata. Severity: High.

Details

  • Entry: plugin/API/get.json.php is unauthenticated.
  • Handler: plugin/API/API.php get_api_decryptString() (lines ~5945–5966):
    $string = decryptString($_REQUEST['string']);
    return new ApiObject($string, empty($string));
    
    No APISecret or user check occurs before decrypting.
  • Public ciphertext source: view/url2Embed.json.php returns playLink/playEmbedLink (encryptString(json_encode(...))) to any caller.

PoC

  1. Obtain ciphertext:
    GET /view/url2Embed.json.php?url=https://example.com/video.mp4
    
    Copy playLink.
  2. Decrypt without auth:
    POST /plugin/API/get.json.php?APIName=decryptString
    Content-Type: application/x-www-form-urlencoded
    
    string=<playLink ciphertext>
    
    Response contains the plaintext JSON (videoLink, title, users_id, etc.).

Impact

  • Any encrypted payload produced by the platform can be decrypted by anyone.
  • Leaks tokens/links intended to be confidential; enables replay and tampering where secrecy was assumed.

Mitigation

  • Require API secret or authenticated/authorized user for decryptString, or remove the endpoint.
  • Prefer one-way signatures (HMAC) instead of exposing generic decryption.
  • Rotate encryption keys/salts after patch to invalidate exposed ciphertexts.
Database specific
{
    "cwe_ids":  [
        "CWE-287",
        "CWE-312",
        "CWE-326",
        "CWE-327"
    ],
    "github_reviewed":  true,
    "github_reviewed_at":  "2026-03-20T21:55:12Z",
    "nvd_published_at":  "2026-03-23T19:16:40Z",
    "severity":  "HIGH"
}
References

Affected packages

Packagist / wwbn/avideo

Package

Name
wwbn/avideo
Purl
pkg:composer/wwbn/avideo

Affected ranges

Type
ECOSYSTEM
Events
Introduced
0 Unknown introduced version / All previous versions are affected
Last Affected
26.0

Affected versions

10.*
10.4
10.8
Other
11
11.*
11.1
11.1.1
11.5
11.6
12.*
12.4
14.*
14.3
14.3.1
14.4
18.*
18.0
21.*
21.0
22.*
22.0
24.*
24.0
25.*
25.0
26.*
26.0

Database specific

source
"https://github.com/github/advisory-database/blob/main/advisories/github-reviewed/2026/03/GHSA-mwjc-5j4x-r686/GHSA-mwjc-5j4x-r686.json"