<?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/" xmlns:webfeeds="http://webfeeds.org/rss/1.0"><channel><title>Frain-Dev - CraftedSignal Threat Feed</title><link>https://feed.craftedsignal.io/vendors/frain-dev/</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>Fri, 18 Sep 2026 19:50:47 +0000</lastBuildDate><atom:link href="https://feed.craftedsignal.io/vendors/frain-dev/feed.xml" rel="self" type="application/rss+xml"/><image><url>https://feed.craftedsignal.io/favicon-32x32.png</url><title>CraftedSignal Threat Feed</title><link>https://feed.craftedsignal.io/</link><width>32</width><height>32</height></image><webfeeds:icon>https://feed.craftedsignal.io/favicon.svg</webfeeds:icon><item><title>Cross-Tenant IDOR in Convoy API Exposes Broker Credentials</title><link>https://feed.craftedsignal.io/briefs/2026-09-convoy-idor/</link><pubDate>Fri, 18 Sep 2026 19:50:47 +0000</pubDate><author>hello@craftedsignal.io</author><guid isPermaLink="true">https://feed.craftedsignal.io/briefs/2026-09-convoy-idor/</guid><description>Convoy versions up to and including 26.6.2 contain an Insecure Direct Object Reference (IDOR) vulnerability that allows authenticated users to leak plaintext message broker credentials from other tenants.</description><content:encoded><![CDATA[<p>Convoy (frain-dev/convoy) is affected by a cross-tenant Insecure Direct Object Reference (IDOR) vulnerability, tracked as CVE-2026-81505, which impacts all versions up to and including v26.6.2. The vulnerability exists within the <code>GetSource</code> API endpoint (<code>GET /api/v1/projects/{projectID}/sources/{sourceID}</code>). While the application correctly authorizes the caller against the <code>{projectID}</code> in the URL, the underlying database service <code>FindSourceByID</code> fails to filter the results by project ownership.</p>
<p>An attacker with valid credentials for any project on a Convoy instance can supply the <code>sourceID</code> of a victim's configuration to retrieve the full, unredacted Source record. The response includes plaintext credentials for integrated message brokers, such as AMQP, Kafka, SQS, and Google PubSub. This flaw permits unauthorized cross-tenant information disclosure, allowing any authenticated user to harvest live secrets from other organizations using the same Convoy instance. No patch is currently available.</p>
<h2 id="attack-chain">Attack Chain</h2>
<ol>
<li>Attacker authenticates to a Convoy instance using valid credentials or a project-scoped API key.</li>
<li>Attacker identifies a target <code>{sourceID}</code> (e.g., through trial-and-error, enumeration, or information leakage).</li>
<li>Attacker constructs a malicious API request targeting the endpoint: <code>GET /api/v1/projects/{own_project_id}/sources/{target_source_id}</code>.</li>
<li>The Convoy API verifies that the user is authorized to access <code>{own_project_id}</code> and proceeds to the <code>GetSource</code> handler.</li>
<li>The <code>GetSource</code> handler calls <code>FindSourceByID</code> using the attacker-supplied <code>{target_source_id}</code>.</li>
<li>The backend SQL query <code>fetchSourceByID</code> ignores the project context and returns the requested record from the database.</li>
<li>The API serializes the entire <code>Source</code> object, including sensitive <code>pub_sub.*.auth.password</code> fields, into the JSON response.</li>
<li>Attacker parses the response to extract live broker credentials for unauthorized downstream access.</li>
</ol>
<h2 id="impact">Impact</h2>
<p>Successful exploitation results in the unauthorized disclosure of sensitive message broker credentials, including AMQP, Kafka, SQS, and Google PubSub secrets. In multi-tenant environments, this constitutes a direct cross-customer credential leak. This impact is critical as it provides attackers with the ability to intercept, inject, or disrupt message traffic within the victim's infrastructure, potentially leading to further compromise of backend services or data exfiltration.</p>
<h2 id="recommendation">Recommendation</h2>
<ol>
<li>Audit Convoy logs for excessive 200 OK responses to the <code>/api/v1/projects/*/sources/*</code> endpoint that correlate with user accounts accessing multiple different projects.</li>
<li>Implement request monitoring to identify and block patterns of enumerating <code>sourceID</code> values across different project paths.</li>
<li>Since no patch exists, restrict access to the Convoy management interface and API to trusted internal networks or authorized IP ranges.</li>
<li>Rotate any credentials currently stored in Convoy Source configurations if the instance is exposed to untrusted users.</li>
<li>If possible, disable or remove untrusted projects from instances hosting sensitive production configurations until a vendor patch for CVE-2026-81505 is released.</li>
</ol>
]]></content:encoded><category domain="severity">high</category><category domain="type">advisory</category><category>idor</category><category>credential-leak</category><category>api-security</category></item></channel></rss>