Live finding after build.1790261926: POST /api/v1/facts with the workstation key answered 401 "invalid API key". The key in OpenBao apps/ai/wiki-api-keys/workstation is stored with a trailing newline (65 bytes), the client sends the 64-byte key, and the constant-time compare fails on length.
Fix on our side: the handler trims both the configured and the presented key. Test: a key configured as "newline-key\n" authenticates when presented as newline-key. Host tests 20 green.
Live finding after build.1790261926: `POST /api/v1/facts` with the workstation key answered 401 "invalid API key". The key in OpenBao `apps/ai/wiki-api-keys/workstation` is stored with a trailing newline (65 bytes), the client sends the 64-byte key, and the constant-time compare fails on length.
Fix on our side: the handler trims both the configured and the presented key. Test: a key configured as `"newline-key\n"` authenticates when presented as `newline-key`. Host tests 20 green.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
The workstation key in OpenBao ends with a newline, so the 64-byte key a
client presents never matched the 65-byte configured value. Whitespace
around a key carries no entropy and is a store artefact, not identity.
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Live finding after build.1790261926:
POST /api/v1/factswith the workstation key answered 401 "invalid API key". The key in OpenBaoapps/ai/wiki-api-keys/workstationis stored with a trailing newline (65 bytes), the client sends the 64-byte key, and the constant-time compare fails on length.Fix on our side: the handler trims both the configured and the presented key. Test: a key configured as
"newline-key\n"authenticates when presented asnewline-key. Host tests 20 green.🤖 Generated with Claude Code
Closed: rejected by the owner. The stored value in OpenBao is corrected instead.
Pull request closed