---
id: CVE-2026-18352
title: >-
  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
summary: >-
  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 con…
severity: high
cvss: 7.5
cvssVector: 'CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N'
cwe:
  - CWE-22
published: '2026-08-02'
updated: '2026-08-02'
source: NVD
sourceUrl: 'https://nvd.nist.gov/vuln/detail/CVE-2026-18352'
references:
  - url: >-
      https://plugins.trac.wordpress.org/browser/user-access-manager/tags/2.3.14/src/Controller/BaseControllerTrait.php%3A22-50
    label: security@wordfence.com
  - url: >-
      https://plugins.trac.wordpress.org/browser/user-access-manager/tags/2.3.14/src/Controller/Frontend/RedirectController.php%3A50-99%2C119-141%2C245-252
    label: security@wordfence.com
  - url: >-
      https://plugins.trac.wordpress.org/browser/user-access-manager/tags/2.3.14/src/File/FileHandler.php%3A79-124%2C270-294
    label: security@wordfence.com
  - url: >-
      https://plugins.trac.wordpress.org/browser/user-access-manager/tags/2.3.14/src/UserAccessManager.php%3A512-516
    label: security@wordfence.com
  - url: 'https://plugins.trac.wordpress.org/changeset/3628895/user-access-manager'
    label: security@wordfence.com
  - url: >-
      https://www.wordfence.com/threat-intel/vulnerabilities/id/4e88efe0-ffad-4d66-bb03-3f3a9dcbe5b1?source=cve
    label: security@wordfence.com
tags:
  - nvd
ingestedAt: '2026-08-02T09:18:12.049Z'
epss: 0.00739
epssPercentile: 0.53144
---

## Overview

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.

## Remediation

Refer to the linked advisories for vendor-supplied fixes and affected version ranges.
