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
- shared.timingSafeEqual: compare UTF-8 byte lengths, not JS code units.
Previously a non-ASCII input with the same .length as the expected
value would reach crypto.timingSafeEqual with different byte lengths
and throw RangeError — turning a 401 into a 500. Guards every
caller (metrics-auth, recovery, callback signatures).
- metrics-auth: regression test for non-ASCII Authorization header
with matching code-unit length.
- security.steps.ts: Headers.getSetCookie() for reliable multi-cookie
access; nonce step now fetches twice and asserts nonces differ, so
a hardcoded constant would no longer pass.
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
0 commit comments