{"id":"CVE-2026-107659","kind":"vulnerability","aliases":["CVE-2026-107659"],"related":[],"title":"WordPress Modula Gallery plugin: unauthenticated users read gallery passwords via REST","description":"The Modula Image Gallery – Photo Grid & Video Gallery plugin for WordPress is vulnerable to Sensitive Information Exposure in all versions up to, and including, 3.0.11 via the 'id (post ID in /wp-json/wp/v2/modula-gallery/{id}) or none for collection route' parameter. This makes it possible for unauthenticated attackers to extract the plaintext Password Protect password and username for every published gallery from the modulaSettings REST field. The plugin's own /wp-json/modula/v2/gallery/{id}/settings endpoint correctly redacts the password for unauthenticated callers via redact_settings_for_public(), but no equivalent redaction is applied on the core /wp-json/wp/v2/modula-gallery path exposed by show_in_rest=true CPT registration.","summary":"Modula Image Gallery for WordPress, up to and including 3.0.11, exposes the plaintext Password Protect password and username of every published gallery through the core WordPress REST API. An unauthenticated attacker can read those credentials and open password-protected galleries.","severity":"high","cvss":7.5,"epss":null,"exploited":false,"exploited_at":null,"products":[],"ecosystems":[],"tags":["package","self-hosted","wordpress","wordpress-plugin"],"not_affected_if":["default-config"],"how_to_check":"- Check the installed version of the Modula Image Gallery plugin in the WordPress admin under Plugins; affected versions are `3.0.11` and below.\n- Request `/wp-json/wp/v2/modula-gallery` without logging in and look for a `modulaSettings` field containing password values.","fix":"- Update the Modula Image Gallery plugin to a version later than `3.0.11`, as released by the vendor (the exact fixed version is unknown from the sources).\n- Until patched, disable Password Protect on galleries or restrict access to the REST route.","status":"open","published_at":"2026-10-16T05:17:28+00:00","first_seen_at":"2026-10-23T21:57:12+00:00","triaged_at":"2026-10-25T03:25:17+00:00","updated_at":"2026-10-25T03:25:17+00:00","category":"package","confidence":0.8,"triage":{"at":"2026-10-25T03:25:17Z","model":"claude-haiku-5-5","output":{"fix":"- Update the Modula Image Gallery plugin to a version later than `3.0.11`, as released by the vendor (the exact fixed version is unknown from the sources).\n- Until patched, disable Password Protect on galleries or restrict access to the REST route.","reach":"internet","title":"WordPress Modula Gallery plugin: unauthenticated users read gallery passwords via REST","impact":"medium","summary":"Modula Image Gallery for WordPress, up to and including 3.0.11, exposes the plaintext Password Protect password and username of every published gallery through the core WordPress REST API. An unauthenticated attacker can read those credentials and open password-protected galleries.","category":"package","nicknames":[],"who_cares":["wordpress","wordpress-plugin","self-hosted"],"confidence":0.8,"needs_auth":"no","worst_case":"Gallery passwords and usernames readable by anyone over the REST API","analyst_note":"Confirm the fixed plugin version and whether unprotected galleries expose any other data, via the NVD entry or the vendor changelog.","how_to_check":"- Check the installed version of the Modula Image Gallery plugin in the WordPress admin under Plugins; affected versions are `3.0.11` and below.\n- Request `/wp-json/wp/v2/modula-gallery` without logging in and look for a `modulaSettings` field containing password values.","needs_analyst":true,"not_affected_if":["default-config"],"who_is_affected":"Sites running the Modula Image Gallery WordPress plugin at version 3.0.11 or earlier that have galleries using Password Protect. Sites without the plugin, or on a fixed version, are not exposed. Whether unprotected galleries are at risk is unknown from the sources.","user_interaction":"no","needs_special_setup":"yes","severity_if_unknown":"high"},"cost_usd":0.000668,"input_tokens":3500,"output_tokens":635,"severity_before":"high"},"analyst_status":null,"analyst_note":null,"search":"'-107659':14A,17A '-2026':13A,16A '/settings':137C '/wp-json/modula/v2/gallery':135C '/wp-json/wp/v2/modula-gallery':98C,160C '3.0.11':35B,91C 'api':53B 'appli':156C 'attack':56B,112C 'caller':145C 'collect':103C 'core':50B,159C 'correct':139C 'cpt':168C 'credenti':60B 'cve':12A,15A 'endpoint':138C 'equival':153C 'everi':45B,123C 'expos':36B,162C 'exposur':83C 'extract':114C 'field':130C 'galleri':3A,8A,28B,47B,66B,70C,74C,125C 'grid':72C 'host':21B 'id':94C,96C,99C,136C 'imag':27B,69C 'includ':34B,90C 'inform':82C 'make':107C 'modula':2A,26B,68C 'modulaset':128C 'none':101C 'open':62B 'packag':18B 'paramet':105C 'password':9A,39B,41B,64B,117C,119C,142C 'password-protect':63B 'path':161C 'photo':71C 'plaintext':38B,116C 'plugin':4A,25B,75C,132C 'possibl':109C 'post':95C 'protect':40B,65B,118C 'public':150C 'publish':46B,124C 'read':7A,58B 'redact':140C,147C,154C 'registr':169C 'rest':11A,52B,129C,166C 'rout':104C 'self':20B 'self-host':19B 'sensit':81C 'set':148C 'show':164C 'true':167C 'unauthent':5A,55B,111C,144C 'user':6A 'usernam':43B,121C 'version':86C 'via':10A,92C,146C 'video':73C 'vulner':79C 'wordpress':1A,22B,24B,30B,51B,77C 'wordpress-plugin':23B","nicknames":[],"mitigations":[],"who_affected":"Sites running the Modula Image Gallery WordPress plugin at version 3.0.11 or earlier that have galleries using Password Protect. Sites without the plugin, or on a fixed version, are not exposed. Whether unprotected galleries are at risk is unknown from the sources.","tier":"B","verified":{},"analyst_revisit_at":null,"first_public_at":"2026-10-16T05:17:28+00:00","kev":null,"cvss_vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N","cvss_by":"security@wordfence.com","poc_count":0,"sources":[{"source":"nvd","external_id":"CVE-2026-107659","url":"https://nvd.nist.gov/vuln/detail/CVE-2026-107659","severity":null,"published_at":"2026-10-16T05:17:28+00:00","modified_at":"2026-10-16T18:17:25+00:00","first_seen_at":"2026-10-23T21:57:12+00:00","fetched_at":"2026-10-23T22:28:55+00:00","note":null}],"documents":[],"notice":"Free to read at a human pace. An API with keys and an MCP server are in preparation; early access: hello@infrastack.ai"}