<?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>Api-Exploitation - CraftedSignal Threat Feed</title><link>https://feed.craftedsignal.io/tags/api-exploitation/</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, 18 Jun 2026 17:41:17 +0000</lastBuildDate><atom:link href="https://feed.craftedsignal.io/tags/api-exploitation/feed.xml" rel="self" type="application/rss+xml"/><item><title>Crawl4AI Unauthenticated SSRF in Docker API `crawl/stream` Endpoint</title><link>https://feed.craftedsignal.io/briefs/2026-06-crawl4ai-ssrf/</link><pubDate>Thu, 18 Jun 2026 17:41:17 +0000</pubDate><author>hello@craftedsignal.io</author><guid isPermaLink="true">https://feed.craftedsignal.io/briefs/2026-06-crawl4ai-ssrf/</guid><description>A remote, unauthenticated attacker can exploit an unpatched Server-Side Request Forgery (SSRF) vulnerability in Crawl4AI Docker API versions up to 0.8.9, specifically targeting the `/crawl/stream` endpoint, to read internal network services and cloud-metadata endpoints, potentially exposing sensitive information like IAM credentials.</description><content:encoded><![CDATA[<p>A remote, unauthenticated attacker can exploit an unpatched Server-Side Request Forgery (SSRF) vulnerability in the Crawl4AI Docker API server, specifically targeting versions up to 0.8.9. The vulnerability exists because the <code>handle_stream_crawl_request</code> function, used by <code>POST /crawl/stream</code> and <code>POST /crawl</code> with <code>crawler_config.stream=true</code>, fails to validate the destination of provided seed URLs. This oversight allows attackers to supply URLs pointing to internal networks, private IP addresses, or cloud-metadata endpoints (e.g., <code>http://169.254.169.254/</code>). The server then fetches the content from these internal resources and streams the response directly back to the attacker, potentially leading to unauthorized access to sensitive information like cloud IAM credentials or details about internal services. This critical flaw highlights a gap in the API's security checks, which was previously intended to prevent such attacks on non-streaming paths but was overlooked for streaming functionalities. The Docker API is often unauthenticated by default, increasing the attack surface.</p>
<h2 id="attack-chain">Attack Chain</h2>
<ol>
<li>Attacker identifies an internet-facing Crawl4AI Docker API server (version &lt;= 0.8.9).</li>
<li>Attacker crafts an unauthenticated <code>POST</code> request targeting the <code>/crawl/stream</code> endpoint, or the <code>/crawl</code> endpoint with <code>crawler_config.stream=true</code>.</li>
<li>Within the request body, the attacker includes a malicious seed URL pointing to an internal, private, or link-local address, such as <code>http://169.254.169.254/latest/meta-data/</code>.</li>
<li>The Crawl4AI server's <code>handle_stream_crawl_request</code> function processes the request without applying the necessary <code>validate_url_destination</code> check.</li>
<li>The server initiates an outbound connection to the specified internal URL, fetching the content of the internal resource (e.g., cloud instance metadata).</li>
<li>The fetched response body (e.g., AWS IAM temporary credentials) is then streamed back by the Crawl4AI server to the unauthenticated attacker's client.</li>
<li>The attacker receives and extracts sensitive internal information or credentials from the streamed response.</li>
<li>Attacker potentially uses the obtained credentials to escalate privileges or access other internal cloud resources.</li>
</ol>
<h2 id="impact">Impact</h2>
<p>This unauthenticated Server-Side Request Forgery (SSRF) allows remote attackers to read arbitrary internal services and cloud-metadata endpoints. This can expose highly sensitive information such as cloud IAM temporary credentials (e.g., from <code>http://169.254.169.254/latest/meta-data/iam/security-credentials/</code>), internal network topology, or other confidential data hosted on inaccessible internal systems. The vulnerability is considered high severity due to its unauthenticated nature and direct access to internal resources, which is similar in class and impact to previously identified SSRF flaws in the project. Successful exploitation could lead to privilege escalation, data exfiltration, or broader compromise of cloud environments.</p>
<h2 id="recommendation">Recommendation</h2>
<ul>
<li>Upgrade Crawl4AI instances to version 0.9.0 or later to patch the SSRF vulnerability.</li>
<li>Enable authentication on the Crawl4AI Docker API and restrict access to authorized users/systems only.</li>
<li>Implement egress filtering or network segmentation to restrict outbound network access from Crawl4AI containers, preventing connections to internal or metadata service IP ranges like <code>169.254.169.254</code>.</li>
<li>Deploy the provided Sigma rules to your SIEM to detect attempts at exploiting the <code>/crawl/stream</code> or <code>/crawl</code> (with <code>crawler_config.stream=true</code>) endpoints with internal IP addresses.</li>
<li>Ensure webserver access logs are enabled and ingested into your SIEM for the Crawl4AI application to allow detection of malicious <code>POST</code> requests targeting <code>/crawl/stream</code> or <code>/crawl</code>.</li>
</ul>
]]></content:encoded><category domain="severity">high</category><category domain="type">advisory</category><category>ssrf</category><category>web-application</category><category>docker</category><category>unauthenticated</category><category>api-exploitation</category></item><item><title>PraisonAI Authentication Bypass via PRAISONAI_CALL_AUTH=disabled</title><link>https://feed.craftedsignal.io/briefs/2026-06-praisonai-auth-bypass/</link><pubDate>Thu, 18 Jun 2026 14:55:58 +0000</pubDate><author>hello@craftedsignal.io</author><guid isPermaLink="true">https://feed.craftedsignal.io/briefs/2026-06-praisonai-auth-bypass/</guid><description>A high-severity authentication bypass vulnerability in PraisonAI versions prior to 4.6.61 allows unauthenticated attackers to invoke any registered agent by setting the `PRAISONAI_CALL_AUTH=disabled` environment variable, potentially leading to arbitrary code execution or system compromise.</description><content:encoded><![CDATA[<p>A critical authentication bypass exists in PraisonAI, affecting versions prior to 4.6.61. The vulnerability stems from an undocumented &quot;feature&quot; where setting the <code>PRAISONAI_CALL_AUTH=disabled</code> environment variable completely deactivates authentication for the <code>/api/v1/agents/{id}/invoke</code> endpoint. This misconfiguration is highly likely to be present in production Docker and Docker Compose deployments due to the application's own error messages explicitly advertising this bypass as a convenience option. Attackers can leverage this to gain full unauthenticated access to agent invocation functionalities, enabling them to trigger any registered agent and potentially execute arbitrary actions depending on the agent's configured tools, leading to severe compromise of the host system or connected services.</p>
<h2 id="attack-chain">Attack Chain</h2>
<ol>
<li><strong>Reconnaissance</strong>: An attacker identifies an internet-facing PraisonAI instance, typically deployed via Docker or Docker Compose.</li>
<li><strong>Vulnerability Identification</strong>: The attacker attempts to interact with the <code>/api/v1/agents/{id}/invoke</code> endpoint without authentication, potentially observing error messages that suggest setting <code>PRAISONAI_CALL_AUTH=disabled</code> to bypass auth, confirming the misconfiguration.</li>
<li><strong>Unauthenticated API Call</strong>: The attacker constructs a <code>POST</code> request to <code>/api/v1/agents/{agent_id}/invoke</code> with a malicious payload, targeting a known or guessed agent ID, and sends it to the vulnerable PraisonAI instance without providing any authentication credentials.</li>
<li><strong>Agent Triggering</strong>: Due to the <code>PRAISONAI_CALL_AUTH=disabled</code> setting, the PraisonAI server bypasses all authentication checks and processes the unauthenticated request, triggering the specified agent.</li>
<li><strong>Execution via Agent Tools</strong>: The activated agent, configured with specific tools (e.g., shell access, Python interpreter, API keys), executes arbitrary actions as dictated by the attacker's payload injected via the <code>invoke</code> endpoint.</li>
<li><strong>Impact</strong>: This unauthenticated execution leads to consequences such as data exfiltration, remote code execution, system compromise, or further lateral movement within the compromised environment.</li>
</ol>
<h2 id="impact">Impact</h2>
<p>The primary impact of this vulnerability is full unauthenticated access to the PraisonAI agent invocation API. If exploited, an attacker can trigger any registered agent on the server without needing valid credentials. This means that if an agent has been configured with access to sensitive systems or functionalities (e.g., shell command execution, database access, cloud API keys), the attacker can leverage these capabilities to execute arbitrary actions. This can result in data exfiltration, privilege escalation, remote code execution, or complete compromise of the underlying server and connected resources. The ease of exploitation and potential for severe consequences makes this a critical security concern for organizations running affected PraisonAI versions.</p>
<h2 id="recommendation">Recommendation</h2>
<ul>
<li>Immediately update PraisonAI instances to version <code>4.6.61</code> or newer to remediate the vulnerability.</li>
<li>Review all Dockerfiles, Docker Compose configurations, and environment variable settings for PraisonAI deployments to ensure <code>PRAISONAI_CALL_AUTH=disabled</code> is not present, or is explicitly set to <code>enabled</code>.</li>
<li>Deploy the provided <code>Detect PraisonAI Unauthenticated Agent Invocation</code> Sigma rule to your SIEM to monitor for exploitation attempts against the <code>/api/v1/agents/{id}/invoke</code> endpoint.</li>
<li>Deploy the provided <code>Detect PraisonAI PRAISONAI_CALL_AUTH=disabled Misconfiguration</code> Sigma rule to your EDR/SIEM to identify systems misconfigured with the vulnerable environment variable.</li>
<li>Implement strict network access controls to limit access to PraisonAI instances, particularly the <code>/api/v1/agents/{id}/invoke</code> API endpoint, to only trusted internal networks or specific services.</li>
</ul>
]]></content:encoded><category domain="severity">high</category><category domain="type">advisory</category><category>web-vulnerability</category><category>authentication-bypass</category><category>api-exploitation</category><category>misconfiguration</category><category>container</category></item></channel></rss>