WordPress security changelog
HIGH CVE-2026-89406 Deferred

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.

CVE / CNA score 7.5 CVSS 3.1 · security@wordfence.com
NVD score Pending NVD has not published its own CVSS assessment.
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