Events Manager temporary uploads are readable when their identifier leaks
Events Manager before 7.4 exposes GET /wp-json/events-manager/v1/uploads without authorization. EM\Uploads\API::handle_load() accepts temp_id, constructs the corresponding file in the system temporary directory, reads it with file_get_contents() and returns the raw bytes. An unauthenticated caller who already knows another uploader's high-entropy temporary identifier can therefore retrieve the in-progress upload; guessing alone is infeasible, the identifier is normally disclosed only to the uploader, and the file is removed after submission or scheduled cleanup. The optional X-Filenames header can also carry identifier data.
- Component
- Events Manager
- Plugin slug
events-manager- Affected
- < 7.4
- Safe version
7.4- Published
- Aug 06, 2026
This CVE was published Aug 06, 2026 and is one of 46 known issues for this plugin.
Update, patch or deactivate.
Update Events Manager to 7.4 or later. Treat temporary identifiers as secrets, review application logs for upload retrieval by unrelated clients and handle exposed uploaded files according to their sensitivity.
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 Events Manager WordPress plugin before 7.4 does not perform any authorization check on a REST route that serves temporarily stored file uploads, allowing unauthenticated users to retrieve another user's in-progress upload when its temporary identifier is known. The identifier is high-entropy, is disclosed only to the uploader, and the file is removed on submission or by a scheduled cleanup, so a cross-user read is not achievable by guessing alone.
CVE / CNA vector: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N