You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Closes two independent draft advisories in a single PR. Each fix is
narrow, defense-in-depth, and verified by a dedicated test.
GHSA-rqfj-vv8r-xhqc (medium, Secure cookies):
- Add ServerConfig.CookieSecure *bool with CookieSecureResolved() that
resolves explicit value first, otherwise infers true when both
tls_cert and tls_key are set.
- Thread the flag through SessionManager and OIDC via SetCookieSecure
setters; Web.WithCookieSecure propagates to both (nil-safe for OIDC).
- Update every cookie write site to set Secure: sm.cookieSecure /
o.cookieSecure. Logout and OIDC state-clear cookies also pick up the
full HttpOnly/Secure/SameSite=Lax fingerprint so browsers reliably
replace the live cookies (RFC 6265 attribute matching).
GHSA-6vgg-xhvh-38ff (low, mobile-bundle Cache-Control):
- handleMobileBundle now sets Cache-Control: no-store, Pragma: no-cache,
Expires: 0 alongside Content-Type. The endpoint returns a freshly
minted X25519 private key inline, so any cache between server and
operator must drop the response. X-Content-Type-Options: nosniff is
already set globally by the securityHeaders middleware in
cli/serve.go (verified by cli/security_headers_test.go), so the
handler does not duplicate it.
Note: GHSA-wx87-29cj-m659 (constant-time legacy-key compare) was part
of the original bundle but is now obsoleted on main — the legacy
config-file API key fallback was removed in 56c07b7, eliminating the
timing oracle entirely. The corresponding advisory should be closed
with reference to that commit rather than fixed here.
0 commit comments