Loading...
Skip to main content

CVE-2026-54609 — Vulnerability in com.quietterminal:qti-neon — CVE...

HIGH

QTINeon has unauthenticated relay-to-host amplification via unbounded RECONNECT_REQUEST forwarding

Published July 28, 2026Updated August 4, 2026Source: osv

Summary

### Impact The relay's reconnect handler forwards every `RECONNECT_REQUEST` to the host without deduplication or a size cap on the `pendingReconnects` map, unlike the connect flow which guards against this with `maxPendingConnections`. An unauthenticated attacker who knows a valid session ID can send `RECONNECT_REQUEST` packets from many spoofed source addresses; each packet that passes the session lookup is forwarded to the host as a new reconnect attempt. Because the per-source rate limiter assigns a fresh token bucket to each spoofed IP, it provides no protection. The host receives one forwarded packet per spoofed source per cleanup cycle, making the relay an amplification vector for denial-of-service against the host. The host's real address is never exposed to clients by design, so this is the primary viable DoS path against it. A secondary issue: once more than `maxRateLimiters` spoofed IPs are seen, `performCleanup` calls `rateLimiters.clear()`, resetting rate limit state for all sources including legitimate ones. Affected: `NeonRelay` in all three implementations (Java, Python, TypeScript). ### Patches Not yet patched. Fix consists of three changes to handleReconnectRequest in each implementation: 1. Reject the request if `pendingReconnects.size() >= maxPendingConnections` (mirrors the existing connect-flow guard) 2. Only forward to the host if the `sessionId:clientId` key is not already present in `pendingReconnects` — the map entry can still be updated with the new source address, but the host only needs to validate once per slot 3. In `performCleanup`, evict throttled entries before falling back to `rateLimiters.clear()` to avoid resetting legitimate sources' rate limit state ### Workarounds Operators can partially mitigate by placing the relay behind a network-level filter that drops packets with spoofed source addresses (BCP38/uRPF). This does not address the missing `pendingReconnects` size cap or the `rateLimiters.clear()` issue but eliminates the amplification path in most deployment environments. ### References - PROTOCOL.md — reconnect flow - ARCHITECTURE.md — reconnect handshake detail (step 4 describes the unbounded `put`)

Advisory Timeline

  • First published July 28, 2026 (76 days ago).
  • Last revised August 4, 2026 — 7 days after initial publication.

Affected Packages (3)

Affects 3 ecosystems: maven (1), npm (1), pypi (1).

PackageEcosystemAffectedFixed In
com.quietterminal:qti-neon
maven
1.0.0No fix available
qti-neon
npm
1.0.0No fix available
qti-neon
pypi
1.0.0No fix available

Vulnerability Classification

Common Weakness Enumeration (CWE) identifiers for this vulnerability type.

CVSS Score Breakdown

What the CVSS (Common Vulnerability Scoring System) 8.6 score means for each attack dimension.

Attack Vector
Network
Attack Complexity
Low
Privileges Required
None
User Interaction
None
Scope
Changed
Confidentiality
None
Integrity
None
Availability
High

CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:N/I:N/A:H

Frequently Asked Questions

What is CVE-2026-54609?
QTINeon has unauthenticated relay-to-host amplification via unbounded RECONNECT_REQUEST forwarding This vulnerability has been assigned a severity rating of HIGH (CVSS score: 8.6/10).
How do I check if my project is affected by CVE-2026-54609?
CVE-2026-54609 affects com.quietterminal:qti-neon and qti-neon. Use GeekWala's free vulnerability scanner to check your dependencies against CVE-2026-54609 and 200,000+ other known vulnerabilities.

Severity & Exploitability

CVSS Score
8.6

High exploitability or significant impact. Prioritize remediation within days.

Also Known As

GHSA-85rg-p3fr-xc2f
PYSEC-2026-3615

Related CVEs

  • CVE-2026-107384
    HIGH

    MariaDB Connector/Node.js: SQL injection through object keys in SET expansion (permitSetMultiParamEntries)

  • CVE-2026-107725
    HIGH

    Hazelcast has an authorization bypass in IMap Predicates API

Check if you're affected

Scan your dependencies to see if this vulnerability affects your projects.

Scan Your Dependencies