Description
Piccolo Admin is an admin interface and content management system for Python, built on top of Piccolo. Prior to 1.14.0, piccolo_admin/endpoints.py uses superuser_validators to block PUT, PATCH, DELETE, and POST requests by non-superusers but permits GET requests to configured user and session tables, while piccolo_api/session_auth/tables.py exposes SessionsBase.token because the token column is not secret. In deployments that add the Sessions and User tables to create_admin, a non-superuser administrator can call GET /api/tables/sessions/, obtain another user's live session token, replay it as the Cookie id value to impersonate a superuser, and permanently set superuser to true on the attacker's own row. This issue is fixed in version 1.14.0.
Published: 2026-08-28
Score: 8.8 High
EPSS: < 1% Very Low
KEV: No
Impact: Privilege Escalation
Action: Immediate Patch
AI Analysis

Impact

Piccolo Admin exposes session information through the GET /api/tables/sessions/ endpoint because the token column is treated as non‑secret. A user with administrator privileges who is not a superuser can exploit this endpoint to retrieve another user’s live session token, replay it as a cookie, and then permanently set the attacker’s own account to superuser status. The vulnerability leads to an elevation of privileges and is identified by Information Exposure (CWE‑200), Improper Privilege Management (CWE‑269), and Improper Permission Loss (CWE‑863).

Affected Systems

The issue affects Piccolo Admin, a component of the piccolo‑orm ecosystem, in all releases before version 1.14.0. It is relevant in deployments that include custom Sessions and User tables in the create_admin configuration. No specific sub‑versions are listed.

Risk and Exploitability

The CVSS score of 8.8 indicates high severity. The EPSS score is not available, so the exact exploitation probability cannot be quantified, but the lack of a secret token means the attack is straightforward for anyone with administrative access. The vulnerability is not yet listed in the CISA KEV catalog. The likely attack vector is an authenticated internal attacker who holds administrative privileges but not superuser status, able to issue a GET request to the API endpoint and subsequently replay the captured session token with minimal effort.

Generated by OpenCVE AI on August 28, 2026 at 20:53 UTC.

Remediation

No vendor fix or workaround currently provided.

OpenCVE Recommended Actions

  • Upgrade Piccolo Admin to version 1.14.0 or later to receive the fix that removes the privilege escalation path.
  • If an upgrade is not immediately possible, restrict access to the /api/tables/sessions/ endpoint so that only superusers may query it, effectively blocking the token disclosure for non‑superusers.
  • Audit existing superuser accounts for any unauthorized changes and reset the superuser flag on accounts that may have been compromised as a result of the vulnerability.

Generated by OpenCVE AI on August 28, 2026 at 20:53 UTC.

Tracking

Sign in to view the affected projects.

Advisories
Source ID Title
Github GHSA Github GHSA GHSA-2gh4-jmwq-rr8w piccolo-admin has a privilege escalation issue - admin to superuser via session-token disclosure in GET /api/tables/sessions/.
History

Tue, 01 Sep 2026 13:00:00 +0000

Type Values Removed Values Added
First Time appeared Piccolo-orm
Piccolo-orm piccolo
Vendors & Products Piccolo-orm
Piccolo-orm piccolo

Mon, 31 Aug 2026 19:30:00 +0000

Type Values Removed Values Added
Metrics ssvc

{'options': {'Automatable': 'no', 'Exploitation': 'poc', 'Technical Impact': 'total'}, 'version': '2.0.3'}


Fri, 28 Aug 2026 19:45:00 +0000

Type Values Removed Values Added
Description Piccolo Admin is an admin interface and content management system for Python, built on top of Piccolo. Prior to 1.14.0, piccolo_admin/endpoints.py uses superuser_validators to block PUT, PATCH, DELETE, and POST requests by non-superusers but permits GET requests to configured user and session tables, while piccolo_api/session_auth/tables.py exposes SessionsBase.token because the token column is not secret. In deployments that add the Sessions and User tables to create_admin, a non-superuser administrator can call GET /api/tables/sessions/, obtain another user's live session token, replay it as the Cookie id value to impersonate a superuser, and permanently set superuser to true on the attacker's own row. This issue is fixed in version 1.14.0.
Title Piccolo Admin: Privilege escalation - admin to superuser via session-token disclosure in GET /api/tables/sessions/.
Weaknesses CWE-200
CWE-269
CWE-863
References
Metrics cvssV3_1

{'score': 8.8, 'vector': 'CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H'}


Subscriptions

Piccolo-orm Piccolo
cve-icon MITRE

Status: PUBLISHED

Assigner: GitHub_M

Published:

Updated: 2026-08-31T18:52:38.329Z

Reserved: 2026-06-16T22:28:27.061Z

Link: CVE-2026-55485

cve-icon Vulnrichment

Updated: 2026-08-31T18:52:33.347Z

cve-icon NVD

Status : Deferred

Published: 2026-08-28T20:18:27.657

Modified: 2026-09-09T21:09:13.080

Link: CVE-2026-55485

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-09-01T12:45:12Z

Weaknesses
  • CWE-200

    Exposure of Sensitive Information to an Unauthorized Actor

  • CWE-269

    Improper Privilege Management

  • CWE-863

    Incorrect Authorization