CVE-2026-54723
devpi: Database contents leak
devpi is a Python package index staging server and packaging, testing, and release tool. Prior to 6.20.2 and 7.0.0b3, a server configured with the primary or deprecated master role allows an unauthenticated, modified GET request to the +changelog route because verify_primary does not reject a missing identity and therefore fails to require ReplicaIdentity. The response can disclose complete database content, including Argon2 password hashes and identifiers and salts for devpi-tokens; exposed hashes may be subject to dictionary attacks, and public tokens may assist attempts to derive the server secret. Large responses can also consume significant CPU, input/output capacity, and bandwidth. Servers using the standalone role are not exposed through replication, and an instance served exclusively through nginx with devpi-lockdown redirects the request to login with no known exploit. This issue is fixed in devpi-server versions 6.20.2 and 7.0.0b3.
Attack profile
How easy it is to exploit
- Attack vector
- Network
- Complexity
- Low
- Privileges needed
- None
- User interaction
- None
What an attacker can affect
- Confidentiality
- Low
- Integrity
- None
- Availability
- Low
Exploit likelihood
What each source reports
CVE List Score used
6.5
devpi: Database contents leak
devpi is a Python package index staging server and packaging, testing, and release tool. Prior to 6.20.2 and 7.0.0b3, a server configured with the primary or deprecated master role allows an unauthenticated, modified GET request to the +changelog route because verify_primary does not reject a missing identity and therefore fails to require ReplicaIdentity. The response can disclose complete database content, including Argon2 password hashes and identifiers and salts for devpi-tokens; exposed hashes may be subject to dictionary attacks, and public tokens may assist attempts to derive the server secret. Large responses can also consume significant CPU, input/output capacity, and bandwidth. Servers using the standalone role are not exposed through replication, and an instance served exclusively through nginx with devpi-lockdown redirects the request to login with no known exploit. This issue is fixed in devpi-server versions 6.20.2 and 7.0.0b3.
- Record
CVE-2026-54723- CVSS 3.1
- 6.5 Medium
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:N/A:L - Weakness
- CWE-304
- Updated
- 2026-11-02
EUVDEUVD-2026-77701
6.5
devpi is a Python package index staging server and packaging, testing, and release tool. Prior to 6.20.2 and 7.0.0b3, a server configured with the primary or deprecated master role allows an unauthenticated, modified GET request to the +changelog route because verify_primary does not reject a missing identity and therefore fails to require ReplicaIdentity. The response can disclose complete database content, including Argon2 password hashes and identifiers and salts for devpi-tokens; exposed hashes may be subject to dictionary attacks, and public tokens may assist attempts to derive the server secret. Large responses can also consume significant CPU, input/output capacity, and bandwidth. Servers using the standalone role are not exposed through replication, and an instance served exclusively through nginx with devpi-lockdown redirects the request to login with no known exploit. This issue is fixed in devpi-server versions 6.20.2 and 7.0.0b3.
- Record
EUVD-2026-77701- CVSS 3.1
- 6.5 Medium
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:N/A:L - Updated
- 2026-11-02
GitHub AdvisoriesGHSA-m5pq-69xg-vcq3
6.5
devpi-server may leak database contents
Impact
If the replication protocol is enabled by using the primary (or deprecated master) role for a server instance, then the +changelog URL route can be used to read the complete database content including password hashes, and the ids and salts of tokens from devpi-tokens by using a trivially modified GET request.
The leaked hashes use the argon2 algorithm, so they are not immediately at risk by brute-force methods, but dictionary attacks are feasible. If a database leak could have happened, it is advised to change the passwords after a patched version or other mitigation is in place.
When devpi-tokens is in use, the quality of the server secret is important. It might be possible to derive the server secret if actual tokens are public by using similar techniques to finding the password for a hash. If a database leak could have happened and any tokens are public, it is advised to change the server secret.
Besides the information leak this can be used to produce significant CPU, IO and bandwidth usage depending on the database size.
Patches
The logic bug causing this issue is fixed with devpi-server 6.20.2 and devpi-server 7.0.0b3.
Workarounds
When replication isn't used the role can explicitly be set to standalone.
If the server instance is exclusively served through nginx with the devpi-lockdown plugin, the request is redirected to the login form due to missing user information. There is no known exploit in this case.
- Record
GHSA-m5pq-69xg-vcq3- CVSS 3.1
- 6.5 Medium
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:N/A:L - Weakness
- CWE-304
- Updated
- 2026-11-02
NVD
6.5
devpi is a Python package index staging server and packaging, testing, and release tool. Prior to 6.20.2 and 7.0.0b3, a server configured with the primary or deprecated master role allows an unauthenticated, modified GET request to the +changelog route because verify_primary does not reject a missing identity and therefore fails to require ReplicaIdentity. The response can disclose complete database content, including Argon2 password hashes and identifiers and salts for devpi-tokens; exposed hashes may be subject to dictionary attacks, and public tokens may assist attempts to derive the server secret. Large responses can also consume significant CPU, input/output capacity, and bandwidth. Servers using the standalone role are not exposed through replication, and an instance served exclusively through nginx with devpi-lockdown redirects the request to login with no known exploit. This issue is fixed in devpi-server versions 6.20.2 and 7.0.0b3.
- Record
CVE-2026-54723- CVSS 3.1
- 6.5 Medium
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:N/A:L - Weakness
- CWE-304
- Updated
- 2026-11-02
OSV
6.5
devpi: Database contents leak
devpi is a Python package index staging server and packaging, testing, and release tool. Prior to 6.20.2 and 7.0.0b3, a server configured with the primary or deprecated master role allows an unauthenticated, modified GET request to the +changelog route because verify_primary does not reject a missing identity and therefore fails to require ReplicaIdentity. The response can disclose complete database content, including Argon2 password hashes and identifiers and salts for devpi-tokens; exposed hashes may be subject to dictionary attacks, and public tokens may assist attempts to derive the server secret. Large responses can also consume significant CPU, input/output capacity, and bandwidth. Servers using the standalone role are not exposed through replication, and an instance served exclusively through nginx with devpi-lockdown redirects the request to login with no known exploit. This issue is fixed in devpi-server versions 6.20.2 and 7.0.0b3.
- Record
CVE-2026-54723- CVSS 3.1
- 6.5 Medium
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:N/A:L - Weakness
- CWE-304
- Updated
- 2026-11-02
OSVGHSA-m5pq-69xg-vcq3
6.5
devpi-server may leak database contents
Impact
If the replication protocol is enabled by using the primary (or deprecated master) role for a server instance, then the +changelog URL route can be used to read the complete database content including password hashes, and the ids and salts of tokens from devpi-tokens by using a trivially modified GET request.
The leaked hashes use the argon2 algorithm, so they are not immediately at risk by brute-force methods, but dictionary attacks are feasible. If a database leak could have happened, it is advised to change the passwords after a patched version or other mitigation is in place.
When devpi-tokens is in use, the quality of the server secret is important. It might be possible to derive the server secret if actual tokens are public by using similar techniques to finding the password for a hash. If a database leak could have happened and any tokens are public, it is advised to change the server secret.
Besides the information leak this can be used to produce significant CPU, IO and bandwidth usage depending on the database size.
Patches
The logic bug causing this issue is fixed with devpi-server 6.20.2 and devpi-server 7.0.0b3.
Workarounds
When replication isn't used the role can explicitly be set to standalone.
If the server instance is exclusively served through nginx with the devpi-lockdown plugin, the request is redirected to the login form due to missing user information. There is no known exploit in this case.
- Record
GHSA-m5pq-69xg-vcq3- CVSS 3.1
- 6.5 Medium
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:N/A:L - Weakness
- CWE-304
- Updated
- 2026-11-02
OSVPYSEC-2026-3661
6.5
devpi-server may leak database contents
Impact
If the replication protocol is enabled by using the primary (or deprecated master) role for a server instance, then the +changelog URL route can be used to read the complete database content including password hashes, and the ids and salts of tokens from devpi-tokens by using a trivially modified GET request.
The leaked hashes use the argon2 algorithm, so they are not immediately at risk by brute-force methods, but dictionary attacks are feasible. If a database leak could have happened, it is advised to change the passwords after a patched version or other mitigation is in place.
When devpi-tokens is in use, the quality of the server secret is important. It might be possible to derive the server secret if actual tokens are public by using similar techniques to finding the password for a hash. If a database leak could have happened and any tokens are public, it is advised to change the server secret.
Besides the information leak this can be used to produce significant CPU, IO and bandwidth usage depending on the database size.
Patches
The logic bug causing this issue is fixed with devpi-server 6.20.2 and devpi-server 7.0.0b3.
Workarounds
When replication isn't used the role can explicitly be set to standalone.
If the server instance is exclusively served through nginx with the devpi-lockdown plugin, the request is redirected to the login form due to missing user information. There is no known exploit in this case.
- Record
PYSEC-2026-3661- CVSS 3.1
- 6.5 Medium
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:N/A:L - Updated
- 2026-11-02
Affected products
Affected packages
| Package | Affected | Fixed |
|---|---|---|
devpi-serverPyPI |
before 6.20.2 | 6.20.2 |
devpi-serverPyPI |
before 6.20.2, plus listed versions 0.70.80.8.10.8.20.8.3 Show 45 moreShow less0.8.40.8.50.9.00.9.10.9.20.9.30.9.41.01.11.21.2.11.2.22.0.02.0.12.0.22.0.32.0.42.0.52.0.62.0.72.1.02.1.12.1.22.1.32.1.42.1.52.2.02.2.12.2.22.3.02.3.12.4.02.5.02.5.12.5.22.5.32.6.02.6.13.0.03.0.13.0.23.1.03.1.13.1.24.0.0 |
6.20.2 |
History
| Recorded | Changed | Sources |
|---|---|---|
| first indexed | CVE List, EUVD, GitHub Advisories, NVD, OSV |
Dates are when Every CVE recorded each change. Upstream dates may differ.
In short
CVE-2026-54723 is a medium vulnerability (CVSS 6.5) in Devpi, published August 18, 2026. No source lists public exploit code. EPSS puts the chance of exploitation in the next 30 days at 0.43%, the 37th percentile. Fixed in devpi-server 6.20.2.
References
github.com/devpi/devpi/security/advisories/GHSA-m5pq-69xg-vcq3
github.com/devpi/devpi/commit/b4ea49fed4a6233d63f8509c3bf7efafc9b2db17
github.com/devpi/devpi/releases/tag/server-6.20.2
github.com/advisories/GHSA-m5pq-69xg-vcq3
github.com/CVEProject/cvelistV5/tree/main/cves/2026/54xxx/CVE-2026-54723.json
nvd.nist.gov/vuln/detail/CVE-2026-54723
github.com/devpi/devpi
pypi.org/project/devpi-server
Left out here: 57 versions. The JSON record has them.