CVE-2023-41885 json
Piccolo's current `BaseUser.login` implementation is vulnerable to time based user enumeration
published 2023-09-12 3 y ago modified 2026-06-17 4 mo ago also GHSA-h7cm-mrvq-wcfr , PYSEC-2023-173 , EUVD-2023-0196
- cvss
- 5.3
- version 3.1, CNA
- cisa kev
- Not listed
- not in CISA's catalog
- epss
- 0.6%
- EPSS 0.6% chance of exploitation in 30 days, percentile 46%
- public exploits
- 0
- none known
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.
Patch / fix
CISA SSVC
- Exploitation
- none
- Automatable
- yes
- Technical impact
- partial
- Assessed
- 2 y ago
Exploit prediction
0.56% chance of exploitation in the next 30 days, higher than 46% of all scored CVEs (FIRST EPSS, 2026-11-08).
CVSS scores
| assigned by | version | score | vector |
|---|---|---|---|
| CNA | 3.1 | 5.3 | CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:N/A:N |
| NVD | 3.1 | 5.3 | CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:N/A:N |
| OSV | 3.1 | 5.3 | CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:N/A:N |
| GitHub | 3.1 | 5.3 | CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:N/A:N |
Affected packages
| ecosystem | package | affected | fixed in |
|---|---|---|---|
| pypi | piccolo | <0.121.0 |
0.121.0 |
Affected products
- piccolo-orm piccolo
Classification
References
-
github.com
/piccolo-orm/piccolo/commit/edcfe3568382922ba3e3b65896e6e7272f972261
web, patch
-
github.com
/piccolo-orm/piccolo/security/advisories/GHSA-h7cm-mrvq-wcfr
web, vendor-advisory, advisory
-
nvd.nist.gov
/vuln/detail/CVE-2023-41885
advisory
-
github.com
/piccolo-orm/piccolo
package
-
github.com
/pypa/advisory-database/tree/main/vulns/piccolo/PYSEC-2023-173.yaml
web
Sources
- CVE List CVE-2023-41885
- GitHub Advisory GHSA-h7cm-mrvq-wcfr
- NVD CVE-2023-41885
- OSV PYSEC-2023-173
Fencer Vulns keeps one entry per vulnerability: the CVE id wins, then GHSA, and records that alias each other are merged, except that two CVEs always keep separate entries. The same data is available as JSON.