<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>MDJM - CraftedSignal Threat Feed</title><link>https://feed.craftedsignal.io/vendors/mdjm/</link><description>Trending threats, MITRE ATT&amp;CK coverage, and detection metadata. Fed continuously.</description><generator>Hugo</generator><language>en</language><managingEditor>hello@craftedsignal.io</managingEditor><webMaster>hello@craftedsignal.io</webMaster><lastBuildDate>Thu, 23 Jul 2026 10:21:37 +0000</lastBuildDate><atom:link href="https://feed.craftedsignal.io/vendors/mdjm/feed.xml" rel="self" type="application/rss+xml"/><item><title>WordPress MDJM Event Management Plugin Privilege Escalation (CVE-2026-15017)</title><link>https://feed.craftedsignal.io/briefs/2026-07-wordpress-mdjm-privesc/</link><pubDate>Thu, 23 Jul 2026 10:21:37 +0000</pubDate><author>hello@craftedsignal.io</author><guid isPermaLink="true">https://feed.craftedsignal.io/briefs/2026-07-wordpress-mdjm-privesc/</guid><description>An unauthenticated privilege escalation vulnerability (CVE-2026-15017) in the MDJM Event Management plugin for WordPress, affecting all versions up to 1.7.8.4, allows attackers to grant arbitrary MDJM capabilities to any registered WordPress role due to missing capability checks and nonce verification, ultimately enabling a low-privilege user to escalate to Administrator.</description><content:encoded><![CDATA[<p>The MDJM Event Management plugin for WordPress contains a critical privilege escalation vulnerability, CVE-2026-15017, affecting all versions up to and including 1.7.8.4. This flaw arises from insufficient capability checks and a lack of nonce verification within the <code>MDJM_Permissions::set_permissions()</code> and <code>MDJM_Employee_Manager::init()</code> functions. Additionally, the plugin fails to implement server-side allow-list validation on the <code>employee_roles[]</code> and <code>new_role</code> POST parameters. Attackers can exploit this by manipulating these parameters to assign arbitrary MDJM capabilities, such as <code>mdjm_employee</code> and <code>mdjm_employee_edit</code>, to any existing WordPress user role. The <code>MDJM_Permissions::init()</code> function, registered on the public WordPress <code>init</code> hook, allows this role manipulation endpoint to be accessed without requiring any prior authentication, making it possible for unauthenticated attackers to grant themselves elevated privileges. This vulnerability ultimately enables a low-privilege user, such as a subscriber, to escalate their account to Administrator privileges, granting full control over the affected WordPress site.</p>
<h2 id="attack-chain">Attack Chain</h2>
<ol>
<li>An unauthenticated attacker sends an HTTP POST request to a WordPress endpoint associated with the <code>MDJM_Permissions::init()</code> function.</li>
<li>The POST request includes specially crafted parameters, such as <code>employee_roles[]</code> and <code>new_role</code>, attempting to assign MDJM-specific capabilities like <code>mdjm_employee</code> or <code>mdjm_employee_edit</code> to a target WordPress user role (e.g., 'subscriber').</li>
<li>Due to missing capability checks, nonce verification, and server-side validation in the <code>MDJM_Permissions::set_permissions()</code> and <code>MDJM_Employee_Manager::init()</code> functions, the plugin processes these manipulated parameters via <code>mdjm_set_employee_role()</code> and <code>WP_User::set_role()</code>.</li>
<li>The target low-privilege account (e.g., a subscriber) is successfully updated with the newly assigned MDJM capabilities, effectively escalating its permissions within the plugin's scope.</li>
<li>The attacker, now operating with an account that possesses these elevated MDJM capabilities, may leverage other vulnerabilities or functionalities within the plugin or WordPress core.</li>
<li>The attacker uses their newly acquired capabilities to further escalate privileges, potentially by creating new administrative users, modifying existing user roles, or installing malicious plugins/themes.</li>
<li>The attacker achieves full Administrator privileges on the WordPress site, gaining complete control over its content, users, and underlying server if further exploitation is chained.</li>
</ol>
<h2 id="impact">Impact</h2>
<p>Successful exploitation of CVE-2026-15017 allows an unauthenticated attacker to gain administrative control over the affected WordPress site. This provides full access to website content, user data, plugin settings, and server-side files if the WordPress installation is further exploited. Attackers can deface the site, inject malicious scripts (e.g., for drive-by downloads or phishing), exfiltrate sensitive information, or use the compromised server as a platform for further attacks. The severity is high due to the lack of authentication required for initial access and the complete compromise of the website's integrity and confidentiality that follows.</p>
<h2 id="recommendation">Recommendation</h2>
<ul>
<li>Patch CVE-2026-15017 immediately by updating the MDJM Event Management plugin to a patched version once released by the vendor.</li>
<li>Review web server logs for suspicious HTTP POST requests directed at WordPress admin endpoints that attempt to manipulate <code>employee_roles[]</code> or <code>new_role</code> parameters, which could indicate exploitation attempts related to CVE-2026-15017.</li>
</ul>
]]></content:encoded><category domain="severity">high</category><category domain="type">advisory</category><category>wordpress</category><category>plugin</category><category>privilege-escalation</category><category>cve</category><category>web-application</category></item></channel></rss>