CVE-2026-15281
The User Access Manager plugin for WordPress is vulnerable to Second-Order SQL Injection via the 'id' parameter of the wp_ajax_save-attachment-compat AJAX action in versions up to, and including, 2.3.12. This is due to insufficient validation on the objectId value stored in the saveAjaxAttachmentData() function and subsequent unparameterized concatenation in the addQueryExcludedPostFilter() function — the stored value is later retrieved from the database and used as an array key, then directly imploded into a SQL NOT IN() clause without integer casting or prepared statements.
Leer descripción completaMostrar menos
This makes it possible for authenticated attackers, with subscriber-level access and above, to append additional SQL queries into already existing queries that can be used to extract sensitive information from the database.
CVSS
- Versión: 3.1
- Vector: CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:N
- Puntuación base: 6.5
Probabilidad de explotación (EPSS)
- Probabilidad de explotación en los próximos 30 días: 0.45%
- Percentil entre todas las CVEs puntuadas: 37
- Fecha de la puntuación: 6/10/2026
EPSS (Exploit Prediction Scoring System, de FIRST) estima la probabilidad de que una vulnerabilidad sea explotada en 30 días. Complementa a CVSS (impacto) y a CISA KEV (explotación confirmada).
Tecnologías afectadas (1)
⚠ Inferidas por IA a partir de la descripción — NVD aún no ha analizado esta CVE; no son CPE verificados.
CWE
- CWE-89
Referencias
- https://plugins.trac.wordpress.org/browser/user-access-manager/tags/2.3.12/src/Controller/Backend/PostObjectController.php#L103
- https://plugins.trac.wordpress.org/browser/user-access-manager/tags/2.3.12/src/Controller/Frontend/PostController.php#L275
- https://plugins.trac.wordpress.org/browser/user-access-manager/tags/2.3.12/src/UserGroup/AbstractUserGroup.php#L147
- https://plugins.trac.wordpress.org/browser/user-access-manager/tags/2.3.12/src/UserGroup/AbstractUserGroup.php#L253
- https://plugins.trac.wordpress.org/changeset?sfp_email=&sfph_mail=&reponame=&new=3607011%40user-access-manager%2Ftrunk%2Fsrc%2FController%2FFrontend%2FPostController.php&old=3447009%40user-access-manager%2Ftrunk%2Fsrc%2FController%2FFrontend%2FPostController.php&sfp_email=&sfph_mail=
- https://www.wordfence.com/threat-intel/vulnerabilities/id/8ebfc52b-278c-49d5-9226-d28a59335d46?source=cve
JSON original (NVD)
Mostrar
{
"id": "CVE-2026-15281",
"cveTags": [],
"metrics": {
"ssvcV203": [
{
"source": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"ssvcData": {
"id": "CVE-2026-15281",
"role": "CISA Coordinator",
"options": [
{
"exploitation": "none"
},
{
"automatable": "no"
},
{
"technicalImpact": "partial"
}
],
"version": "2.0.3",
"timestamp": "2026-08-05T13:43:01.821578Z"
}
}
],
"cvssMetricV31": [
{
"type": "Secondary",
"source": "security@wordfence.com",
"cvssData": {
"scope": "UNCHANGED",
"version": "3.1",
"baseScore": 6.5,
"attackVector": "NETWORK",
"baseSeverity": "MEDIUM",
"vectorString": "CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:N",
"integrityImpact": "NONE",
"userInteraction": "NONE",
"attackComplexity": "LOW",
"availabilityImpact": "NONE",
"privilegesRequired": "LOW",
"confidentialityImpact": "HIGH"
},
"impactScore": 3.6,
"exploitabilityScore": 2.8
}
]
},
"affected": [
{
"source": "security@wordfence.com",
"affectedData": [
{
"vendor": "gm_alex",
"product": "User Access Manager",
"versions": [
{
"status": "affected",
"version": "0",
"versionType": "semver",
"lessThanOrEqual": "2.3.12"
}
],
"defaultStatus": "unaffected"
}
]
}
],
"published": "2026-08-05T08:16:30.520",
"references": [
{
"url": "https://plugins.trac.wordpress.org/browser/user-access-manager/tags/2.3.12/src/Controller/Backend/PostObjectController.php#L103",
"source": "security@wordfence.com"
},
{
"url": "https://plugins.trac.wordpress.org/browser/user-access-manager/tags/2.3.12/src/Controller/Frontend/PostController.php#L275",
"source": "security@wordfence.com"
},
{
"url": "https://plugins.trac.wordpress.org/browser/user-access-manager/tags/2.3.12/src/UserGroup/AbstractUserGroup.php#L147",
"source": "security@wordfence.com"
},
{
"url": "https://plugins.trac.wordpress.org/browser/user-access-manager/tags/2.3.12/src/UserGroup/AbstractUserGroup.php#L253",
"source": "security@wordfence.com"
},
{
"url": "https://plugins.trac.wordpress.org/changeset?sfp_email=&sfph_mail=&reponame=&new=3607011%40user-access-manager%2Ftrunk%2Fsrc%2FController%2FFrontend%2FPostController.php&old=3447009%40user-access-manager%2Ftrunk%2Fsrc%2FController%2FFrontend%2FPostController.php&sfp_email=&sfph_mail=",
"source": "security@wordfence.com"
},
{
"url": "https://www.wordfence.com/threat-intel/vulnerabilities/id/8ebfc52b-278c-49d5-9226-d28a59335d46?source=cve",
"source": "security@wordfence.com"
}
],
"vulnStatus": "Deferred",
"weaknesses": [
{
"type": "Secondary",
"source": "security@wordfence.com",
"description": [
{
"lang": "en",
"value": "CWE-89"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "The User Access Manager plugin for WordPress is vulnerable to Second-Order SQL Injection via the 'id' parameter of the wp_ajax_save-attachment-compat AJAX action in versions up to, and including, 2.3.12. This is due to insufficient validation on the objectId value stored in the saveAjaxAttachmentData() function and subsequent unparameterized concatenation in the addQueryExcludedPostFilter() function — the stored value is later retrieved from the database and used as an array key, then directly imploded into a SQL NOT IN() clause without integer casting or prepared statements. This makes it possible for authenticated attackers, with subscriber-level access and above, to append additional SQL queries into already existing queries that can be used to extract sensitive information from the database."
}
],
"lastModified": "2026-08-12T21:00:37.147",
"sourceIdentifier": "security@wordfence.com"
}