OpenClaw's fetchWithSsrFGuard(...) followed cross-origin redirects while preserving arbitrary caller-supplied headers except for a narrow denylist (Authorization, Proxy-Authorization, Cookie, Cookie2). This allowed custom authorization headers such as X-Api-Key, Private-Token, and similar sensitive headers to be forwarded to a different origin after a redirect.
The fix switches cross-origin redirect handling from a narrow sensitive-header denylist to a safe-header allowlist, so only benign headers such as content negotiation and cache validators survive an origin change.
openclaw (npm)<= 2026.3.22026.3.72026.3.2A remote service that could trigger a redirect across origins could receive custom authorization credentials attached by OpenClaw callers. This can expose API keys, bearer-style custom headers, or private token headers intended only for the original destination.
46715371b0612a6f9114dffd1466941ac476cef5pnpm check passedpnpm test:fast passedpnpm exec vitest run --config vitest.gateway.config.ts still has unrelated current-main failures in src/gateway/server-channels.test.ts and src/gateway/server-methods/agents-mutate.test.tsnpm 2026.3.7 was published on March 8, 2026. This advisory is fixed in the released package.
Thanks @Rickidevs for reporting.
{
"github_reviewed": true,
"github_reviewed_at": "2026-03-09T19:54:20Z",
"cwe_ids": [
"CWE-116",
"CWE-184",
"CWE-522"
],
"severity": "HIGH",
"nvd_published_at": "2026-03-23T22:16:30Z"
}