User Access Manager attachment checks can be decoupled from the file read
User Access Manager through 2.3.15 handles public file delivery through uamfiletype and uamgetfile. An unauthenticated attacker can supply a traversing uamgetfile path together with attachment_id for a legitimate public attachment. attachment_url_to_postid() returns 0 for the traversing path, after which get_post(0) falls back to WordPress's global post selected by attachment_id; the access check therefore approves the public attachment while FileHandler streams the attacker-selected server path through fopen() or readfile(). This can disclose wp-config.php, credentials and other files readable by PHP.
- Component
- User Access Manager
- Plugin slug
user-access-manager- Affected
- <= 2.3.15
- Safe version
2.3.16- Published
- Aug 02, 2026
This CVE was published Aug 02, 2026 and is one of 3 known issues for this plugin.
Update, patch or deactivate.
Update User Access Manager to 2.3.16 or later; the upstream 2.3.16 changelog identifies the unauthenticated path-traversal file-read fix. Review requests containing uamgetfile and attachment_id, rotate secrets from any exposed configuration files, and investigate access to sensitive server paths.
A safe version is available, so updating to that version or later is the preferred remediation. If an immediate update is not practical, consider a targeted application patch or temporarily restricting the affected functionality.
Deactivate only when warranted by your risk profile, or when advised by your hosting provider in the limited circumstances where the vulnerability cannot otherwise be mitigated. If you’re unsure which action is appropriate, contact Fused or your hosting provider for guidance.
Technical description
The User Access Manager plugin for WordPress is vulnerable to Directory Traversal in all versions up to, and including, 2.3.15 via the 'uamgetfile' parameter parameter. This makes it possible for unauthenticated attackers to read the contents of arbitrary files on the server, which can contain sensitive information. This is possible because when attachment_url_to_postid() returns 0 for a traversal path, the plugin falls back to the global post set by a valid ?attachment_id parameter supplied by the attacker, causing the access check to pass against a legitimate public attachment while the file streamed is the attacker-chosen path.
CVE / CNA vector: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N
Primary and upstream sources
- NVD record for CVE-2026-18352
- WordPress upstream reference plugins.trac.wordpress.org
- WordPress upstream reference plugins.trac.wordpress.org
- WordPress upstream reference plugins.trac.wordpress.org
- WordPress upstream reference plugins.trac.wordpress.org
- WordPress upstream reference plugins.trac.wordpress.org
- Wordfence advisory wordfence.com