CVE-2023-47128

Critical

Description

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.

SeverityCritical
CVSS9.1
Exploit probability—
ProductPiccolo
PublishedNov 10, 2023
First seenNov 10, 2023
Weakness typeCWE-89SQL injection

How to fix

Update
  • piccolo1.1.1 or later

Affected products

ProductAffected versionsFixed in
piccolo-orm piccolo1.1.0—
piccoloPyPIv < 1.1.11.1.1

Check your version

Choose the product and enter the version you run to see whether it falls in the affected range.

In the Intelligence 360 plan

Attack Surface Management

See the assets tied to your domains, the technologies they run and known vulnerabilities in one list.