-
Notifications
You must be signed in to change notification settings - Fork 378
Closed
Labels
state:review-readyReady for human reviewReady for human reviewtopic:securitySecurity issuesSecurity issues
Milestone
Description
Summary
Inference route API keys are stored in full in the same SQLite or Postgres object store as every other entity. The InferenceRoute protobuf, including spec.api_key, is encoded to bytes and written as the row payload. There is no dedicated secret store, no encryption of sensitive fields at rest, and no redaction when routes are listed or returned. A compromise of the database file, a backup, or any dump of the objects table exposes all inference API keys.
Source Code
- Route create/update in
crates/navigator-server/src/inference.rspersist the fullInferenceRoute(includingspec.api_key) viastore.put_message. - The store abstraction in
crates/navigator-server/src/persistence/mod.rsimplementsput_message(lines 126-137) by encoding the message withmessage.encode_to_vec()and callingput(object_type, id, name, payload). The Postgres and SQLite backends write this payload as a blob with no per-field encryption or secret handling. - When listing routes,
inference.rs(lines 258-261) decodes eachrecord.payloadasInferenceRouteand appends it to the response with no redaction ofspec.api_key.
Originally by @drew on 2026-02-19T08:59:02.208-08:00
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
state:review-readyReady for human reviewReady for human reviewtopic:securitySecurity issuesSecurity issues