GHSA-qhp6-635j-x7r2
Static Web Server affected by timing-based username enumeration in Basic Authentication due to early response on invalid usernames
Packages
| Ecosystem | Package | Affected | Fixed in |
|---|---|---|---|
| crates.io | static-web-server | >= 2.1.0, < 2.41.0 | 2.41.0 |
Details
As written in the advisory (Markdown source, shown as plain text).
## Summary
A Timing-based username enumeration in Basic Authentication vulnerability due to early response on invalid usernames could allow attackers to identify valid users and focus their efforts on targeted brute-force or credential-stuffing attacks.
## Details
SWS validates the provided username before performing any password verification.
- **Invalid Username:** The server returns a `401 Unauthorized` response immediately.
- **Valid Username:** The server proceeds to verify the password (e.g., using `bcrypt`), which introduces a different execution path and measurable timing discrepancy.
This allows an attacker to distinguish between existing and non-existing accounts by analyzing response times.
## PoC
The following statistical results were obtained by measuring the mean response time over 100 iterations using a custom Rust script:
| User Type | Average Response Time |
| :--- | :--- |
| **Invalid User** | 0.409861 ms |
| **Valid User** | 0.250925 ms |
| **Difference** | **~0.158936 ms** |
While the valid user responded faster in this specific test environment, the statistically significant gap confirms that the authentication logic does not execute in constant time.
## Impact
Users using the SWS' Basic Authentication feature are primarily impacted.
References
External links from the advisory. They lead to third-party sites.
- https://github.com/static-web-server/static-web-server/security/advisories/GHSA-qhp6-635j-x7r2
- https://nvd.nist.gov/vuln/detail/CVE-2026-27480
- https://github.com/static-web-server/static-web-server/commit/7bf0fd425eb10dac9bf9ef5febce12c4dd039ce1
- https://github.com/static-web-server/static-web-server