Skip to content

fix(core): low-severity audit batch findings (exousia/horismos/apotheke/kritike) - #502

Merged
forkwright merged 2 commits into
mainfrom
fix/wave3-core-batches
Jul 2, 2026
Merged

fix(core): low-severity audit batch findings (exousia/horismos/apotheke/kritike)#502
forkwright merged 2 commits into
mainfrom
fix/wave3-core-batches

Conversation

@forkwright

Copy link
Copy Markdown
Owner

Applies the verified low-severity findings from the wave-1 + deeper-pass audit batches for the core/auth crates.

Closes #441, #462, #442, #463, #438, #443.

Highlights: bearer 401s distinguish TOKEN_EXPIRED; login no longer leaks inactive-account existence; password length validation (min 8 / max 256); numeric refresh-token expiry comparison with overflow-clamped generation + config-load TTL validation; random_alphanum entropy fix; the ConfigHandle::borrow hold-across-await footgun removed; SIGHUP reload moved to spawn_blocking; apotheke transactional daily-stats + release-group reads, Option-returning parse_media_type (also kritike), LIMIT-bounded queries, single-JOIN list_zones, plus coverage. 26 findings fixed; 9 were already fixed on main by earlier hardening; 1 (login rate-limit/lockout) deferred per its own fix-plan as a dedicated PR (schema + config + new subsystem).

kanon gate --full green (261 crate tests + 166 archon, clippy workspace, kanon lint).

forkwright added 2 commits July 2, 2026 12:33
…ke/kritike)

Applies the verified low-severity findings from the wave-1 + deeper-pass
audit batches: bearer 401s distinguish TOKEN_EXPIRED; login no longer leaks
inactive-account existence; password length validation; numeric refresh-token
expiry comparison with overflow-clamped generation and config-load TTL
validation; random_alphanum entropy fix; ConfigHandle::borrow footgun removed;
SIGHUP reload moved off the executor; apotheke transactional daily-stats and
release-group reads, Option-returning parse_media_type (also kritike),
LIMIT-bounded queries, single-JOIN list_zones, plus test coverage.

Closes #441
Closes #462
Closes #442
Closes #463
Closes #438
Closes #443

Gate-Passed: kanon 0.1.5 +stages:fmt,check,clippy,nextest,lint sha:b64773743a8fe472fd40cc6c8cfee8d214c43271
The shared exousia unit-test secret "test-secret-that-is-long-enough-for-hs256"
tripped the generic-api-key rule when exousia/src/service.rs gained inline
tests. Value-scoped allowlist covers all three exousia test modules (lib.rs,
middleware.rs, service.rs) without blinding gitleaks to real secrets in those
source files, and needs no per-file maintenance as tests move.
@forkwright
forkwright merged commit 790617a into main Jul 2, 2026
12 checks passed
@forkwright
forkwright deleted the fix/wave3-core-batches branch July 2, 2026 17:49
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

exousia: 13 low-severity audit findings (wave-1 batch)

1 participant