<?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>Broken-Access-Control — CraftedSignal Threat Feed</title><link>https://feed.craftedsignal.io/tags/broken-access-control/</link><description>Trending threats, MITRE ATT&amp;CK coverage, and detection metadata — refreshed continuously.</description><generator>Hugo</generator><language>en</language><managingEditor>hello@craftedsignal.io</managingEditor><webMaster>hello@craftedsignal.io</webMaster><lastBuildDate>Fri, 17 Apr 2026 12:00:00 +0000</lastBuildDate><atom:link href="https://feed.craftedsignal.io/tags/broken-access-control/feed.xml" rel="self" type="application/rss+xml"/><item><title>Paperclip Cross-Tenant Agent API Token Minting Vulnerability</title><link>https://feed.craftedsignal.io/briefs/2026-04-paperclip-agent-token-minting/</link><pubDate>Fri, 17 Apr 2026 12:00:00 +0000</pubDate><author>hello@craftedsignal.io</author><guid isPermaLink="true">https://feed.craftedsignal.io/briefs/2026-04-paperclip-agent-token-minting/</guid><description>A vulnerability in Paperclip allows any authenticated user to mint agent API tokens for other tenants, leading to unauthorized access and control due to missing company access checks.</description><content:encoded><![CDATA[<p>A critical vulnerability exists in Paperclip, specifically affecting instances running in authenticated mode with open sign-ups enabled. This flaw allows any authenticated user, even without any company memberships, to mint API tokens for agents belonging to other companies. This is due to the absence of <code>assertCompanyAccess</code> checks on the <code>/api/agents/:id/keys</code> endpoint and other agent lifecycle management endpoints. An attacker can exploit this to gain unauthorized access to sensitive information within the victim tenant, including company metadata, issues, approvals, agent configurations, and adapter settings. The vulnerability was verified on Paperclip version 2026.411.0-canary.8 (commit b649bd4), which is post the 2026.410.0 patch that addressed a related issue. This vulnerability poses a significant risk to multi-tenant Paperclip deployments.</p>
<h2 id="attack-chain">Attack Chain</h2>
<ol>
<li>Attacker signs up for a Paperclip account using the default <code>/api/auth/sign-up/email</code> endpoint.</li>
<li>Attacker verifies their account and confirms they have no company memberships via <code>GET /api/companies</code>.</li>
<li>Attacker identifies the ID of a target agent belonging to a different company, potentially through activity feeds or other exposed APIs.</li>
<li>Attacker sends a <code>POST</code> request to <code>/api/agents/:id/keys</code> with a desired name for the API key, targeting the victim agent&rsquo;s ID.</li>
<li>The server responds with a <code>201</code> status code, returning a plaintext <code>pcp_*</code> token. No company access check is performed at this stage.</li>
<li>Attacker uses the stolen token as a <code>Bearer</code> credential in subsequent API requests.</li>
<li>The <code>actorMiddleware</code> resolves the token to an actor with the victim&rsquo;s company ID, bypassing authorization checks.</li>
<li>Attacker can now access sensitive information such as company metadata, issues, approvals, and agent configurations via API endpoints like <code>/api/companies/:victimId</code>, <code>/api/companies/:victimId/issues</code>, and <code>/api/agents/:victimAgentId</code>. They can also pause, terminate, or delete the agent using other vulnerable endpoints.</li>
</ol>
<h2 id="impact">Impact</h2>
<p>This vulnerability allows for a complete bypass of tenancy boundaries in Paperclip. The impact includes:</p>
<ul>
<li><strong>Confidentiality:</strong> Unauthorized access to sensitive company data, including metadata, issues, approvals, agent configurations, and adapter settings.</li>
<li><strong>Integrity:</strong> Ability to manipulate agent configurations and trigger actions within the victim tenant, potentially leading to data breaches or malicious activities.</li>
<li><strong>Availability:</strong> Ability to pause, terminate, or delete agents belonging to other companies, disrupting their operations.</li>
</ul>
<p>The severity is high due to the ease of exploitation, default configurations, and the persistence of the stolen tokens. The vulnerability affects all Paperclip instances running in <code>authenticated</code> mode with open sign-up enabled.</p>
<h2 id="recommendation">Recommendation</h2>
<ul>
<li>Apply the suggested fix provided in the advisory to <code>server/src/routes/agents.ts</code> by implementing company access checks (<code>assertCompanyAccess</code>) for the <code>/api/agents/:id/keys</code> endpoint.</li>
<li>Audit and apply similar fixes to the sibling lifecycle handlers at <code>/agents/:id/pause</code>, <code>/resume</code>, <code>/terminate</code>, and <code>DELETE /agents/:id</code> as these share the same vulnerability.</li>
<li>Conduct a code-wide sweep for <code>assertBoard(req)</code> calls not immediately followed by <code>assertCompanyAccess</code> or <code>assertInstanceAdmin</code> to identify and address other potential cross-tenant access issues.</li>
<li>Deploy the Sigma rules provided below to your SIEM and tune for your environment to detect unauthorized token minting and API access.</li>
<li>Monitor Paperclip server logs for unusual API requests to <code>/api/agents/:id/keys</code> from users without company memberships.</li>
</ul>
]]></content:encoded><category domain="severity">critical</category><category domain="type">advisory</category><category>paperclip</category><category>broken-access-control</category><category>cross-tenant</category></item><item><title>wger Broken Access Control in Global Gym Configuration Update Endpoint</title><link>https://feed.craftedsignal.io/briefs/2024-01-09-wger-privesc/</link><pubDate>Thu, 16 Apr 2026 01:35:16 +0000</pubDate><author>hello@craftedsignal.io</author><guid isPermaLink="true">https://feed.craftedsignal.io/briefs/2024-01-09-wger-privesc/</guid><description>The wger application has a broken access control vulnerability in the global gym configuration update endpoint, allowing low-privileged authenticated users to modify installation-wide configuration settings and escalate privileges.</description><content:encoded><![CDATA[<p>The wger application exposes a global configuration edit endpoint at <code>/config/gym-config/edit</code> that is vulnerable to broken access control. The vulnerability exists because the <code>GymConfigUpdateView</code> uses the wrong mixin (<code>WgerFormMixin</code> instead of <code>WgerPermissionMixin</code>), preventing proper enforcement of the <code>config.change_gymconfig</code> permission. This allows a low-privileged authenticated user to modify the global <code>GymConfig</code> singleton (pk=1), triggering server-side side effects via the <code>GymConfig.save()</code> method. This vertical privilege escalation allows unauthorized modification of installation-wide state and bulk updates to other users’ records, violating the intended administrative trust boundary. The vulnerability affects wger versions 2.1 and earlier.</p>
<h2 id="attack-chain">Attack Chain</h2>
<ol>
<li>An attacker authenticates to the wger application with a low-privileged user account.</li>
<li>The attacker navigates to the global configuration edit endpoint at <code>/config/gym-config/edit</code>.</li>
<li>The server processes the request via the <code>GymConfigUpdateView</code> which inherits from <code>WgerFormMixin</code>.</li>
<li><code>WgerFormMixin</code> attempts to perform ownership checks but fails because <code>GymConfig</code> does not implement <code>get_owner_object()</code>.</li>
<li>The application allows the attacker to modify the <code>default_gym</code> setting.</li>
<li>The attacker submits the form with a modified <code>default_gym</code> value.</li>
<li>The <code>GymConfig.save()</code> method is called, updating <code>UserProfile</code> records with a gym set to null.</li>
<li>The attacker has successfully modified installation-wide configuration, potentially bulk-updating user records and violating administrative trust boundaries.</li>
</ol>
<h2 id="impact">Impact</h2>
<p>Successful exploitation of this vulnerability allows a low-privileged user to escalate privileges and modify global configuration settings. This could lead to unauthorized modification of user profiles and tenant assignments, affecting new registrations and existing users lacking a gym. On deployments with multiple gyms, this vulnerability can result in widespread data manipulation and a violation of the intended administrative trust boundary. The vulnerability affects wger deployments, impacting organizations that rely on the application for managing fitness and exercise data.</p>
<h2 id="recommendation">Recommendation</h2>
<ul>
<li>Apply the recommended fix by ensuring permission enforcement runs before the form dispatch. Implement the suggested code change in <code>wger/config/views/gym_config.py</code> using the project mixin by updating the inheritance order: <code>class GymConfigUpdateView(WgerPermissionMixin, WgerFormMixin, UpdateView):</code> as described in the advisory.</li>
<li>Deploy the Sigma rule &ldquo;wger GymConfig Update by Low-Privilege User&rdquo; to detect unauthorized modification of the GymConfig object via the <code>/config/gym-config/edit</code> endpoint.</li>
<li>Monitor web server logs for POST requests to the <code>/config/gym-config/edit</code> endpoint originating from low-privileged user accounts, using the URL as an indicator.</li>
</ul>
]]></content:encoded><category domain="severity">high</category><category domain="type">advisory</category><category>privilege-escalation</category><category>broken-access-control</category><category>web-application</category></item><item><title>Genealogy PHP Application Broken Access Control Vulnerability (CVE-2026-39355)</title><link>https://feed.craftedsignal.io/briefs/2026-04-genealogy-acl/</link><pubDate>Tue, 07 Apr 2026 19:16:46 +0000</pubDate><author>hello@craftedsignal.io</author><guid isPermaLink="true">https://feed.craftedsignal.io/briefs/2026-04-genealogy-acl/</guid><description>A critical broken access control vulnerability (CVE-2026-39355) in Genealogy PHP application versions prior to 5.9.1 allows authenticated users to transfer ownership of arbitrary teams, leading to complete takeover of team workspaces and unrestricted data access.</description><content:encoded><![CDATA[<p>Genealogy is a family tree PHP application that, prior to version 5.9.1, contained a critical broken access control vulnerability identified as CVE-2026-39355. This flaw allows any authenticated user to transfer ownership of non-personal teams to themselves without proper authorization checks. This unauthorized ownership transfer leads to complete takeover of other users’ team workspaces, granting the attacker unrestricted access to all genealogy data associated with the compromised team. This vulnerability poses a significant risk to data confidentiality and integrity within organizations using affected versions of the Genealogy application. Version 5.9.1 addresses and resolves this vulnerability.</p>
<h2 id="attack-chain">Attack Chain</h2>
<ol>
<li>An attacker authenticates to the Genealogy application with valid user credentials.</li>
<li>The attacker identifies a target &ldquo;team&rdquo; within the application that is not their own.</li>
<li>The attacker crafts a malicious HTTP request to the application&rsquo;s team ownership transfer functionality, specifying the target team and the attacker&rsquo;s user ID as the new owner.</li>
<li>Due to the broken access control vulnerability (CVE-2026-39355), the application fails to validate the attacker&rsquo;s authorization to perform the ownership transfer.</li>
<li>The application incorrectly updates the team&rsquo;s ownership data, assigning ownership to the attacker.</li>
<li>The attacker now possesses full administrative control over the compromised team&rsquo;s workspace and data.</li>
<li>The attacker accesses and exfiltrates sensitive genealogy data, including family trees, personal information, and other confidential records.</li>
</ol>
<h2 id="impact">Impact</h2>
<p>Successful exploitation of CVE-2026-39355 allows an attacker to gain complete control over targeted teams within the Genealogy application. This leads to unauthorized access to sensitive genealogy data, potentially impacting all users and families represented within the compromised teams. The impact includes data exfiltration, modification, or deletion, potentially causing significant reputational damage and legal liabilities. While the exact number of affected installations is unknown, all organizations running versions prior to 5.9.1 are vulnerable.</p>
<h2 id="recommendation">Recommendation</h2>
<ul>
<li>Immediately upgrade the Genealogy application to version 5.9.1 or later to patch CVE-2026-39355.</li>
<li>Monitor web server logs for suspicious POST requests to team management endpoints, specifically those related to team ownership transfer. Use the provided Sigma rule <code>Detect Suspicious Genealogy Team Ownership Transfer</code> to detect unauthorized attempts.</li>
<li>Implement strict access control policies within the Genealogy application, ensuring that users can only access and modify data related to teams they are authorized to manage.</li>
<li>Enable detailed logging for all user authentication and authorization events within the Genealogy application to facilitate incident investigation.</li>
</ul>
]]></content:encoded><category domain="severity">critical</category><category domain="type">advisory</category><category>broken-access-control</category><category>php</category><category>genealogy</category><category>CVE-2026-39355</category></item><item><title>Open WebUI Broken Access Control Vulnerability (CVE-2026-34222)</title><link>https://feed.craftedsignal.io/briefs/2026-04-open-webui-access-control/</link><pubDate>Wed, 01 Apr 2026 18:16:29 +0000</pubDate><author>hello@craftedsignal.io</author><guid isPermaLink="true">https://feed.craftedsignal.io/briefs/2026-04-open-webui-access-control/</guid><description>A broken access control vulnerability in Open WebUI versions prior to 0.8.11 (CVE-2026-34222) allows authenticated users to potentially access or modify tool values they should not be authorized to, leading to privilege escalation and unauthorized configuration changes.</description><content:encoded><![CDATA[<p>Open WebUI is a self-hosted artificial intelligence platform designed to operate entirely offline. Prior to version 0.8.11, a broken access control vulnerability, identified as CVE-2026-34222, exists within the application concerning tool values. An authenticated user with low privileges could potentially manipulate these tool values, leading to unintended functionality or unauthorized access to sensitive configurations. The vulnerability was reported by GitHub, Inc. and patched in version 0.8.11. Exploitation requires an existing user account. The impact could allow an attacker to reconfigure the AI platform or access unauthorized tools.</p>
<h2 id="attack-chain">Attack Chain</h2>
<ol>
<li>An attacker gains a low-privileged account on the Open WebUI platform, either by registering an account if allowed or compromising an existing user.</li>
<li>The attacker analyzes the Open WebUI web application to identify the API endpoints or data structures used to manage &ldquo;tool values.&rdquo;</li>
<li>The attacker crafts malicious HTTP requests targeting the &ldquo;tool values&rdquo; API endpoint, attempting to modify a tool value associated with a higher-privileged function or user.</li>
<li>Due to the broken access control, the application fails to properly validate if the attacker&rsquo;s account has the authorization to modify the target tool value.</li>
<li>The attacker successfully modifies the tool value.</li>
<li>The attacker triggers the functionality associated with the modified tool value.</li>
<li>The application executes the functionality with the modified tool value, potentially granting the attacker unauthorized access.</li>
<li>The attacker leverages this access to escalate privileges within the system, for example, by executing commands with elevated permissions or accessing sensitive data.</li>
</ol>
<h2 id="impact">Impact</h2>
<p>Successful exploitation of this vulnerability allows an attacker with a low-privileged account to bypass intended access controls within the Open WebUI platform. This could allow unauthorized modifications to the AI platform&rsquo;s configuration, access to restricted tools or features, and potentially lead to complete compromise of the system. The CVE has a CVSS v3.1 score of 7.7, indicating a high severity. The number of potential victims is dependent on the deployment size of vulnerable Open WebUI instances.</p>
<h2 id="recommendation">Recommendation</h2>
<ul>
<li>Upgrade Open WebUI to version 0.8.11 or later to patch the CVE-2026-34222 vulnerability.</li>
<li>Implement the Sigma rule &ldquo;Detect Open WebUI Tool Value Modification&rdquo; to monitor for suspicious activity related to tool value changes.</li>
<li>Review and enforce strict access control policies within the Open WebUI application to minimize the impact of potential access control vulnerabilities.</li>
<li>Monitor web server logs for suspicious POST requests to API endpoints associated with tool configuration and management, as indicated in the attack chain.</li>
</ul>
]]></content:encoded><category domain="severity">medium</category><category domain="type">advisory</category><category>broken-access-control</category><category>web-application</category><category>privilege-escalation</category></item><item><title>Avo Framework Broken Access Control Vulnerability</title><link>https://feed.craftedsignal.io/briefs/2024-01-03-avo-broken-access-control/</link><pubDate>Wed, 03 Jan 2024 12:00:00 +0000</pubDate><author>hello@craftedsignal.io</author><guid isPermaLink="true">https://feed.craftedsignal.io/briefs/2024-01-03-avo-broken-access-control/</guid><description>Avo framework version 3.x contains a critical Broken Access Control vulnerability in the ActionsController. Due to insecure action lookup logic, an authenticated user can execute any Action class on any resource, even if the action is not registered for that specific resource. This leads to Privilege Escalation and unauthorized data manipulation across the entire application. Version 3.31.2 remediates this issue.</description><content:encoded><![CDATA[<p>A critical broken access control vulnerability exists within the Avo framework, specifically affecting version 3.x. This vulnerability resides in the <code>ActionsController</code> and stems from an insecure action lookup mechanism. An authenticated user, regardless of their privilege level, can execute any Action class (descendants of <code>Avo::BaseAction</code>) on any resource within the application. This occurs because the system fails to validate whether the requested action is legitimately registered or permitted for the resource context specified in the request. The absence of this verification allows for the circumvention of intended resource-action mappings. Successful exploitation leads to privilege escalation, unauthorized data manipulation, and potential compromise of the application&rsquo;s integrity. It is recommended to upgrade to version 3.31.2 or later, which addresses this vulnerability.</p>
<h2 id="attack-chain">Attack Chain</h2>
<ol>
<li>An attacker authenticates to the Avo admin panel with low-level privileges.</li>
<li>The attacker identifies a sensitive action class, such as <code>Avo::Actions::ToggleAdmin</code>.</li>
<li>The attacker identifies a target record ID, such as a user ID they wish to manipulate.</li>
<li>The attacker crafts a POST request to a resource endpoint where the target action is NOT registered (e.g., <code>/admin/resources/posts/actions</code>).</li>
<li>The POST request includes a payload containing the <code>action_id</code> parameter set to the sensitive action class (<code>Avo::Actions::ToggleAdmin</code>).</li>
<li>The POST request also includes a <code>fields[avo_resource_ids]</code> parameter set to the target record ID.</li>
<li>Due to the insecure action lookup in <code>Avo::ActionsController</code>, the server executes the <code>ToggleAdmin</code> action on the specified user ID.</li>
<li>The attacker&rsquo;s privileges are escalated, or unauthorized data manipulation occurs due to the successful execution of the unintended action.</li>
</ol>
<h2 id="impact">Impact</h2>
<p>The exploitation of this broken access control vulnerability can have severe consequences. A successful attack can lead to privilege escalation, allowing attackers to gain administrative control over the application. Unauthorized operations can be performed, leading to data breaches or data manipulation. Sensitive actions designed for restricted resources can be triggered against any record ID, potentially compromising the integrity and confidentiality of data. The impact includes unauthorized deletion, archival, or updates to records, causing reputational damage and potential financial losses.</p>
<h2 id="recommendation">Recommendation</h2>
<ul>
<li>Upgrade to Avo version 3.31.2 or later, which contains the necessary fix to restrict action lookup to registered actions for the current resource context.</li>
<li>Deploy the Sigma rule <code>Detect Avo Unauthorized Action Execution</code> to monitor for attempts to execute actions on resources where they are not registered.</li>
<li>Review and audit existing Avo action registrations to ensure that actions are appropriately mapped to resources within the application.</li>
</ul>
]]></content:encoded><category domain="severity">high</category><category domain="type">advisory</category><category>broken-access-control</category><category>privilege-escalation</category><category>ruby</category></item></channel></rss>