Bug
The statement summary feature (statement_summary.enabled = true by default) stores the full query text in a ring buffer exposed at GET /api/v1/statements. When users issue CREATE USER "foo" WITH PASSWORD 'secret', the password is stored in plaintext in the ring buffer.
Additionally, the statement summary endpoint (GET /api/v1/statements) is unauthenticated even when [auth] enabled = true (see separate ticket).
Deliverables
- Redact
PASSWORD '<password>' from CREATE USER and SET PASSWORD FOR statements before storing in the statement summary ring buffer. Replace password value with PASSWORD '****'.
- Similarly redact credentials in
u/p query parameters, Authorization headers, and any other credential-bearing inputs that might appear in logged query text.
- Verify that the redacted text is what gets stored in the ring buffer and emitted in logs.
References
docs/user-guide/authentication.md:33 — statement summary is public
- Statement summary implementation in
src/application/
Priority
P1 — Security, credential leakage
Bug
The statement summary feature (
statement_summary.enabled = trueby default) stores the full query text in a ring buffer exposed atGET /api/v1/statements. When users issueCREATE USER "foo" WITH PASSWORD 'secret', the password is stored in plaintext in the ring buffer.Additionally, the statement summary endpoint (
GET /api/v1/statements) is unauthenticated even when[auth] enabled = true(see separate ticket).Deliverables
PASSWORD '<password>'fromCREATE USERandSET PASSWORD FORstatements before storing in the statement summary ring buffer. Replace password value withPASSWORD '****'.u/pquery parameters,Authorizationheaders, and any other credential-bearing inputs that might appear in logged query text.References
docs/user-guide/authentication.md:33— statement summary is publicsrc/application/Priority
P1 — Security, credential leakage