Modula Image Gallery – Photo Grid & Video Gallery: A security weakness
Modula Image Gallery (affected: <= 3.0.1). An unauthenticated visitor can enumerate modula_gallery_id values. Modula_Meta::add_metas() loads the matching gallery on frontend requests without checking publication status or read permission, then emits private attachment metadata and original image URLs through Open Graph/Twitter tags. Those URLs allow direct download of the private images.
- Component
- Modula Image Gallery – Photo Grid & Video Gallery
- Plugin slug
modula-best-grid-gallery- Affected
- <= 3.0.1
- Safe version
3.0.2- Published
- Sep 25, 2026
- Weakness
- CWE-862 — Missing Authorization
This CVE was published Sep 25, 2026 and is one of 14 known issues for this plugin.
Update, patch or deactivate.
Update to 3.0.2 or a later supported release. The official changelog confirms remediation for this issue. Check publication visibility and per-gallery read permission before emitting metadata or shortcode content. Treat already exposed file URLs as disclosed and use authenticated delivery for confidential images.
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 Modula Image Gallery – Photo Grid & Video Gallery plugin for WordPress is vulnerable to unauthorized disclosure of private gallery contents in versions up to, and including, 3.0.1. This is due to the Modula_Meta::add_metas() function being hooked to wp_head on every frontend request and looking up any post via get_post( $_GET['modula_gallery_id'] ) without verifying the gallery's post_status or the requester's capability to read it — the gallery-side input guard is bugged (empty('modula_gallery_id') tests a nonempty string literal instead of the GET parameter, so it is always false), the only object validation is a post_type === 'modula-gallery' check, and no is_user_logged_in()/current_user_can('read_post', $gallery_id) check is performed. This makes it possible for unauthenticated attackers to enumerate private modula-gallery posts and their member attachments and recover the image's title, description, dimensions, and original upload URL via Open Graph/Twitter meta tags emitted in the response, which then allows direct unauthenticated download of the original private image bytes.
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-89406
- 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