Skip to content
Heist/ feed
Back to feed
Medium

Open WebUI: Unapproved accounts can open terminal sessions via a WebSocket auth path missing the role check

Type: advisorySources: OSV

Open WebUI is an extensible, feature-rich, and user-friendly self-hosted AI platform. From 0.8.8 until 0.11.0, the terminal WebSocket route in backend/open_webui/routers/terminals.py authenticated its own first-message JWT and never applied the verified-user role gate that get_verified_user enforces on HTTP terminal routes. An account whose role is pending, including a registered but unapproved account or an account deactivated back to pending, can open an interactive terminal session when at least one terminal server is configured and its access grants cover the account. This loses the account-approval boundary for terminal access while the HTTP terminal routes correctly reject the same account. This issue is fixed in 0.11.0.

Products
Not specified
Affected versions
Not specified
Fixed versions
Not specified
CVEs
CVE-2026-70490
Confirmed fixed CVEs
Not specified
Updated in this feed
4 Nov 2026, 15:50 UTC · Revision 1

Source evidence

Open WebUI: Unapproved accounts can open terminal sessions via a WebSocket auth path missing the role check

core-osv · Original source

Published 4 Aug 2026, 20:44 UTC

Open WebUI is an extensible, feature-rich, and user-friendly self-hosted AI platform. From 0.8.8 until 0.11.0, the terminal WebSocket route in backend/open_webui/routers/terminals.py authenticated its own first-message JWT and never applied the verified-user role gate that get_verified_user enforces on HTTP terminal routes. An account whose role is pending, including a registered but unapproved account or an account deactivated back to pending, can open an interactive terminal session when at least one terminal server is configured and its access grants cover the account. This loses the account-approval boundary for terminal access while the HTTP terminal routes correctly reject the same account. This issue is fixed in 0.11.0.

osv:CVE-2026-70490
Complete source record
{
  "id": "aeacbafdf07c567e84a8455179cb111e6bcec2bd72114121a75a0c5a7acc82a6",
  "url": "https://osv.dev/vulnerability/CVE-2026-70490",
  "method": "structured",
  "payload": {
    "kind": "advisory",
    "title": "Open WebUI: Unapproved accounts can open terminal sessions via a WebSocket auth path missing the role check",
    "summary": "Open WebUI is an extensible, feature-rich, and user-friendly self-hosted AI platform. From 0.8.8 until 0.11.0, the terminal WebSocket route in backend/open_webui/routers/terminals.py authenticated its own first-message JWT and never applied the verified-user role gate that get_verified_user enforces on HTTP terminal routes. An account whose role is pending, including a registered but unapproved account or an account deactivated back to pending, can open an interactive terminal session when at least one terminal server is configured and its access grants cover the account. This loses the account-approval boundary for terminal access while the HTTP terminal routes correctly reject the same account. This issue is fixed in 0.11.0.",
    "evidence": "osv:CVE-2026-70490",
    "products": [],
    "severity": "medium",
    "structured": {
      "id": "CVE-2026-70490",
      "aliases": [
        "CVE-2026-70490",
        "GHSA-5gpj-vj23-vhhv",
        "PYSEC-2026-3642"
      ],
      "metrics": [
        {
          "type": "CVSS_V3",
          "score": "CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:L/A:L"
        }
      ],
      "affected": [
        {
          "ranges": [
            {
              "repo": "https://github.com/open-webui/open-webui",
              "type": "GIT",
              "events": [
                {
                  "introduced": "79f04379801622181ef9c591374a285eac4e1c4d"
                },
                {
                  "fixed": "f9590b8017199e56d5e953657e6498e3cef1d246"
                }
              ],
              "database_specific": {
                "extracted_events": [
                  {
                    "range": [
                      {
                        "introduced": "0.8.8"
                      },
                      {
                        "fixed": "0.11.0"
                      }
                    ],
                    "source": "AFFECTED_FIELD",
                    "strategy": "StringRangeExpression"
                  },
                  {
                    "cpe": "cpe:2.3:a:openwebui:open_webui:*:*:*:*:*:*:*:*",
                    "range": [
                      {
                        "introduced": "0.8.8"
                      },
                      {
                        "fixed": "0.11.0"
                      }
                    ],
                    "source": "CPE_RANGE"
                  }
                ]
              }
            }
          ],
          "versions": [
            "v0.10.2",
            "v0.10.1",
            "v0.10.0",
            "v0.9.5",
            "v0.9.4",
            "v0.9.3",
            "v0.9.2",
            "v0.9.1",
            "v0.9.0",
            "v0.8.12",
            "v0.8.11",
            "v0.8.10",
            "v0.8.9",
            "v0.8.8"
          ],
          "database_specific": {
            "source": "https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-70490.json"
          }
        }
      ],
      "modified": "2026-10-28T02:30:37.042547436Z",
      "provider": "osv",
      "references": [
        "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/70xxx/CVE-2026-70490.json",
        "https://github.com/open-webui/open-webui/security/advisories/GHSA-5gpj-vj23-vhhv",
        "https://nvd.nist.gov/vuln/detail/CVE-2026-70490"
      ],
      "provider_metadata": {
        "cwe_ids": [
          "CWE-863"
        ],
        "cna_assigner": "GitHub_M",
        "osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/70xxx/CVE-2026-70490.json"
      }
    },
    "related_cves": [
      {
        "value": "CVE-2026-70490",
        "evidence": "/id"
      }
    ],
    "security_relevant": true,
    "severity_evidence": "/severity/0/score"
  },
  "source_id": "core-osv",
  "document_id": 504294,
  "published_at": "2026-08-04T20:44:54.737+00:00"
}