Client key is not integrity-protected #58
Reference in New Issue
Block a user
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Info
Severity: CRITICAL
Attack vector: offline
Impact
Allows an attacker with database write access to insert or replace SDK client keys and bypass the intended approval flow.
Description
Unlike user-agent records and grants,
program_clientrows are created without an integrity envelope and are not verified before challenge issuance. This makes SDK client identities directly tamperable at the database level.Example flow
program_clientrow or replace an existing public key in the database.Mitigation
Sign
program_clientrows on insertion and verify them before authentication, mirroring the user-agent integrity pattern.