<?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-02T01:07:39.100778+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-44424</id>
    <title>fkie_cve-2026-44424</title>
    <updated>2026-10-02T01:07:39.117854+00:00</updated>
    <content type="xhtml">
      <div xmlns="http://www.w3.org/1999/xhtml">
        <p>ShellHub is a centralized SSH gateway. Prior to 0.24.2, GET /api/devices/:uid returns the full device object whenever the caller is authenticated, without verifying that the device belongs to the caller's namespace (tenant). Any authenticated user (JWT or API Key) who knows or can guess a device UID can read device metadata from any other namespace. This vulnerability is fixed in 0.24.2.</p>
      </div>
    </content>
    <link href="https://db.gcve.eu/vuln/fkie_cve-2026-44424"/>
  </entry>
  <entry>
    <id>https://db.gcve.eu/vuln/ghsa-j72x-xfwg-783f</id>
    <title>GHSA-j72x-xfwg-783f — ShellHub has cross-tenant IDOR in `GET /api/devices/:uid` that discloses device data of any namespace</title>
    <updated>2026-10-02T01:07:39.117995+00:00</updated>
    <content type="xhtml">
      <div xmlns="http://www.w3.org/1999/xhtml"><p><strong>Affected:</strong> Go: github.com/shellhub-io/shellhub</p>
<p>## Summary
`GET /api/devices/:uid` returns the full device object whenever the caller is authenticated, without verifying that the device belongs to the caller's namespace (tenant). Any authenticated user (JWT or API Key) who knows or can guess a device UID can read device metadata from any other namespace.</p>
<p>## Severity
**CVSS 3.1: 7.5 (High)** 
CWE-639 — Authorization Bypass Through User-Controlled Key</p>
<p>## Affected versions
ShellHub Community v0.24.1 (validated). Likely all prior versions that share this handler.</p>
<p>## Root cause
`api/services/device.go:97-104` — `GetDevice` resolves the device by UID without scoping to the caller's tenant:</p>
<p>```go
  func (s *service) GetDevice(ctx context.Context, uid models.UID) (*models.Device, error) {
      device, err := s.store.DeviceResolve(ctx, store.DeviceUIDResolver, string(uid))
      // ⚠️ missing: s.store.Options().InNamespace(tenant)
      ...
  }
  ```</p>
<p>Compare with `DeleteDevice` in the same file (line 137) which correctly applies `InNamespace(tenant)`.</p>
<p>The `Authorize` middleware (`api/routes/middleware/authorize.go:12-27`) only checks that a tenant is present in the context — not that the resource belongs to that tenant.</p>
<p>## Proof of concept (validated live against v0.24.1)</p>
<p>Pre-requisite: attacker has any valid user account and knows a target `tenant_id` (UUIDs frequently leak via UI URLs, email invites, support channels, or prior namespace membership).</p>
<p>```bash
  ATTACKER_TOKEN=$(curl -s -X POST http://target/api/login…</p></div>
    </content>
    <link href="https://db.gcve.eu/vuln/ghsa-j72x-xfwg-783f"/>
  </entry>
</feed>
