GHSA-gq3j-xvxp-8hrf
Low · 3.7CVSS
3.7
EPSS
—
Published
Feb 19, 2026
CISA due date
—
Cloudanix analysis
A web toolkit checked passwords and access tokens in a way that could leak tiny timing clues about the correct secret, and updating the toolkit removes that weakness.
- Exploitation
- Remote Unauthenticated
- Attacker needs
- None
- Complexity
- High
- Impact
- Data Exposure
- Component
- Web Framework
- Class
- Cryptographic Weakness
- Remediation
- Upgrade
- Effort
- Low
- Patch risk
- None
What it actually does
Hono's basicAuth and bearerAuth middleware compared supplied credentials with expected secrets using non-constant-time string comparison. An observer who can measure many authentication responses may distinguish matching versus non-matching prefixes of a password or bearer token from small latency differences, weakening the secrecy of those credentials. The issue is a cryptographic side channel, not remote code execution, injection, or authentication bypass by itself. Impact is limited to endpoints that use these middlewares and to secrets compared in that path. Network jitter, rate limits, and short-circuiting elsewhere in the stack often reduce practical leak rate.
Why it matters to the business
Practical risk is low for most internet-facing apps: CVSS is 3.7, exploit maturity is none, the issue is not in KEV, and no ransomware use is reported. A successful campaign would still require high-volume probing against a live login or API token check and would more often look like credential stuffing than a one-shot breach. Residual concern is concentrated where Hono protects high-value admin APIs, long-lived bearer tokens, or shared basic-auth secrets, and where npm lockfiles pin hono below 4.11.10. Failure to patch mainly increases exposure to slow credential recovery rather than immediate outage or data-destruction events.
How an attack unfolds
An attacker identifies an HTTP endpoint protected by Hono basicAuth or bearerAuth. They send large numbers of authentication requests while varying one character (or byte) of the password or token at a time and recording response latency and status. Statistical comparison of timings is used to infer which prefix is closer to the stored secret. The process is repeated until a usable credential is recovered, after which the attacker authenticates normally. Success depends on low-noise timing, absence of lockouts, and the secret being compared directly in the vulnerable middleware. No public weaponization or named threat-actor use is indicated.
How to fix it
Upgrade the hono npm package to 4.11.10 or later, which adds timing-safe comparison in basicAuth and bearerAuth. Rebuild and redeploy so production lockfiles and container images no longer resolve an affected version. If an immediate upgrade is blocked, mitigate by putting authentication behind a constant-time verifier of your own, enabling strict rate limiting and account lockout on 401s, preferring short-lived tokens over static basic-auth secrets, and terminating auth at a gateway that does not exhibit the same comparison behavior. Rotate any long-lived basic-auth passwords or bearer tokens that were compared by unpatched middleware.
How to confirm the fix worked
Inspect package-lock.json, yarn.lock, or pnpm-lock.yaml and confirm hono is 4.11.10 or newer in every deployed artifact. In CI, fail builds that resolve hono < 4.11.10. After deploy, exercise basicAuth and bearerAuth success and failure paths and confirm the running process loads the patched package (for example via npm ls hono). Code review should show credential comparison going through a constant-time primitive rather than early-exit string equality. Do not attempt to validate by running a timing exploit against production.
Typical attack path
- Locate an application using Hono basicAuth or bearerAuth on a reachable HTTP endpoint.
- Confirm authentication failures return distinguishable responses without aggressive lockout.
- Submit many crafted Authorization (Basic or Bearer) requests while measuring response latency.
- Use timing differences to infer successive bytes of the compared secret.
- Authenticate with the recovered credential and access whatever the middleware was meant to protect.
How to detect it
Timing-based credential recovery leaves no distinctive payload and is unlikely to appear as a named exploit in EDR. Hunt instead for high-volume authentication failures against Hono-protected routes: bursts of HTTP 401 from a single client to endpoints that use Basic or Bearer auth, slowly changing Authorization header values, and unusually uniform request spacing consistent with measurement rather than interactive login. Review access and reverse-proxy logs around those endpoints, WAF or API-gateway auth metrics, and application logs that record middleware auth failures. Correlate with later successful logins from the same source using previously unseen credentials. Absence of such patterns does not prove the side channel was unused, only that noisy brute-force-style probing was not observed.
What your security team should do
- Inventory all services that depend on the hono npm package and identify those using basicAuth or bearerAuth.
- Upgrade hono to 4.11.10 or later and ship the change through the normal release pipeline.
- Rotate static basic-auth secrets and long-lived bearer tokens that were verified on unpatched versions.
- Enforce authentication rate limits, anomaly detection on repeated 401s, and lockouts where product constraints allow.
- Add a dependency-policy or SCA rule that flags hono versions below 4.11.10.
- Treat remaining exposure as a credential-hardening issue rather than an emergency KEV-style outage.
The record
Hono added timing comparison hardening in basicAuth and bearerAuth
Affected packages
| Ecosystem | Package | Introduced | Fixed |
|---|---|---|---|
| npm | hono | 0 | 4.11.10 |
| Chainguard | kibana-9.1 | 0 | 9.1.10-r5 |
| Chainguard | kibana-9.1-iamguarded | 0 | 9.1.10-r5 |
| Chainguard | kibana-9.2 | 0 | 9.2.5-r3 |
| Chainguard | kibana-9.2-iamguarded | 0 | 9.2.5-r3 |
| Chainguard | kibana-9.3 | 0 | 9.3.0-r1 |
| Chainguard | kibana-9.3-iamguarded | 0 | 9.3.0-r1 |
| Chainguard | langfuse-3-worker | 0 | 3.155.1-r2 |
| Chainguard | langfuse-fips-3-worker | 0 | 3.155.1-r1 |
| Chainguard | librechat | 0 | 0.8.2-r6 |
| Chainguard | opensearch-dashboards-2 | 0 | 2.19.4-r10 |
| Chainguard | opensearch-dashboards-2-fips | 0 | 2.19.4-r10 |
| Wolfi | langfuse-3-worker | 0 | 3.155.1-r2 |
| Wolfi | opensearch-dashboards-2 | 0 | 2.19.4-r10 |
Related vulnerabilities
- CVE-2026-54288 Hono is a Web application framework that provides support for any JavaScript runtime. Also affects hono
- CVE-2026-54289 Hono is a Web application framework that provides support for any JavaScript runtime. Also affects hono
- CVE-2026-54286 Hono is a Web application framework that provides support for any JavaScript runtime. Also affects hono
- CVE-2026-54290 Hono is a Web application framework that provides support for any JavaScript runtime. Also affects hono
- CVE-2026-54287 Hono is a Web application framework that provides support for any JavaScript runtime. Also affects hono
- GHSA-rv63-4mwf-qqc2 hono: Body Limit Middleware can be bypassed on AWS Lambda by understating `Content-Length` Also affects hono
- GHSA-wgpf-jwqj-8h8p hono: Lambda@Edge adapter keeps only the last value of a repeated request header… Also affects hono
- GHSA-88fw-hqm2-52qc hono: CORS Middleware reflects any Origin with credentials when `origin` defaults to the… Also affects hono