{"id":"CVE-2026-112329","kind":"vulnerability","aliases":["CVE-2026-112329"],"related":[],"title":"Sensei LMS WordPress plugin: subscribers can message any course author","description":"The Sensei LMS WordPress plugin before 4.26.4 contains a broken access control vulnerability in the legacy save_new_message handler hooked on the init action, which validates only a generic nonce without verifying course enrollment or restricting post_id to valid post types. Authenticated attackers, including unprivileged Subscribers, can supply an arbitrary post_id for any course, lesson, or quiz to create a private message addressed to that post's author, bypassing the enrollment checks enforced by the newer REST send-message controller.","summary":"The Sensei LMS WordPress plugin before 4.26.4 has a legacy message handler that checks only a generic nonce and skips course enrollment checks. An logged-in subscriber can send a private message to the author of any course, lesson or quiz they are not enrolled in.","severity":"medium","cvss":5.3,"epss":null,"exploited":false,"exploited_at":null,"products":[],"ecosystems":[],"tags":["lms","package","self-hosted","sensei-lms","wordpress"],"not_affected_if":["no-open-registration","sensei-lms-4.26.4-or-later"],"how_to_check":"- Check the installed Sensei LMS version in the WordPress plugins screen or `wp plugin get sensei-lms --field=version`\n- Confirm whether the legacy `save_new_message` handler exists in the plugin code (unknown whether the sources name a file path)","fix":"- Update Sensei LMS to `4.26.4` or later\n- unknown whether a non-patch workaround exists in the sources","status":"open","published_at":"2026-10-19T15:17:06+00:00","first_seen_at":"2026-10-23T21:57:18+00:00","triaged_at":"2026-10-25T04:25:06+00:00","updated_at":"2026-10-25T04:25:06+00:00","category":"package","confidence":0.6,"triage":{"at":"2026-10-25T04:25:06Z","model":"claude-haiku-5-5","output":{"fix":"- Update Sensei LMS to `4.26.4` or later\n- unknown whether a non-patch workaround exists in the sources","reach":"internet","title":"Sensei LMS WordPress plugin: subscribers can message any course author","impact":"low","summary":"The Sensei LMS WordPress plugin before 4.26.4 has a legacy message handler that checks only a generic nonce and skips course enrollment checks. An logged-in subscriber can send a private message to the author of any course, lesson or quiz they are not enrolled in.","category":"package","nicknames":[],"who_cares":["wordpress","sensei-lms","lms","self-hosted"],"confidence":0.6,"needs_auth":"yes","worst_case":"Authenticated users can send unauthorized private messages to course authors","analyst_note":"","how_to_check":"- Check the installed Sensei LMS version in the WordPress plugins screen or `wp plugin get sensei-lms --field=version`\n- Confirm whether the legacy `save_new_message` handler exists in the plugin code (unknown whether the sources name a file path)","needs_analyst":false,"not_affected_if":["sensei-lms-4.26.4-or-later","no-open-registration"],"who_is_affected":"Sites running Sensei LMS before `4.26.4` where users can hold accounts with the Subscriber role or higher, which is the usual case for course sites that allow registration. Sites with no open registration and no logged-in users have less exposure. The sources do not say whether managed WordPress hosts ship the fix automatically.","user_interaction":"no","needs_special_setup":"unknown","severity_if_unknown":"medium"},"cost_usd":0.000623,"input_tokens":3393,"output_tokens":568,"severity_before":"medium"},"analyst_status":null,"analyst_note":null,"search":"'-112329':13A,16A '-2026':12A,15A '4.26.4':32B,78C 'access':82C 'action':96C 'address':137C 'arbitrari':123C 'attack':116C 'authent':115C 'author':10A,61B,142C 'broken':81C 'bypass':143C 'check':39B,48B,146C 'contain':79C 'control':83C,155C 'cours':9A,46B,64B,105C,128C 'creat':133C 'cve':11A,14A 'enforc':147C 'enrol':47B,71B,106C,145C 'generic':42B,101C 'handler':37B,91C 'hook':92C 'host':21B 'id':110C,125C 'includ':117C 'init':95C 'legaci':35B,87C 'lesson':65B,129C 'lms':2A,17B,24B,28B,74C 'log':51B 'logged-in':50B 'messag':7A,36B,58B,90C,136C,154C 'new':89C 'newer':150C 'nonc':43B,102C 'packag':18B 'plugin':4A,30B,76C 'post':109C,113C,124C,140C 'privat':57B,135C 'quiz':67B,131C 'rest':151C 'restrict':108C 'save':88C 'self':20B 'self-host':19B 'send':55B,153C 'send-messag':152C 'sensei':1A,23B,27B,73C 'sensei-lm':22B 'skip':45B 'subscrib':5A,53B,119C 'suppli':121C 'type':114C 'unprivileg':118C 'valid':98C,112C 'verifi':104C 'vulner':84C 'without':103C 'wordpress':3A,25B,29B,75C","nicknames":[],"mitigations":[],"who_affected":"Sites running Sensei LMS before `4.26.4` where users can hold accounts with the Subscriber role or higher, which is the usual case for course sites that allow registration. Sites with no open registration and no logged-in users have less exposure. The sources do not say whether managed WordPress hosts ship the fix automatically.","tier":"C","verified":{},"analyst_revisit_at":null,"first_public_at":"2026-10-19T15:17:06+00:00","kev":null,"cvss_vector":"CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:N/VI:L/VA:N/SC:N/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X","cvss_by":"disclosure@vulncheck.com","poc_count":0,"sources":[{"source":"nvd","external_id":"CVE-2026-112329","url":"https://nvd.nist.gov/vuln/detail/CVE-2026-112329","severity":null,"published_at":"2026-10-19T15:17:06+00:00","modified_at":"2026-10-22T03:16:37+00:00","first_seen_at":"2026-10-23T21:57:18+00:00","fetched_at":"2026-10-23T22:28:57+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"}