{"id":"CVE-2026-49820","title":"Probo is a self-hostable governance, risk, and compliance (GRC) platform built for engineering and security teams","summary":"Probo is a self-hostable governance, risk, and compliance (GRC) platform built for engineering and security teams. Probo's `saferedirect` package validates redirect URLs used across authentication flows (OIDC, SAML, session transfer, OAu…","severity":"medium","cvss":4.7,"cvssVector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:N/I:L/A:N","cwe":["CWE-601"],"vendor":"probo","product":"go.probo.inc/probo","affected":["go.probo.inc/probo < 0.204.0"],"patched":["go.probo.inc/probo 0.204.0"],"published":"2026-08-13","updated":"2026-09-18","sourceUpdated":"2026-09-18T20:09:01.757","source":"NVD","sourceUrl":"https://nvd.nist.gov/vuln/detail/CVE-2026-49820","references":[{"url":"https://github.com/getprobo/probo/blob/main/SECURITY_NOTES.md","label":"security-advisories@github.com"},{"url":"https://github.com/getprobo/probo/security/advisories/GHSA-x7qq-m748-8p2c","label":"security-advisories@github.com"},{"url":"https://github.com/advisories/GHSA-x7qq-m748-8p2c"}],"tags":["nvd","ghsa","go"],"epss":0.00417,"epssPercentile":0.33271,"ecosystem":"go","ingestedAt":"2026-06-30T21:24:14.402Z","slug":"CVE-2026-49820","body":"## Overview\n\nProbo is a self-hostable governance, risk, and compliance (GRC) platform built for engineering and security teams. Probo's `saferedirect` package validates redirect URLs used across authentication flows (OIDC, SAML, session transfer, OAuth connectors, and trust-center magic links). Prior to version 0.19.3.1, the validator only inspected the second character of relative paths, so a URL like `/../\\evil.com` passed validation because the second character is `.`. Go's `http.Redirect` normalizes this path to `/\\evil.com` before setting the `Location` header. Browsers can interpret the backslash as a host separator and redirect the user to an external domain (`https://evil.com`), bypassing the intended same-origin restriction. This enables open-redirect phishing: an attacker can craft a `continue` parameter (or embed a malicious URL in a session-transfer token) that appears to originate from a trusted Probo domain but redirects victims elsewhere. This is fixed in `go.probo.inc/probo` 0.193.1 by normalizing relative paths with `path.Clean` before validation, rejecting backslashes (including percent-encoded `%5c`) anywhere in the path, and re-checking the normalized result for protocol-relative and backslash prefixes. Self-hosted deployments should upgrade to probod v0.194.1 or later. SaaS deployments on getprobo.com are patched. No practical workaround is available for self-hosted installations.\n\n## Remediation\n\nRefer to the linked advisories for vendor-supplied fixes and affected version ranges.\n\n## Package advisory (CVE-2026-49820)\n\nAffected packages:\n\n- `go.probo.inc/probo < 0.204.0`\n\nPatched in:\n\n- `go.probo.inc/probo 0.204.0`\n\nSource: https://github.com/advisories/GHSA-x7qq-m748-8p2c","depth":"sunlit","depthScore":26,"depthScoreParts":{"impact":25.9,"likelihood":0.1,"exploitation":0,"ransomware":0},"changes":[]}