<?xml version='1.0' encoding='UTF-8'?>
<?xml-stylesheet href="/static/style.xsl" type="text/xsl"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
  <id>https://db.gcve.eu/rss/recent/all/10</id>
  <title>Most recent entries from all</title>
  <updated>2026-10-16T17:52:19.153266+00:00</updated>
  <author>
    <name>Vulnerability-Lookup</name>
    <email>info@gcve.eu</email>
  </author>
  <link href="https://db.gcve.eu" rel="alternate"/>
  <generator uri="https://lkiesow.github.io/python-feedgen" version="1.0.0">python-feedgen</generator>
  <subtitle>Contains only the most 10 recent entries.</subtitle>
  <entry>
    <id>https://db.gcve.eu/vuln/fkie_cve-2026-84321</id>
    <title>fkie_cve-2026-84321</title>
    <updated>2026-10-16T17:52:19.170676+00:00</updated>
    <content type="xhtml">
      <div xmlns="http://www.w3.org/1999/xhtml">
        <p>Nginx UI is a web user interface for the Nginx web server. Prior to 2.4.1, GenerateShortToken creates standalone short-token records without a long Token value, but DeleteUserTokens invalidates cached entries only when the long Token field is nonempty. A revoked short token can therefore remain in the short_token cache and authenticate again if the associated account is re-enabled before the cache entry expires because GetTokenUserByShortToken reads the surviving entry, restoring access to HTTP or WebSocket routes that accept short-token authentication. This issue is fixed in version 2.4.1.</p>
      </div>
    </content>
    <link href="https://db.gcve.eu/vuln/fkie_cve-2026-84321"/>
  </entry>
  <entry>
    <id>https://db.gcve.eu/vuln/ghsa-wq4w-vwvq-q3x9</id>
    <title>GHSA-wq4w-vwvq-q3x9 — Nginx UI: Standalone short tokens survive administrative revocation in cache and authenticate again after account re-en…</title>
    <updated>2026-10-16T17:52:19.170799+00:00</updated>
    <content type="xhtml">
      <div xmlns="http://www.w3.org/1999/xhtml"><p><strong>Affected:</strong> Go: github.com/0xJacky/Nginx-UI</p>
<p>### Summary
Standalone short tokens issued for WebSocket and explicit-token authentication can survive administrative revocation in cache. If the same account is later re-enabled before the cache entry expires, the deleted short token becomes valid again.</p>
<p>### Details
`GenerateShortToken()` creates an `AuthToken` row that contains only `ShortToken` and no long `Token`. `DeleteUserTokens()` removes database rows, but when clearing caches it only invalidates entries where `authToken.Token != ""`. This leaves standalone short-token cache entries behind. `GetTokenUserByShortToken()` checks that cache first and then loads the user by ID, so the stale short token becomes usable again if the account status is restored to `true`.</p>
<p>Relevant code paths:
- [internal/user/user.go](/home/kali/Desktop/bounty/nginx-ui/internal/user/user.go:43)
- [internal/user/user.go](/home/kali/Desktop/bounty/nginx-ui/internal/user/user.go:118)
- [internal/user/user.go](/home/kali/Desktop/bounty/nginx-ui/internal/user/user.go:204)
- [api/user/short_token.go](/home/kali/Desktop/bounty/nginx-ui/api/user/short_token.go:13)
- [internal/middleware/middleware.go](/home/kali/Desktop/bounty/nginx-ui/internal/middleware/middleware.go:82)</p>
<p>### PoC
This was verfied locally in an isolated environment with a temporary package-level harness that exercised the real token issuance, revocation, cache, and re-authentication paths.</p>
<p>What the executed test did:
1. Created an enabled user in a temporary SQLite database.
2. C…</p></div>
    </content>
    <link href="https://db.gcve.eu/vuln/ghsa-wq4w-vwvq-q3x9"/>
  </entry>
</feed>
