Piccolo's current `BaseUser.login` implementation is vulnerable to time based user enumeration
Key facts
- Attack vector
- Network
- Privileges required
- None
- User interaction
- None
- Attack complexity
- Low
- Impact type
- Information disclosure
- Confidentiality · integrity · availability
- Low · None · None
- Fix status
- Fixed
Attack profile from CVSS 3.1 · CNA. Fix status from CNA and GitHub. Impact type from CWE-204.
Summary
Piccolo is an ORM and query builder which supports asyncio. In versions 0.120.0 and prior, the implementation of `BaseUser.login` leaks enough information to a malicious user such that they would be able to successfully generate a list of valid users on the platform. As Piccolo on its own does not also enforce strong passwords, these lists of valid accounts are likely to be used in a password spray attack with the outcome being attempted takeover of user accounts on the platform. The impact of this vulnerability is minor as it requires chaining with other attack vectors in order to gain more then simply a list of valid users on the underlying platform. The likelihood of this vulnerability is possible as it requires minimal skills to pull off, especially given the underlying login functionality for Piccolo based sites is open source. This issue has been patched in version 0.121.0.
Why it matters now
SSVC decision points
CISA ADP · SSVC 2.0.3
- Exploitation
- None
- Automatable
- Yes
- Technical impact
- Partial
The decision (Track, Attend, Act) also depends on your mission and well-being impact; see CISA's SSVC guide.
Affected products
| Vendor | Product | Affected versions | Fixed in | Status | Source |
|---|---|---|---|---|---|
| piccolo-orm | piccolo | before 0.121.0 | 0.121.0 | Patch available | CNA |
| — | piccolo (PyPI) | before 0.121.0 | 0.121.0 | Patch available | GHSA-h7cm-mrvq-wcfr |
- piccolo Vendorpiccolo-orm Affected before 0.121.0 Fixed in 0.121.0 Patch available CNA
- piccolo (PyPI) Vendor— Affected before 0.121.0 Fixed in 0.121.0 Patch available GHSA-h7cm-mrvq-wcfr
CPE configurations NVD · 1
| CPE | Versions | Role | Vendor |
|---|---|---|---|
| cpe:2.3:a:piccolo-orm:piccolo:*:*:*:*:*:*:*:* | before 0.121.0 | Vulnerable | piccolo-orm |
- cpe:2.3:a:piccolo-orm:piccolo:*:*:*:*:*:*:*:* Versions before 0.121.0 Vulnerable ·piccolo-orm
Remediation
- Fix · CNA piccolo (piccolo-orm) Fixed in 0.121.0
- Fix · GHSA-h7cm-mrvq-wcfr piccolo (PyPI) Fixed in 0.121.0 Advisory →
Timeline
- 2026-10-02 Threatist record created from CVE-2023-41885
- 2026-10-03 Alias added: GHSA-h7cm-mrvq-wcfr
References
Advisory 2
More piccolo-orm Piccolo vulnerabilities
- TI-2023-25468 piccolo SQL Injection via named transaction savepoints CVSS 3.1CRITICAL 9.1
Sources
- CVE-2023-41885 · CVE Program
- CVE-2023-41885 · NVD
- FIRST EPSS
- GHSA-h7cm-mrvq-wcfr · GitHub Advisory Database · CC BY 4.0
This product uses the NVD API but is not endorsed or certified by the NVD. Sources and licences