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

CVE-2025-14003

CVE-2025-14003 Supply Chain Attack in Modula
📅 PUBLISHED: 2025-12-15 14:25 UTC 🔄 UPDATED: 2026-08-12 14:53 UTC
[ PATCH UNDER REVIEW ↓ ] Remains UNDER REVIEW until an independent source confirms the fix
[ DEFENSE PATCH ↓ ]
💣 PoC: Public
👁️
Proof of Concept - Indicates if functional exploit code is publicly available, drastically increasing the risk of immediate attacks.
🎯 EPSS: 0.04%
👁️
0.04% probability
<1× above the median CVE
Tier: LOW
30-day exploitation window · FIRST.org · updated daily
🥷 MITRE: T1190
👁️
MITRE ATT&CK Tactic - Describes the strategy hackers use to execute this attack.
VULNERABLE: version not auto-detected — verify your deployed version locally
CVSS VECTOR BREAKDOWN 4.3
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: N Confidentiality None
I: L Integrity Low
A: N Availability None
4.3
THREAT LEVEL
■ tracking this CVE ✓ independent patch confirmation ⧗ same-origin mirror (GHSA) ⚠ active exploitation verification policy →

Executive Summary

CVE-2025-14003 is a missing authorization vulnerability in the WordPress plugin Image Gallery – Photo Grid & Video Gallery by Modula. The flaw resides in the add_images_to_gallery_callback() function, which lacks a capability check. This allows authenticated attackers with Author-level access or higher to add images to arbitrary Modula galleries owned by other users. The vulnerability affects all versions up to and including 2.13.3. As of this report, no patch has been released by the vendor, and no public exploit code is available. The CVSS score is 4.3 (Medium), with a low EPSS score of 0.0%, indicating low exploitation likelihood at this time.

⚡ 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

This vulnerability is specific to the WordPress plugin ecosystem. The plugin is distributed via the official WordPress plugin repository. Users should monitor for updates from the vendor and consider disabling the plugin if no patch is forthcoming.

CVSS Breakdown & Threat Level

  • CVSS Vector: CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:L/A:N
  • Base Score: 4.3 (Medium)
  • Attack Vector: Network
  • Attack Complexity: Low
  • Privileges Required: Low (Author-level)
  • User Interaction: None
  • Scope: Unchanged
  • Confidentiality Impact: None
  • Integrity Impact: Low (unauthorized addition of images)
  • Availability Impact: None

Threat Level: Medium. While the impact is limited to unauthorized image addition, it can be used to deface galleries or inject malicious content (e.g., images with embedded scripts) if combined with other vulnerabilities.

Deep Dive & Mechanics

The vulnerability is a classic Missing Authorization (CWE-862) in the WordPress AJAX handler add_images_to_gallery_callback(). This function is registered via wp_ajax_ hooks and is intended to allow users with appropriate permissions to add images to their own galleries. However, the function does not verify that the current user owns the target gallery or has the edit_posts capability for that specific gallery.

Attack Flow:

  1. An authenticated attacker with Author-level privileges (or higher) logs into WordPress.
  2. The attacker crafts a POST request to the WordPress admin-ajax.php endpoint with the action modula_add_images_to_gallery.
  3. The request includes parameters such as gallery_id (targeting another user's gallery) and an array of image IDs.
  4. The vulnerable function processes the request without checking if the attacker owns the gallery, thus adding the images to the target gallery.

Root Cause: The add_images_to_gallery_callback() function lacks a current_user_can() check or a nonce verification tied to the gallery ownership.

Vulnerable vs. Patched Code

Vulnerable Code (<= 2.13.3):

add_action('wp_ajax_modula_add_images_to_gallery', 'add_images_to_gallery_callback');

function add_images_to_gallery_callback() {
    $gallery_id = intval($_POST['gallery_id']);
    $images = $_POST['images']; // array of image IDs

    // Missing capability check
    update_post_meta($gallery_id, 'modula-images', $images);
    wp_die();
}

Patched Code (Hypothetical):

add_action('wp_ajax_modula_add_images_to_gallery', 'add_images_to_gallery_callback');

function add_images_to_gallery_callback() {
    // Verify nonce
    if (!wp_verify_nonce($_POST['_wpnonce'], 'modula_add_images')) {
        wp_die('Security check failed.');
    }

    $gallery_id = intval($_POST['gallery_id']);
    $images = $_POST['images'];

    // Check if user can edit this specific gallery
    if (!current_user_can('edit_post', $gallery_id)) {
        wp_die('You do not have permission to modify this gallery.');
    }

    update_post_meta($gallery_id, 'modula-images', $images);
    wp_die();
}

Exploitation & Lab Setup

Red Team

Prerequisites:

  • WordPress instance with Modula plugin <= 2.13.3
  • Authenticated user with Author-level privileges

Exploitation Steps:

  1. Log in as an Author-level user.
  2. Obtain a valid nonce (if required) by inspecting the page source or using a tool like Burp Suite.
  3. Send a crafted POST request to wp-admin/admin-ajax.php:
curl -X POST http://target.com/wp-admin/admin-ajax.php \
  -d "action=modula_add_images_to_gallery&gallery_id=123&images[]=456&images[]=789" \
  --cookie "wordpress_logged_in_xxx=..."

Note: No public exploit code is available. The above is a conceptual example.

Blue Team

Detection:

  • Monitor admin-ajax.php requests for the modula_add_images_to_gallery action.
  • Look for unusual patterns where an Author-level user modifies galleries owned by other users.
  • Check for rapid, bulk image additions to galleries.

Hunting Query (Splunk):

index=web sourcetype=access_combined
| search uri_path="/wp-admin/admin-ajax.php" AND form_data.action="modula_add_images_to_gallery"
| stats count by clientip, user, gallery_id
| where count > 10

Indicators of Compromise (IOCs)

  • Network: POST requests to /wp-admin/admin-ajax.php with action=modula_add_images_to_gallery
  • File: No specific file IOCs; the vulnerability is logic-based.
  • Log: WordPress debug log entries showing add_images_to_gallery_callback being called by unexpected users.
  • Database: Unauthorized image IDs in wp_postmeta for modula-images key on galleries not owned by the attacker.

Detection Engineering

YARA Rule

rule CVE_2025_14003_Modula_Missing_Auth {
    meta:
        description = "Detects vulnerable Modula plugin code with missing capability check"
        author = "Valters IT"
        date = "2025-04-10"
        reference = "CVE-2025-14003"
    strings:
        $func = "add_images_to_gallery_callback"
        $ajax = "wp_ajax_modula_add_images_to_gallery"
        $vuln = "update_post_meta($gallery_id, 'modula-images', $images)"
    condition:
        all of them
}

Sigma Rule

title: CVE-2025-14003 Modula Unauthorized Image Addition
id: 8a9b7c6d-5e4f-3a2b-1c0d-9e8f7a6b5c4d
status: experimental
description: Detects attempts to exploit missing authorization in Modula plugin
author: Valters IT
logsource:
    category: webserver
    product: apache
detection:
    selection:
        cs-method: 'POST'
        c-uri: '/wp-admin/admin-ajax.php'
        cs-uri-query|contains: 'action=modula_add_images_to_gallery'
    condition: selection
falsepositives:
    - Legitimate gallery management by authorized users
level: medium

Suricata Rule

alert http any any -> any any (
    msg:"CVE-2025-14003 Modula Unauthorized Image Addition";
    flow:to_server;
    content:"POST";
    http_method;
    content:"/wp-admin/admin-ajax.php";
    http_uri;
    content:"action=modula_add_images_to_gallery";
    http_client_body;
    classtype:attempted-admin;
    sid:1000001;
    rev:1;
)

Remediation & Mitigation

Immediate Actions:

  1. Disable the plugin if no patch is available and the functionality is not critical.
  2. Restrict Author-level users from accessing the admin-ajax.php endpoint via Web Application Firewall (WAF) rules.
  3. Implement a custom capability check by adding a filter to the plugin's code (if you have developer access):
    add_filter('modula_can_add_images', function($can, $gallery_id) {
        return current_user_can('edit_post', $gallery_id);
    }, 10, 2);
    

Long-term:

  • Monitor the Modula plugin repository for a patched version.
  • Consider switching to an alternative gallery plugin with proper authorization checks.
  • Conduct a security audit of all WordPress plugins in use.

Valters IT
DevSecOps & Cyber Threat Intelligence

👁️ SHODAN DORKS (THREAT HUNTING)

What is this? Security researchers use these exact search queries on Shodan.io (a search engine for internet-connected devices) to find vulnerable systems globally. You can copy these dorks to see if your organization's IP space is exposed.

http.title:"Modula"
http.html:"modula-gallery"

💣 PoC CODE AVAILABLE

Exploit code for this CVE is tracked in our database. Access poc_code via API Pro.

[ API_PRO ] →
◈ SOURCE Analysis & enrichment: valtersit.com/cve/CVE-2025-14003/ · 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.