<?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>APITable - CraftedSignal Threat Feed</title><link>https://feed.craftedsignal.io/products/apitable/</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, 27 Aug 2026 19:10:05 +0000</lastBuildDate><atom:link href="https://feed.craftedsignal.io/products/apitable/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>Authentication Bypass in APITable InternalUserController</title><link>https://feed.craftedsignal.io/briefs/2026-08-apitable-auth-bypass/</link><pubDate>Thu, 27 Aug 2026 19:10:05 +0000</pubDate><author>hello@craftedsignal.io</author><guid isPermaLink="true">https://feed.craftedsignal.io/briefs/2026-08-apitable-auth-bypass/</guid><description>APITable versions up to 1.13.0-beta.1 contain an authentication bypass vulnerability in the InternalUserController, allowing unauthenticated attackers to permanently delete user accounts currently in a cooling-off period.</description><content:encoded><![CDATA[<p>APITable versions up to and including 1.13.0-beta.1 contain an authentication bypass vulnerability in the <code>InternalUserController</code> class. The endpoints <code>getUserHistories</code> and <code>closePausedUserAccount</code> are incorrectly annotated with <code>requiredLogin = false</code>. The application's <code>ResourceInterceptor</code> honors this annotation by skipping session or API key validation for these routes. Because the product's bundled nginx gateway proxies all <code>/api</code> requests to the backend, these sensitive administrative functions are exposed to any unauthenticated client with network access to the gateway. An attacker can exploit this to enumerate accounts awaiting permanent deletion and finalize the removal process, thereby bypassing the 30-day account recovery cooling-off period. This leads to irreversible data loss for targeted users.</p>
<h2 id="attack-chain">Attack Chain</h2>
<ol>
<li>Attacker performs network reconnaissance to identify an APITable instance reachable via HTTP/HTTPS.</li>
<li>Attacker probes the <code>/api/v1/internal/</code> path to determine if the <code>InternalUserController</code> endpoints are exposed without authentication.</li>
<li>Attacker sends a POST request to <code>/api/v1/internal/getUserHistories</code> to retrieve a list of all user accounts currently in a 30-day cooling-off (deleted/paused) state.</li>
<li>Attacker parses the response to extract valid <code>userId</code> values for the identified target accounts.</li>
<li>Attacker iterates through the collected <code>userId</code> values.</li>
<li>Attacker sends a POST request to <code>/api/v1/internal/users/{userId}/close</code> for each identified account.</li>
<li>The backend processes the closure, clearing PII, canceling subscriptions, and deleting OAuth bindings.</li>
<li>Account recovery is successfully prevented, resulting in permanent data destruction for the targeted user.</li>
</ol>
<h2 id="impact">Impact</h2>
<p>Successful exploitation results in the permanent loss of user accounts that are otherwise protected by a 30-day recovery window. This vulnerability impacts the integrity and availability of user data within the APITable platform. While the scope of impact depends on the number of accounts currently in the cooling-off period, unauthorized access to administrative internal APIs constitutes a critical breach of the platform's security boundary.</p>
<h2 id="recommendation">Recommendation</h2>
<p>Prioritized, concrete actions for detection engineering teams:</p>
<ul>
<li>Implement monitoring on web server logs for HTTP POST requests to <code>/api/v1/internal/</code> originating from untrusted or non-administrative source IPs.</li>
<li>Patch APITable to a version beyond 1.13.0-beta.1 that corrects the <code>requiredLogin</code> annotation for the <code>InternalUserController</code>.</li>
<li>Restrict network access to the <code>/api/v1/internal/</code> path at the nginx gateway or firewall level to ensure only authorized management IPs can access these administrative endpoints.</li>
</ul>
]]></content:encoded><category domain="severity">high</category><category domain="type">threat</category><category>authentication-bypass</category><category>web-application-vulnerability</category><category>data-destruction</category></item></channel></rss>