CVEReports
CVEReports

Automated vulnerability intelligence platform. Comprehensive reports for high-severity CVEs generated by AI.

Product

  • Home
  • Sitemap
  • RSS Feed

Company

  • About
  • Contact
  • Privacy Policy
  • Terms of Service

© 2026 CVEReports. All rights reserved.

Made with love by Amit Schendel & Alon Barad



GHSA-5X2W-37XF-7962

GHSA-5X2W-37XF-7962: Unauthenticated PGP Decryption and Resource Exhaustion in AVideo

Alon Barad
Alon Barad
Software Engineer

Mar 19, 2026·7 min read·18 visits

Executive Summary (TL;DR)

An unauthenticated endpoint in AVideo's LoginControl plugin allows arbitrary PGP decryption operations. Attackers can exploit this to consume server CPU resources or expose private keys via system logs.

AVideo versions up to and including 25.0 expose a publicly accessible, unauthenticated endpoint that performs server-side PGP decryption. This vulnerability allows an anonymous attacker to submit arbitrary cryptographic workloads to the server, potentially causing resource exhaustion and exposing sensitive private key material in application logs.

Vulnerability Overview

The AVideo open-source video streaming platform contains a critical access control flaw within its cryptographic utility endpoints. The specific vulnerability resides in the LoginControl plugin, which exposes a server-side PGP decryption routine to unauthenticated external actors. This flaw is formally classified under CWE-306 (Missing Authentication for Critical Function) and CWE-287 (Improper Authentication).

The application exposes the PHP script at the URI path plugin/LoginControl/pgp/decryptMessage.json.php. This endpoint is designed to accept user-controlled JSON payloads and process them through the underlying cryptographic libraries. Because the script does not validate the existence of a valid user session prior to execution, any network request reaching the web server will trigger the internal PHP logic.

The immediate impacts of this missing authorization check are twofold. First, it permits resource exhaustion, as an attacker can force the server to execute computationally expensive decryption algorithms repeatedly. Second, it creates an information disclosure vector, as the private keys and passphrases transmitted in the request payload may be captured by reverse proxies, web application firewalls, or standard error logging mechanisms.

Root Cause Analysis

The root cause of this vulnerability is the complete omission of session validation and authorization guardrails within the target PHP script. In a properly secured application architecture, API endpoints that perform sensitive or resource-intensive operations must mandate user authentication. The AVideo platform typically utilizes a specific method, such as User::isLogged(), to enforce these access controls.

The vulnerable script accepts an HTTP POST request with a JSON body containing three specific keys: privateKeyToDecryptMsg, textToDecrypt, and keyPassword. The application parses this JSON stream and assigns the values directly to an internal object. The script then calls the decryptMessage() function, passing these untrusted values directly as arguments.

Because the PHP execution model processes scripts linearly, the absence of an early termination condition allows execution to proceed directly to the cryptographic subroutine. There is no middleware intercepting the request, nor is there any authorization check validating whether the requesting client possesses the permissions required to utilize the cryptographic utility.

This structural oversight transforms the server into an unauthenticated decryption oracle. The application logic trusts the inbound payload unconditionally, failing to verify the origin or intent of the request before allocating CPU time and memory to handle the PGP block processing.

Code Analysis

The fundamental flaw exists within the execution flow of decryptMessage.json.php. The script expects a JSON payload and processes it without enforcing authentication constraints. The relevant vulnerable sequence demonstrates the direct ingestion of POST data into the decryption logic.

// Vulnerable Code Path (Conceptual representation based on analysis)
header('Content-Type: application/json');
$obj = new stdClass();
 
// Input is retrieved from php://input
$postData = file_get_contents("php://input");
$requestObj = json_decode($postData);
 
// Direct execution of cryptographic function without authentication
$textDecrypted = decryptMessage(
    $requestObj->textToDecrypt, 
    $requestObj->privateKeyToDecryptMsg, 
    $requestObj->keyPassword
);
 
echo json_encode(array("decrypted" => $textDecrypted));

As of March 2026, the WWBN/AVideo repository remains unpatched for this specific issue. To remediate this flaw, developers must introduce an explicit authentication verification block at the beginning of the script. This block must terminate the script execution if the requester does not hold a valid session.

// Required Patch Pattern
header('Content-Type: application/json');
 
// Enforce authentication check immediately
if (!User::isLogged()) {
    http_response_code(403);
    die(json_encode(array("error" => "Access denied. Authentication required.")));
}
 
$postData = file_get_contents("php://input");
$requestObj = json_decode($postData);
 
$textDecrypted = decryptMessage(
    $requestObj->textToDecrypt, 
    $requestObj->privateKeyToDecryptMsg, 
    $requestObj->keyPassword
);

This proposed fix ensures that the runtime environment evaluates the user's authentication state before parsing the JSON body or allocating resources. If the User::isLogged() condition returns false, the script halts immediately, completely mitigating both the resource exhaustion vector and the localized logging exposure.

Exploitation

Exploitation of this vulnerability requires minimal technical sophistication and no specialized network positioning. An attacker must simply identify an AVideo instance exposing the /plugin/LoginControl/pgp/decryptMessage.json.php endpoint. The attack relies solely on standard HTTP requests.

The attacker crafts a custom HTTP POST payload containing valid, base64-encoded PGP material. The payload structure must conform to the JSON schema expected by the script. This includes a valid private key, a ciphertext block encrypted for that specific key, and the corresponding passphrase.

curl -s -X POST \
  "https://target.example.com/plugin/LoginControl/pgp/decryptMessage.json.php" \
  -H "Content-Type: application/json" \
  -d '{
    "textToDecrypt": "-----BEGIN PGP MESSAGE-----\n<base64_ciphertext>\n-----END PGP MESSAGE-----",
    "privateKeyToDecryptMsg": "-----BEGIN PGP PRIVATE KEY BLOCK-----\n<base64_private_key>\n-----END PGP PRIVATE KEY BLOCK-----",
    "keyPassword": "passphrase"
  }'

Upon receiving the request, the AVideo server processes the payload and returns the decrypted plaintext in the HTTP response. A threat actor can script this exploitation phase, submitting highly complex cryptographic tasks in rapid succession to deliberately saturate the CPU capabilities of the hosting environment.

Impact Assessment

The concrete security impact of GHSA-5X2W-37XF-7962 focuses on application availability and secondary information disclosure. The vulnerability holds a CVSS v4.0 score of 4.8 (Medium), represented by the vector CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:L/VI:N/VA:L/SC:N/SI:N/SA:N. This score reflects the immediate lack of system-level compromise, contrasted with the localized disruption capabilities.

The primary concern is the potential for Application-layer Denial of Service (T1499.003). Asymmetric cryptographic operations, particularly PGP decryption, demand significant CPU overhead. By orchestrating a flood of valid decryption requests, an unauthenticated attacker can effectively monopolize the application's PHP worker pool. This resource starvation renders the AVideo platform unresponsive to legitimate user traffic.

A secondary risk involves CWE-312 (Cleartext Storage of Sensitive Information). The attack requires the submission of raw PGP private keys and their plaintext passphrases in the HTTP request body. Web application environments frequently feature extensive diagnostic logging, error tracing, or WAF inspection mechanisms that serialize and store incoming POST bodies. This behavior inadvertently records sensitive key material in persistent, unencrypted system logs.

Finally, the vulnerability provides attackers with an anonymous cryptographic processing oracle. Threat actors can abuse this exposed infrastructure to perform their own unrelated PGP decryption tasks, obfuscating their operational infrastructure while shifting the computational burden and power costs onto the victim organization.

Remediation and Mitigation

As of the initial disclosure in March 2026, the WWBN/AVideo upstream repository has not released an official patch specifically resolving GHSA-5X2W-37XF-7962. Consequently, system administrators and security engineering teams must rely on localized mitigation strategies to secure vulnerable instances. The most effective immediate mitigation requires web server-level restrictions.

Administrators should implement access control rules within their web server configuration (Nginx or Apache) to deny public access to the plugin/LoginControl/pgp/ directory entirely. If the application configuration permits, restricting this directory to internal IP ranges or requiring HTTP Basic Authentication will prevent anonymous exploitation attempts. In Nginx, this involves creating a specific location block that returns a 403 Forbidden status for the targeted URI.

For teams capable of modifying the application source code directly, inserting the User::isLogged() check at the absolute beginning of decryptMessage.json.php serves as a permanent hotfix. This code-level remediation correctly aligns the script's execution requirements with the platform's overarching authorization architecture.

Furthermore, organizations must review their observability and logging pipelines. It is essential to configure web application firewalls, load balancers, and PHP error handlers to sanitize or drop POST request bodies directed at cryptographic endpoints. This operational safeguard prevents the incidental persistence of sensitive private keys and passphrases in system logs.

Technical Appendix

CVSS Score
4.8/ 10
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:L/VI:N/VA:L/SC:N/SI:N/SA:N

Affected Systems

WWBN/AVideo

Affected Versions Detail

Product
Affected Versions
Fixed Version
AVideo
WWBN
<= 25.0Unpatched
AttributeDetail
Advisory IDGHSA-5X2W-37XF-7962
CWE IDCWE-306, CWE-287, CWE-312
CVSS v4.0 Score4.8 (Medium)
Attack VectorNetwork
Authentication RequiredNone
Exploit StatusProof of Concept (PoC) Available
Vulnerability ImpactResource Exhaustion (DoS) and Information Exposure
Patch StatusUnpatched (as of March 2026)

MITRE ATT&CK Mapping

T1078.001Valid Accounts: Default Accounts
Initial Access
T1499.003Endpoint Denial of Service: Application Exhaustion Flood
Impact
T1539Steal Web Session Cookie
Credential Access
CWE-306
Missing Authentication for Critical Function

The software does not perform any authentication for functionality that requires a provable user identity or consumes a significant amount of resources.

Known Exploits & Detection

Valentin Lobstein (Chocapikk) Security AuditProof of concept HTTP POST request executing unauthenticated PGP decryption.

Vulnerability Timeline

Security audit by Valentin Lobstein identifies vulnerabilities in AVideo.
2025-12-18
Official GitHub Advisory GHSA-5X2W-37XF-7962 is published.
2026-03-19

References & Sources

  • [1]GitHub Advisory: GHSA-5X2W-37XF-7962
  • [2]OSV Record
  • [3]Valentin Lobstein Security Audit
  • [4]Project Repository

Attack Flow Diagram

Press enter or space to select a node. You can then use the arrow keys to move the node around. Press delete to remove it and escape to cancel.
Press enter or space to select an edge. You can then press delete to remove it or escape to cancel.

More Reports

•20 minutes ago•CVE-2026-17106
7.1

CVE-2026-17106: Container-to-Host Arbitrary File Write in moby/go-archive (CopyEscape)

CVE-2026-17106 (CopyEscape) is a container-to-host arbitrary file-write vulnerability within Docker's archiving and extraction library moby/go-archive. By utilizing a Time-of-Check to Time-of-Use (TOCTOU) race condition during the file-walking stage inside a running container, a malicious container process can force the host engine to produce a compromised tar stream. During client-side extraction, the Docker CLI resolves directory entries through absolute symbolic links, resulting in arbitrary file creation or modification on the host system.

Amit Schendel
Amit Schendel
1 views•6 min read
•about 1 hour ago•CVE-2026-73974
5.5

CVE-2026-73974: Local Path Traversal and Privilege Escalation in Linuxfabrik Monitoring Plugins

CVE-2026-73974 is a local path traversal vulnerability in linuxfabrik-lib and Linuxfabrik Monitoring Plugins. Under standard monitoring configurations running with elevated privileges via sudo, this flaw can be exploited by an unprivileged local user to read arbitrary root-only files, resulting in local privilege escalation.

Alon Barad
Alon Barad
3 views•5 min read
•about 2 hours ago•CVE-2026-71417
7.3

CVE-2026-71417: Authorization Bypass Leading to Unauthorized TLS Certificate Revocation in Netflix Lemur

CVE-2026-71417 is an authorization bypass vulnerability (CWE-639) in Netflix Lemur, an open-source TLS certificate management framework. In versions prior to 1.9.3, a low-privileged authenticated user can bypass role and certificate-level permission boundaries to revoke arbitrary managed TLS certificates at the upstream Certificate Authority (CA). This vulnerability stems from an architectural issue where Lemur evaluates authorization against internal database row ownership rather than the unique, cryptographic identity of the certificate. An attacker can exploit this flaw by uploading a duplicate record of a target certificate and requesting its revocation, triggering a downstream CA-side revocation and a subsequent denial-of-service (DoS) condition for services relying on the target certificate.

Amit Schendel
Amit Schendel
5 views•6 min read
•about 3 hours ago•CVE-2026-68927
3.0

CVE-2026-68927: Server-Side Request Forgery Port Restriction Bypass in Mobile Security Framework (MobSF)

A Server-Side Request Forgery (SSRF) vulnerability exists in Mobile Security Framework (MobSF) prior to version 4.5.1. The flaw occurs in the Android App Link validation process, where a split-validation vulnerability allows an authenticated attacker to perform port restriction bypasses and potential DNS rebinding attacks against internal infrastructure.

Amit Schendel
Amit Schendel
4 views•7 min read
•about 4 hours ago•CVE-2026-68923
6.5

CVE-2026-68923: Cross-Site Request Forgery (CSRF) in Mobile Security Framework (MobSF)

CVE-2026-68923 describes a critical security regression in the Mobile Security Framework (MobSF) where vital security middleware, including Cross-Site Request Forgery (CSRF) validation, clickjacking protection, and standard HTTP security controls, was deactivated. The vulnerability arose from a partial migration of Django's middleware settings, which silently omitted security-critical components while preserving legacy definitions. Authenticated sessions on vulnerable instances were left exposed to arbitrary administrative state modifications initiated via cross-site vectors.

Amit Schendel
Amit Schendel
4 views•6 min read
•about 5 hours ago•CVE-2026-68922
5.5

CVE-2026-68922: Arbitrary File Read via Path Traversal in MobSF ZIP/APK Icon Extraction

CVE-2026-68922 is a path traversal vulnerability in Mobile Security Framework (MobSF) prior to version 4.5.1. The vulnerability exists within the Android icon extraction process when analyzing uploaded ZIP or APK archives, allowing an authenticated attacker to read arbitrary files from the server.

Amit Schendel
Amit Schendel
5 views•6 min read