Your RSA-2048 keys break in 2030. Find every one of them before attackers do.
Maven📦 npm🐍 PyPI
Not in CISA KEV
HIGH severity

GHSA-85rg-p3fr-xc2f

HIGH

GHSA-85rg-p3fr-xc2f is a high-severity (CVSS 8.6) Uncontrolled Resource Consumption vulnerability in com.quietterminal:qti-neon. O3 Security confirms whether GHSA-85rg-p3fr-xc2f is actually reachable in your code before you act, and blocks exploitation at runtime until you patch.

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

Also known asCVE-2026-54609PYSEC-2026-3615
Published
Jul 28, 2026
Updated
Aug 4, 2026
Affected
3 pkgs
Patched
None yet
Exploits
None indexed
Exploitation data as of Sep 10, 2026 · OSV.dev, NVD, FIRST.org (EPSS)

Exploitation Status

No confirmed exploitation observed yet

  • CISA assesses this as automatable — exploitation doesn’t require manual, per-target effort, which raises the odds of mass scanning and opportunistic attacks.
  • CISA’s own triage has not observed active exploitation or public proof-of-concept code for this CVE as of its last assessment.

Exploitation and automatability from CISA’s SSVC triage for GHSA-85rg-p3fr-xc2f.

EPSS Exploitation Probability

via FIRST.org ↗
0.3%probability of exploitation in next 30 days
Lower Risk0.00%
Lower risk than most CVEs18th percentile — riskier than 18% of all scored CVEsHighest risk
0.00%0.25%0.51%0.76%0.3%0.3%0.3%Aug 26Sep 26Sep 26

EPSS (Exploit Prediction Scoring System) is a daily probability model maintained by FIRST.org. It estimates the likelihood a CVE will be exploited in production environments within the next 30 days, derived from real-world threat intelligence signals.

How urgent is this, really

GHSA-85rg-p3fr-xc2f plotted by exploitation likelihood (EPSS) against impact (CVSS). The shaded corner — EPSS 50%+ and CVSS 7.0+ — is where this CVE doesn't sit, though severity or exploitability alone can still warrant action.

Where this sits among everything scored

Of 0 CVEs with a current EPSS score, this one falls in the < 10% band (highlighted). Real counts from FIRST.org, not a sample — log-scaled since the landscape is heavily right-skewed.

Real-World Exposure

3 pkgs affected

How broadly this vulnerability is actually deployed: weekly install volume shows current usage, and reverse-dependency count shows how many other packages break if it stays unpatched.

0other npm packages depend on this — each one inherits the vulnerability until it's patched upstream
qti-neonnpm
3downloads / week

Description

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)

Affected Packages

3 total
EcosystemPackageVulnerable rangeFix
Mavencom.quietterminal:qti-neonall versionsNo fix
📦npmqti-neonall versionsNo fix
🐍PyPIqti-neonall versionsNo fix

Detection & mitigation playbook

Open-source dependency
  1. Detect

    Scan your dependency tree (package-lock.json, pnpm-lock.yaml, requirements.txt, go.sum, etc.) for com.quietterminal:qti-neon. O3's reachability analysis confirms whether the vulnerable code path is actually invoked in your application, so you act on real exposure instead of every transitive match.

  2. Remediation status

    No patched version of com.quietterminal:qti-neon has shipped for GHSA-85rg-p3fr-xc2f yet. Where your build allows, override or pin the dependency away from the vulnerable range, and apply any maintainer-recommended mitigation.

  3. Mitigate without a patch

    If you can't upgrade right away: gate or disable the affected feature, validate untrusted input at the boundary, and avoid passing attacker-controlled data into the vulnerable path. O3's runtime protection blocks exploitation in production as an interim safeguard until the upgrade lands.

  4. How O3 protects you

    O3 pinpoints whether GHSA-85rg-p3fr-xc2f is reachable in your code and exactly where to fix it, then blocks exploitation in production at runtime until the patched version is deployed.

Tailored to GHSA-85rg-p3fr-xc2f. Runtime protection reduces exposure until a permanent patch is applied and verified — it complements patching, it doesn't replace it.

Frequently Asked Questions

### 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 forw
O3 Security · Impact-Aware SCA

Is GHSA-85rg-p3fr-xc2f in your dependencies?

O3 detects GHSA-85rg-p3fr-xc2f across Maven, npm, PyPI dependencies and uses function-level reachability to confirm whether the vulnerable code path is actually reachable — not just present. No false positives.

GHSA-85rg-p3fr-xc2f: qti-neon DoS (High 8.6) | O3 Security