Atomic Edge analysis of CVE-2026-65516 (metadata-based):
This vulnerability is an unauthenticated Server-Side Request Forgery (SSRF) in the PeproDev Ultimate Invoice plugin for WordPress, affecting versions up to and including 2.2.6. It allows an unauthenticated attacker to force the web application to issue HTTP requests to arbitrary internal or external destinations. The CVSS score of 7.2 (AV:N/AC:L/PR:N/UI:N/S:C/C:L/I:L/A:N) indicates the attack requires no authentication, is simple to execute, and can impact services beyond the web server’s network boundary.
The root cause is a missing or insufficient validation of a user-supplied URL parameter before the plugin passes it to an outbound HTTP request function. The plugin likely has an AJAX handler, REST endpoint, or admin-post action that accepts a URL (commonly used for fetching invoice templates, remote logos, or payment gateway callbacks) and calls WordPress core functions like `wp_remote_get`, `wp_remote_post`, or PHP’s `file_get_contents`/`curl_exec`. Atomic Edge analysis concludes the plugin does not restrict the destination scheme, host, or port, nor does it prevent requests to loopback addresses (127.0.0.1, localhost, RFC 1918 ranges). These conclusions are inferred from the CWE classification and the lack of a code diff; they are not confirmed from source code.
To exploit this, an attacker would submit a crafted request to the plugin’s vulnerable endpoint. Atomic Edge research identifies the WordPress AJAX handler as the most likely attack surface, since many invoice plugins use AJAX actions for dynamic data fetching. The request would target `/wp-admin/admin-ajax.php` with `action=pepro_invoice_fetch_url` (or a similar action name) and a `url` parameter containing an internal address, such as `http://127.0.0.1:8080/admin` or `http://169.254.169.254/latest/meta-data/`. Because the handler lacks a nonce or capability check, the request succeeds without authentication. The plugin then performs the SSRF request and may return the response data to the attacker, enabling information disclosure and modification of internal services.
Remediation requires strict URL validation. The plugin must whitelist allowed protocols (HTTPS/HTTP for specific domains) and block access to private IP ranges, loopback addresses, and link-local addresses. Developers should use a robust library like `wp_safe_remote_get()`, which prevents requests to localhost and private IPs by default, and implement an explicit allowlist for external hosts. Additionally, they should add nonce verification and capability checks to all AJAX and REST endpoints to prevent unauthenticated access. Applying these fixes requires releasing a patched plugin version, which is currently unavailable.
If exploited, this SSRF allows unauthenticated attackers to query internal services, potentially leaking sensitive data from management interfaces, cloud metadata endpoints, or internal databases. It also permits attackers to send crafted requests to internal systems, modifying data or triggering actions. While the direct impact on the web server itself is limited to information disclosure and limited write access (CVSS integrity impact is Low), the reach into the internal network can be leveraged for further attacks, such as credential harvesting or lateral movement.







