CVE-2026-40302

zrok has reflected XSS in GitHub OAuth callback via unsanitized refreshInterval error rendering

Published Apr 17, 2026 CVSS 3.1 · 6.1 Medium EPSS < 1% KEV · Not listed
Description
zrok is software for sharing web services, files, and network resources. Prior to version 2.0.1, the proxyUi template engine uses Go's text/template (which performs no HTML escaping) instead of html/template. The GitHub OAuth callback handlers in both publicProxy and dynamicProxy embed the attacker-controlled refreshInterval query parameter verbatim into an error message when time.ParseDuration fails, and render that error unescaped into HTML. An attacker can deliver a crafted login URL to a victim; after the victim completes the GitHub OAuth flow, the callback page executes arbitrary JavaScript in the OAuth server's origin. Version 2.0.1 patches the issue.

Remediation

No solution or workaround provided in the CVE record

Tracking

Sign in to view the affected projects.

Advisories

Source ID Title
Github GHSA Github GHSA GHSA-4fxq-2x3x-6xqx zrok: Reflected XSS in GitHub OAuth callback via unsanitized refreshInterval error rendering
History
Type Values Removed Values Added
First Time appeared Netfoundry
Netfoundry zrok
CPEs cpe:2.3:a:netfoundry:zrok:*:*:*:*:*:*:*:*
Vendors & Products Netfoundry
Netfoundry zrok
Type Values Removed Values Added
First Time appeared Openziti
Openziti zrok
Vendors & Products Openziti
Openziti zrok
Type Values Removed Values Added
Metrics ssvc

{'options': {'Automatable': 'no', 'Exploitation': 'none', 'Technical Impact': 'partial'}, 'version': '2.0.3'}

Type Values Removed Values Added
Description zrok is software for sharing web services, files, and network resources. Prior to version 2.0.1, the proxyUi template engine uses Go's text/template (which performs no HTML escaping) instead of html/template. The GitHub OAuth callback handlers in both publicProxy and dynamicProxy embed the attacker-controlled refreshInterval query parameter verbatim into an error message when time.ParseDuration fails, and render that error unescaped into HTML. An attacker can deliver a crafted login URL to a victim; after the victim completes the GitHub OAuth flow, the callback page executes arbitrary JavaScript in the OAuth server's origin. Version 2.0.1 patches the issue.
Title zrok has reflected XSS in GitHub OAuth callback via unsanitized refreshInterval error rendering
Weaknesses CWE-116
CWE-79
References
Metrics cvssV3_1

{'score': 6.1, 'vector': 'CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N'}

Weaknesses

Sources

Status
PUBLISHED
Assigner
GitHub_M
Published
Updated
Apr 18, 2026, 3:07 AM
Reserved
Apr 10, 2026, 8:22 PM
Status
Analyzed
Published
Apr 17, 2026, 9:16 PM
Modified
Oct 26, 2026, 10:10 PM