Unauthenticated Access Control Bypass in JoomGallery
JoomGallery versions 4.3.0 and earlier are vulnerable to an access control bypass via the JSON view component, allowing unauthenticated attackers to retrieve protected image metadata and bypass password gates to download private content.
CVE search metadata
CVE search record: CVE-2026-66916. KEV: no. Product: JoomGallery (<= 4.3.0). Brief: Unauthenticated Access Control Bypass in JoomGallery. Brief link: https://feed.craftedsignal.io/briefs/2026-08-joomgallery-bypass/
JoomGallery versions 4.3.0 and earlier suffer from an improper access control vulnerability (CVE-2026-66916) in the JsonView.php component. While the HTML-based view correctly enforces password protection for gallery categories, the JSON interface (format=json) fails to implement the required pw_protected flag checks. This oversight permits unauthenticated remote attackers to query any public-access category ID and receive a full JSON object containing category titles, descriptions, and randomized file paths for protected images. Because JoomGallery relies on the obscurity of these randomized filenames for its security model, the leakage of filenames allows attackers to download the underlying protected images directly from the web server's static directory. This vulnerability affects JoomGallery installations running on Joomla, as the framework does not propagate access checks across different view formats.
Attack Chain
- Attacker identifies a JoomGallery installation and identifies target category IDs, which are sequential and easily enumerated.
- Attacker crafts an HTTP GET request to the target component:
index.php?option=com_joomgallery&view=category&format=json&id=[ID]. - The web server routes the request to
site/com_joomgallery/src/View/Category/JsonView.php. - The application logic executes
getImages()without verifying if the requested category is password protected. - The application serializes the category's private data, including randomized full filenames, into a JSON response.
- The attacker receives the JSON response containing the secret image filenames.
- The attacker constructs a direct request to the static file path:
/images/joomgallery/originals/[filename]. - The web server serves the protected image directly, completing the unauthorized access.
Impact
Successful exploitation allows for the full disclosure of private gallery metadata and the unauthorized download of password-protected images. Since categories are enumerable via ID, an attacker can systematically harvest all content from any password-protected, public-access category. This vulnerability impacts all users of JoomGallery versions 4.3.0 and earlier until upgraded to 4.4.0.
Recommendation
Prioritized, concrete actions for detection engineering teams:
- Upgrade JoomGallery to version 4.4.0 immediately to address CVE-2026-66916.
- Implement web server access controls or WAF rules to block access to the
/images/joomgallery/originals/directory from external requests. - Deploy the Sigma rules below to detect attempts to access the vulnerable JSON view endpoint.
- Audit existing JoomGallery categories to ensure sensitive images are not stored in directories exposed via direct web requests.
Immediate actions
Patch JoomGallery to version 4.4.0
Deploy Sigma detection for format=json queries
Detection coverage 1
Detect CVE-2026-66916 Exploitation Attempt
highDetects unauthenticated requests to the JoomGallery JSON category view, a potential indicator of CVE-2026-66916 exploitation.
Detection queries are available on the platform. Get full rules →