← Back to CVE Explorer

CVE-2026-65655

Full vulnerability record from the local CVENow database.

Description

When OAuth authentication is enabled and browser-facing TLS terminates at a reverse proxy that forwards the callback to Temporal UI Server over HTTP, affected versions derive authentication-cookie Secure attributes from the proxy-to-server connection. Temporal UI Server can therefore issue access-token cookies, and refresh-token cookies when provided by the identity provider, without Secure even though the browser completed login over HTTPS. A victim who visits attacker-controlled content while a credential remains live may expose that credential only if the attacker can also steer traffic for the UI hostname, prevent the browser's HTTPS connection from succeeding, serve the hostname over HTTP, and read a later same-site plaintext request. A malicious website alone cannot read the cookie, and passive observation of a successful TLS connection is insufficient. Effective HSTS, a blocking HTTPS-only warning, or TLS re-encryption between the proxy and Temporal UI Server prevents the demonstrated disclosure path. A recovered credential may be replayed within the victim's assigned permissions. Refresh-token replay additionally depends on the identity provider's issuance, expiry, rotation, and reuse-detection behavior.

Severity
LOW
CVSS score
2.3 (v4.0)
Vulnerability status
Deferred
Source identifier
Published
2026-08-11 20:18:31.447000
Last modified
2026-10-24 16:10:00.153000
View original CVE JSON
{
  "id": "CVE-2026-65655",
  "sourceIdentifier": "[email protected]",
  "published": "2026-08-11T20:18:31.447",
  "lastModified": "2026-10-24T16:10:00.153",
  "vulnStatus": "Deferred",
  "cveTags": [],
  "descriptions": [
    {
      "lang": "en",
      "value": "When OAuth authentication is enabled and browser-facing TLS terminates at a reverse proxy that forwards the callback to Temporal UI Server over HTTP, affected versions derive authentication-cookie Secure attributes from the proxy-to-server connection. Temporal UI Server can therefore issue access-token cookies, and refresh-token cookies when provided by the identity provider, without Secure even though the browser completed login over HTTPS.\n\n\n\nA victim who visits attacker-controlled content while a credential remains live may expose that credential only if the attacker can also steer traffic for the UI hostname, prevent the browser's HTTPS connection from succeeding, serve the hostname over HTTP, and read a later same-site plaintext request. A malicious website alone cannot read the cookie, and passive observation of a successful TLS connection is insufficient. Effective HSTS, a blocking HTTPS-only warning, or TLS re-encryption between the proxy and Temporal UI Server prevents the demonstrated disclosure path.\n\n\n\nA recovered credential may be replayed within the victim's assigned permissions. Refresh-token replay additionally depends on the identity provider's issuance, expiry, rotation, and reuse-detection behavior."
    },
    {
      "lang": "es",
      "value": "Cuyo la autenticación OAuth está habilitada y el TLS orientado al navegador termina en un proxy inverso que reenvía la devolución de llamada al Temporal UI Server a través de HTTP, las versiones afectadas derivan los atributos Secure de la cookie de autenticación de la conexión entre el proxy y el servidor. El Temporal UI Server puede, por lo tanto, emitir cookies de token de acceso y cookies de token de actualización cuyo las proporciona el proveedor de identidad, sin Secure, a pesar de que el navegador completó el inicio de sesión a través de HTTPS.\n\nUna víctima que visita contenido controlado por el atacante mientras una credencial permanece activa puede exponer esa credencial solo si el atacante también puede dirigir el tráfico para el nombre de host de la interfaz de usuario, evitar que la conexión HTTPS del navegador tenga éxito, servir el nombre de host a través de HTTP y leer una solicitud posterior de texto sin cifrar del mismo sitio. Un sitio web malicioso por sí solo no puede leer la cookie, y la observación pasiva de una conexión TLS exitosa es insuficiente. HSTS efectivo, una advertencia de solo HTTPS que bloquea, o el recifrado TLS entre el proxy y el Temporal UI Server previene la ruta de divulgación demostrada.\n\nUna credencial recuperada puede ser reproducida dentro de los permisos asignados a la víctima. La reproducción del token de actualización depende adicionalmente de la emisión del proveedor de identidad, la caducidad, la rotación y el comportamiento de detección de reutilización."
    }
  ],
  "affected": [
    {
      "source": "[email protected]",
      "affectedData": [
        {
          "vendor": "Temporal Technologies, Inc.",
          "product": "Temporal UI Server",
          "defaultStatus": "unaffected",
          "collectionURL": "https://pkg.go.dev",
          "packageName": "github.com/temporalio/ui-server/v2",
          "modules": [
            "OIDC authentication cookies"
          ],
          "programFiles": [
            "server/auth/auth.go",
            "server/route/auth.go"
          ],
          "repo": "https://github.com/temporalio/ui-server",
          "versions": [
            {
              "version": "2.7.0",
              "lessThan": "2.53.2",
              "versionType": "semver",
              "status": "affected"
            }
          ]
        }
      ]
    }
  ],
  "metrics": {
    "cvssMetricV40": [
      {
        "source": "[email protected]",
        "type": "Secondary",
        "cvssData": {
          "version": "4.0",
          "vectorString": "CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:P/VC:L/VI:L/VA:N/SC:N/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X",
          "baseScore": 2.3,
          "baseSeverity": "LOW",
          "attackVector": "NETWORK",
          "attackComplexity": "LOW",
          "attackRequirements": "PRESENT",
          "privilegesRequired": "NONE",
          "userInteraction": "PASSIVE",
          "vulnConfidentialityImpact": "LOW",
          "vulnIntegrityImpact": "LOW",
          "vulnAvailabilityImpact": "NONE",
          "subConfidentialityImpact": "NONE",
          "subIntegrityImpact": "NONE",
          "subAvailabilityImpact": "NONE",
          "exploitMaturity": "NOT_DEFINED",
          "confidentialityRequirement": "NOT_DEFINED",
          "integrityRequirement": "NOT_DEFINED",
          "availabilityRequirement": "NOT_DEFINED",
          "modifiedAttackVector": "NOT_DEFINED",
          "modifiedAttackComplexity": "NOT_DEFINED",
          "modifiedAttackRequirements": "NOT_DEFINED",
          "modifiedPrivilegesRequired": "NOT_DEFINED",
          "modifiedUserInteraction": "NOT_DEFINED",
          "modifiedVulnConfidentialityImpact": "NOT_DEFINED",
          "modifiedVulnIntegrityImpact": "NOT_DEFINED",
          "modifiedVulnAvailabilityImpact": "NOT_DEFINED",
          "modifiedSubConfidentialityImpact": "NOT_DEFINED",
          "modifiedSubIntegrityImpact": "NOT_DEFINED",
          "modifiedSubAvailabilityImpact": "NOT_DEFINED",
          "Safety": "NOT_DEFINED",
          "Automatable": "NOT_DEFINED",
          "Recovery": "NOT_DEFINED",
          "valueDensity": "NOT_DEFINED",
          "vulnerabilityResponseEffort": "NOT_DEFINED",
          "providerUrgency": "NOT_DEFINED"
        }
      }
    ],
    "ssvcV203": [
      {
        "source": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
        "ssvcData": {
          "timestamp": "2026-08-11T20:15:46.742171Z",
          "id": "CVE-2026-65655",
          "options": [
            {
              "exploitation": "none"
            },
            {
              "automatable": "no"
            },
            {
              "technicalImpact": "partial"
            }
          ],
          "role": "CISA Coordinator",
          "version": "2.0.3"
        }
      }
    ]
  },
  "weaknesses": [
    {
      "source": "[email protected]",
      "type": "Secondary",
      "description": [
        {
          "lang": "en",
          "value": "CWE-614"
        }
      ]
    }
  ],
  "references": [
    {
      "url": "https://github.com/temporalio/ui-server/blob/v2.53.1/server/auth/auth.go#L87-L153",
      "source": "[email protected]"
    },
    {
      "url": "https://github.com/temporalio/ui-server/blob/v2.53.1/server/route/auth.go#L281-L316",
      "source": "[email protected]"
    },
    {
      "url": "https://github.com/temporalio/ui-server/commit/7b9ff533fb51beba75497c0a192c66775c08f279",
      "source": "[email protected]"
    },
    {
      "url": "https://github.com/temporalio/ui-server/commit/821cf598371353f1b579dfe1e87aeb3638b041d6",
      "source": "[email protected]"
    },
    {
      "url": "https://github.com/temporalio/ui-server/commit/8876b80b63003688ab736f45ef28885695a4f6db",
      "source": "[email protected]"
    },
    {
      "url": "https://github.com/temporalio/ui-server/releases/tag/v2.53.1",
      "source": "[email protected]"
    },
    {
      "url": "https://github.com/temporalio/ui-server/releases/tag/v2.53.2",
      "source": "[email protected]"
    },
    {
      "url": "https://github.com/temporalio/ui/pull/3806",
      "source": "[email protected]"
    }
  ]
}