Read the docs
TI-2023-25468 Aliases CVE-2023-47128GHSA-xq59-7jf3-rjc6

piccolo SQL Injection via named transaction savepoints

Priority HIGH 80CWE-89Published · Updated

Key facts

Attack vector
Network
Privileges required
None
User interaction
None
Attack complexity
Low
Impact type
SQL injection
Confidentiality · integrity · availability
High · High · None
Fix status
Fixed

Attack profile from CVSS 3.1 · CNA. Fix status from CNA and GitHub. Impact type from CWE-89.

Summary

Piccolo is an object-relational mapping and query builder which supports asyncio. Prior to version 1.1.1, the handling of named transaction `savepoints` in all database implementations is vulnerable to SQL Injection via f-strings. While the likelihood of an end developer exposing a `savepoints` `name` parameter to a user is highly unlikely, it would not be unheard of. If a malicious user was able to abuse this functionality they would have essentially direct access to the database and the ability to modify data to the level of permissions associated with the database user. A non exhaustive list of actions possible based on database permissions is: Read all data stored in the database, including usernames and password hashes; insert arbitrary data into the database, including modifying existing records; and gain a shell on the underlying server. Version 1.1.1 fixes this issue.

Why it matters now

Exploitation Proof of concept CISA SSVC · not in CISA KEV
EPSS 0.00776 56th percentileScored 2026-11-07
Public exploit Yes 1 exploit referenceTagged by NVD
Fix Fixed piccolo (piccolo-orm): 1.1.1piccolo (PyPI): 1.1.1

SSVC decision points

CISA ADP · SSVC 2.0.3

Exploitation
Poc
Automatable
Yes
Technical impact
Total

The decision (Track, Attend, Act) also depends on your mission and well-being impact; see CISA's SSVC guide.

Affected products

VendorProductAffected versionsFixed inStatusSource
piccolo-ormpiccolobefore 1.1.11.1.1Patch availableCNA
—piccolo (PyPI)before 1.1.11.1.1Patch availableGHSA-xq59-7jf3-rjc6
  • piccolo Vendorpiccolo-orm Affected before 1.1.1 Fixed in 1.1.1 Patch available CNA
  • piccolo (PyPI) Vendor— Affected before 1.1.1 Fixed in 1.1.1 Patch available GHSA-xq59-7jf3-rjc6

CPE configurations NVD · 1

CPEVersionsRoleVendor
cpe:2.3:a:piccolo-orm:piccolo:1.1.0:*:*:*:*:*:*:*1.1.0Vulnerablepiccolo-orm
  • cpe:2.3:a:piccolo-orm:piccolo:1.1.0:*:*:*:*:*:*:* Versions 1.1.0 Vulnerable ·piccolo-orm

Remediation

  • Fix · CNA piccolo (piccolo-orm) Fixed in 1.1.1
  • Fix · GHSA-xq59-7jf3-rjc6 piccolo (PyPI) Fixed in 1.1.1 Advisory →

Timeline

  1. 2026-10-02 Threatist record created from CVE-2023-47128
  2. 2026-10-03 Alias added: GHSA-xq59-7jf3-rjc6

References

  • TI-2023-22277 Piccolo's current `BaseUser.login` implementation is vulnerable to time based user enumeration CVSS 3.1MEDIUM 5.3

Sources