Clippy Bot
23827c613e
test(client-auth): update metadata test to reflect frozen-metadata behavior
ci/woodpecker/pr/server-audit Pipeline failed
ci/woodpecker/pr/server-vet Pipeline failed
ci/woodpecker/pr/server-lint Pipeline was successful
ci/woodpecker/pr/server-test Pipeline was successful
ci/woodpecker/pr/useragent-analyze Pipeline failed
2026-06-28 12:06:06 +02:00
Clippy Bot
8381b68a52
Merge branch 'main' into zeroized-bootstrap-token
ci/woodpecker/pr/server-audit Pipeline failed
ci/woodpecker/pr/server-vet Pipeline failed
ci/woodpecker/pr/server-lint Pipeline was successful
ci/woodpecker/pr/server-test Pipeline failed
2026-06-27 13:25:27 +02:00
Clippy Bot
022003ac5e
fix: lints
ci/woodpecker/pr/server-audit Pipeline failed
ci/woodpecker/pr/server-vet Pipeline failed
ci/woodpecker/pr/server-lint Pipeline was successful
ci/woodpecker/pr/server-test Pipeline failed
2026-06-25 20:09:18 +02:00
CleverWild
00ddf99d77
fix!: protect evm_wallet integrity and bind key ciphertext to wallet address
...
ci/woodpecker/pr/server-audit Pipeline was successful
ci/woodpecker/pr/server-vet Pipeline failed
ci/woodpecker/pr/server-lint Pipeline failed
ci/woodpecker/pr/server-test Pipeline failed
Three independent failures allowed an offline attacker with DB write access
to sign transactions using a different wallet's private key:
1. evm_wallet had no HMAC envelope — aead_encrypted_id could be swapped silently.
2. AEAD used a static tag as AAD — any valid ciphertext decrypted as any wallet key.
3. No post-decryption check that the derived address matched the requested wallet.
Fix: sign_entity covers (address, aead_encrypted_id) in a single transaction;
CreateNew/Decrypt take caller-provided AAD (wallet address bytes); after decryption
signer.address() is verified against the requested wallet address.
2026-06-22 17:53:34 +02:00
CleverWild
b7ab5c79b7
fix(client-auth): freeze client metadata after initial operator approval
ci/woodpecker/pr/server-audit Pipeline was successful
ci/woodpecker/pr/server-vet Pipeline failed
ci/woodpecker/pr/server-lint Pipeline failed
ci/woodpecker/pr/server-test Pipeline failed
2026-06-22 16:07:58 +02:00
CleverWild
b8e092b9d7
fix(operator): bind sign-transaction to operator-approved client set
ci/woodpecker/pr/server-audit Pipeline was successful
ci/woodpecker/pr/server-vet Pipeline failed
ci/woodpecker/pr/server-lint Pipeline failed
ci/woodpecker/pr/server-test Pipeline was successful
2026-06-22 15:58:40 +02:00
CleverWild
9c9dc1fbb5
fix(integrity): return AttestationStatus::Unavailable for key version mismatch
ci/woodpecker/pr/server-audit Pipeline was successful
ci/woodpecker/pr/server-vet Pipeline failed
ci/woodpecker/pr/server-lint Pipeline failed
ci/woodpecker/pr/server-test Pipeline was successful
2026-06-22 15:50:43 +02:00
CleverWild
77bf19f99e
fix(wallet): delete access entries by entry ID instead of wallet ID
ci/woodpecker/pr/server-audit Pipeline was successful
ci/woodpecker/pr/server-vet Pipeline failed
ci/woodpecker/pr/server-lint Pipeline failed
ci/woodpecker/pr/server-test Pipeline was successful
2026-06-22 14:55:32 +02:00
CleverWild
f0456157d5
security(bootstrap): use SafeCell for token storage instead of zeroize
ci/woodpecker/pr/server-audit Pipeline was successful
ci/woodpecker/pr/server-vet Pipeline failed
ci/woodpecker/pr/server-lint Pipeline failed
ci/woodpecker/pr/server-test Pipeline was successful
2026-06-19 22:53:28 +02:00
CleverWild
c12c12d73e
fix(UA): signing endpoint accepts arbitrary client_id
ci/woodpecker/pr/server-audit Pipeline was successful
ci/woodpecker/pr/server-vet Pipeline failed
ci/woodpecker/pr/server-lint Pipeline failed
ci/woodpecker/pr/server-test Pipeline failed
2026-06-19 22:21:48 +02:00
CleverWild
670448292a
security: feat unseal and bootstrap handshake brute-force protection
ci/woodpecker/pr/server-audit Pipeline was successful
ci/woodpecker/pr/server-vet Pipeline failed
ci/woodpecker/pr/server-lint Pipeline failed
ci/woodpecker/pr/server-test Pipeline failed
2026-06-18 21:16:38 +02:00
CleverWild
85f27d8f09
fix(bootstrap): token persists on disk with weak file permissions #59
ci/woodpecker/pr/server-audit Pipeline was successful
ci/woodpecker/pr/server-vet Pipeline failed
ci/woodpecker/pr/server-lint Pipeline failed
ci/woodpecker/pr/server-test Pipeline failed
2026-06-18 20:59:24 +02:00
CleverWild
32ceb27d77
security(server): use SysRng directly for bootstrap token generation
...
ci/woodpecker/pr/server-audit Pipeline was successful
ci/woodpecker/pr/server-vet Pipeline failed
ci/woodpecker/pr/server-lint Pipeline was successful
ci/woodpecker/pr/server-test Pipeline failed
Replace make_rng()/StdRng with UnwrapErr(SysRng) to eliminate the PRNG
intermediate layer and make OS entropy derivation explicit and unambiguous.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-06-18 19:30:31 +02:00
CleverWild
dc03923c24
security(memory): zeroization of bootstrap token
ci/woodpecker/pr/server-audit Pipeline was successful
ci/woodpecker/pr/server-vet Pipeline failed
ci/woodpecker/pr/server-lint Pipeline was successful
ci/woodpecker/pr/server-test Pipeline failed
2026-06-18 17:16:06 +02:00