Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessObtain Contributor account
-
DeliveryGrab valid nonce from post edit screen
-
ExploitSubmit crafted post_ID passing int-cast capability check
-
ExecutionInject appended SQL into query
-
ImpactExtract password hashes and secrets from database
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A05:2025 - Injection
ASVS 5.0
V1 - Encoding and Sanitization Parameterized queries, prepared statements
MITRE ATT&CK
2 techniques across 2 tactics: Initial Access, Persistence The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up. |
| Exploitation Conditions | Requires an authenticated WordPress account with Contributor-level capability or higher on a site running Custom Field Template <= 2.7.8; the attacker must first obtain a valid nonce, which any Contributor can legitimately retrieve from the post edit screen. Exploitation targets the 'post_ID' parameter and works despite the current_user_can('edit_post', $id) check because WordPress casts the value to an integer for the permission decision while the unsanitized full string reaches the SQL query. Limiting factors: it is not unauthenticated (PR:L), so it is most dangerous on sites allowing open/untrusted Contributor registration or multi-author setups; impact is confidentiality-only (database read/exfiltration), with no direct write or availability effect described. |
| Impact | This is a genuine but moderate-priority issue. The CVSS 6.5 vector (AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:N) describes a network-reachable, low-complexity SQL injection requiring only Contributor-level authentication, with high confidentiality impact and no integrity or availability impact - consistent with a data-extraction SQLi. The most important signal is the described capability-check bypass: current_user_can('edit_post', $id) is defeated because WordPress casts $id to an integer for the permission decision while the full unsanitized string is preserved and passed to the SQL sink, and the required nonce is legitimately obtainable by any Contributor from the post edit screen - so the PR:L barrier is real but low. No EPSS score, no CISA KEV listing, and no public POC were provided in the input, so there is no evidence of active or automated exploitation; risk is elevated on sites that grant untrusted users Contributor accounts (open registration, multi-author blogs) and low on single-author/locked-down installs. Bottom line: real and worth patching, but not an emergency - it is an authenticated info-disclosure SQLi, not an unauthenticated RCE. |
| Exploit ScenarioDerived | An attacker holding (or self-registering into) a Contributor account opens the post edit screen to obtain a valid nonce, then submits a request with a malicious 'post_ID' value crafted so its integer prefix passes the edit_post capability check while its full string body is concatenated into the plugin's SQL query. Using UNION or stacked/appended sub-queries they exfiltrate data such as user password hashes and secret keys from the database. No public exploit code was identified in the provided data, but the technique is standard and low-complexity. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Sep 19, 2026
Authenticated SQL injection in the Custom Field Template plugin for WordPress, affecting all versions up to and including 2.7.8, lets any Contributor-level user inject arbitrary SQL through the unsanitized 'post_ID' parameter and read the entire site database, including password hashes, private post content, and secrets stored by other plugins. The plugin's current_user_can('edit_post', $id) guard does not stop the attack because WordPress casts the identifier to an integer for the permission decision while the original unsanitized string continues to the SQL sink, and the accompanying nonce is legitimately obtainable by any Contributor from the post edit screen. Risk is concentrated on sites with open registration, untrusted or multi-author Contributor accounts; no public exploit code has been identified at time of analysis and the issue is not listed in CISA KEV, with impact limited to confidentiality (CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:N).
RemediationAI
No vendor-released patched version has been independently confirmed: the available fix reference is an upstream Trac changeset (https://plugins.trac.wordpress.org/changeset?reponame=&old=3589466%40custom-field-template&new=3589466%40custom-field-template), so treat this as 'Upstream fix available (PR/commit); released patched version not independently confirmed' and verify on the plugin's WordPress.org page whether a build newer than 2.7.8 has shipped before relying on an upgrade alone. Until a fixed build is verified, the most effective single action is to deactivate Custom Field Template; the trade-off is immediate loss of its custom-field UI, which may break editorial workflows if those fields are rendered by the theme. If the plugin must stay active, harden the account surface instead of the plugin: disable open user registration and remove the Contributor role from any account that does not need it (or strip the edit_posts capability via a role-management plugin), which closes the authenticated path described by PR:L but degrades legitimate multi-author publishing. A WAF rule or reverse-proxy filter that rejects SQL metacharacters in the post_ID parameter, plus alerting on unusual SELECT/UNION patterns against wp_ tables, raises the cost of exploitation but is bypassable through nonce rotation and encoding tricks and should not be the sole control. Finally, assume any pre-patch Contributor-level account may have already exfiltrated data: rotate database credentials and WordPress salts, and review the wp_users, wp_usermeta and wp_options tables for unexpected access if compromise is suspected.
Affected VersionsENISA
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 1 package in euvd
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
The issue is a classic CWE-89 SQL injection in a WordPress plugin. Custom Field Template builds queries against WordPress core tables directly through the $wpdb abstraction layer instead of using $wpdb->prepare() with placeholders, so the 'post_ID' value supplied by the caller is concatenated into the existing statement with no escaping (esc_sql/absint) applied. The affected code paths are visible in the plugin's Trac source for tags 2.7.7 and 2.7.8 (custom-field-template.php around lines 105, 3353, 3479 and 4442), i.e. the flaw predates the latest tagged release and is not a 2.7.8-only regression. What makes the vulnerability noteworthy is the layered-but-broken authorization model: the plugin gates the action with current_user_can('edit_post', $id), but WordPress normalizes $id to an integer when evaluating that meta capability, while the raw, attacker-controlled string is preserved and later handed to the database. The required anti-CSRF nonce does not raise the bar meaningfully because the nonce is issued to any user who can open a post edit screen, which is exactly the Contributor-and-above population the CVSS vector describes (PR:L). The result is a second-order style read primitive that allows UNION/stacked query injection to exfiltrate arbitrary rows from the WordPress database.
Know when Custom Field Template gets its next vulnerability
- Watch products and get an email when something new is published
- Check this CVE against your own stack and servers
- Exploit and PoC references, threat intelligence from 22 sources
No credit card · 7-day full trial
Severity by source
AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:N
Network SQLi requiring only Contributor auth and an easily obtained nonce (PR:L, AC:L, UI:N); enables full DB read (C:H) but no described write or DoS (I:N/A:N).
Primary rating from Vendor (Wordfence).
CVSS VectorVendor: Wordfence
DescriptionCVE.org
The Custom Field Template plugin for WordPress is vulnerable to generic SQL Injection via the 'post_ID' parameter in all versions up to, and including, 2.7.8 due to insufficient escaping on the user supplied parameter and lack of sufficient preparation on the existing SQL query. This makes it possible for authenticated attackers, with contributor-level access and above, to append additional SQL queries into already existing queries that can be used to extract sensitive information from the database. The capability check via current_user_can('edit_post', $id) is bypassable because WordPress internally casts $id to an integer for the permission evaluation while the full unsanitized string is preserved and passed to the SQL sink, and a valid nonce - which is also required - can be legitimately obtained by any Contributor-level user from the post edit screen.
Threat Intelligence Overview
How this decision was reached
The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
SQL injection exploits the way applications construct database queries by mixing user input directly into SQL statements.
More in Custom Field Template
View allCross-Site Request Forgery (CSRF) vulnerability in Hiroaki Miyashita Custom Field Template plugin <= 2.5.8 versions. Rat
SQL injection in the Custom Field Template WordPress plugin (versions <= 2.7.8) allows a low-privileged authenticated us
The Custom Field Template plugin for WordPress is vulnerable to Stored Cross-Site Scripting via the plugin's custom fiel
The Custom Field Template plugin for WordPress is vulnerable to Stored Cross-Site Scripting via the plugin's 'cpt' short
Unauth. Rated medium severity (CVSS 6.1), this vulnerability is remotely exploitable, no authentication required, low at
Improper Neutralization of Input During Web Page Generation (XSS or 'Cross-site Scripting') vulnerability in Hiroaki Miy
The Custom Field Template plugin for WordPress is vulnerable to Stored Cross-Site Scripting via admin settings in all ve
The Custom Field Template plugin for WordPress is vulnerable to Sensitive Information Exposure in all versions up to, an
Authenticated users with contributor-level access or above can permanently delete arbitrary media attachments site-wide
The Custom Field Template plugin for WordPress is vulnerable to Cross-Site Request Forgery in versions up to, and includ
EUVD-2026-83557
GHSA-fv9m-mw9j-43cg
NVD
CVE.org
EPSS
Vulnrichment
Exploit-DB