<?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>Cpe:2.3:a:piccolo_admin:piccolo_admin:*:*:*:*:*:*:*:* - CraftedSignal Threat Feed</title><link>https://feed.craftedsignal.io/cpes/cpe2.3apiccolo_adminpiccolo_admin/</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, 28 Aug 2026 21:17:17 +0000</lastBuildDate><atom:link href="https://feed.craftedsignal.io/cpes/cpe2.3apiccolo_adminpiccolo_admin/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>Privilege Escalation in Piccolo Admin via Session Token Exposure</title><link>https://feed.craftedsignal.io/briefs/2026-08-piccolo-admin-privesc/</link><pubDate>Fri, 28 Aug 2026 21:17:17 +0000</pubDate><author>hello@craftedsignal.io</author><guid isPermaLink="true">https://feed.craftedsignal.io/briefs/2026-08-piccolo-admin-privesc/</guid><description>An improper access control implementation in the piccolo_admin /api/tables/sessions/ endpoint allows authenticated non-superuser admins to leak plaintext session tokens and perform privilege escalation to superuser status via CVE-2026-55485.</description><content:encoded><![CDATA[<p>The piccolo_admin package (up to and including version 1.13.0) contains a significant authorization vulnerability due to a flawed implementation of the <code>superuser_validators</code> helper function. This function utilizes a deny-list approach for protecting sensitive resources, restricting only <code>PUT</code>, <code>PATCH</code>, <code>DELETE</code>, and <code>POST</code> methods, while failing to block <code>GET</code> requests. Simultaneously, the <code>SessionsBase.token</code> field in the <code>piccolo_api</code> session authentication module is not marked as <code>secret=True</code>, resulting in the exposure of live session tokens in plaintext within <code>GET /api/tables/sessions/</code> responses. An attacker with standard (non-superuser) admin credentials can retrieve the session token for a superuser, replay that token to impersonate them, and subsequently modify their own user record to grant themselves permanent superuser privileges. This vulnerability, tracked as CVE-2026-55485, affects deployments that explicitly expose the <code>Sessions</code> table in the admin configuration, a pattern often used for session monitoring and management.</p>
<h2 id="attack-chain">Attack Chain</h2>
<ol>
<li>The attacker authenticates as a standard, non-superuser administrator (e.g., <code>admin=True</code>, <code>superuser=False</code>).</li>
<li>The attacker identifies that the <code>Sessions</code> table is exposed in the admin dashboard.</li>
<li>The attacker issues a <code>GET</code> request to <code>/api/tables/sessions/</code> to retrieve the entire contents of the sessions table.</li>
<li>The server returns a 200 OK response containing plaintext session tokens for all active users, including superusers.</li>
<li>The attacker extracts a superuser's session token from the JSON response.</li>
<li>The attacker uses the stolen superuser token in a new session cookie (<code>Cookie: id=...</code>) to authenticate requests to the admin API.</li>
<li>The attacker sends a <code>PATCH</code> request to <code>/api/tables/piccolo_user/&lt;attacker_id&gt;/</code> with the payload <code>{&quot;superuser&quot;: true}</code>.</li>
<li>The server processes the request as the superuser, successfully promoting the attacker's account to superuser status.</li>
</ol>
<h2 id="impact">Impact</h2>
<p>Successful exploitation results in full administrative takeover. An attacker can access all tables, modify user credentials, revoke existing sessions, and potentially plant payloads in exported data. The elevation is permanent, as the attacker effectively modifies the database record associated with their account.</p>
<h2 id="recommendation">Recommendation</h2>
<ul>
<li>Upgrade piccolo_admin and associated piccolo_api components immediately; identify the specific patched version from the vendor and apply it.</li>
<li>Apply the recommended fix to <code>superuser_validators</code> by implementing an allow-list or a more restrictive <code>if not request.user.user.superuser: raise HTTPException</code> pattern to block all unauthorized access.</li>
<li>Apply the defense-in-depth fix by setting <code>secret=True</code> on <code>SessionsBase.token</code> in <code>piccolo_api/session_auth/tables.py</code> to prevent plaintext leakage.</li>
<li>Monitor web logs for <code>GET</code> requests to <code>/api/tables/sessions/</code> originated by users without <code>superuser</code> status.</li>
</ul>
]]></content:encoded><category domain="severity">high</category><category domain="type">advisory</category><category>privilege-escalation</category><category>web-application</category><category>cve</category></item></channel></rss>