Skip to content

fix(stdio): redact config values in "Configuration loaded" log - #788

Open
cosmic-fire-eng wants to merge 1 commit into
arcadeai-labs:mainfrom
cosmic-fire-eng:fix/stdio-redact-config-log
Open

fix(stdio): redact config values in "Configuration loaded" log#788
cosmic-fire-eng wants to merge 1 commit into
arcadeai-labs:mainfrom
cosmic-fire-eng:fix/stdio-redact-config-log

Conversation

@cosmic-fire-eng

Copy link
Copy Markdown

On stdio startup the generated bootstrap logs the full parsed config object to stderr. When a server's config schema carries credentials, those secrets are written in plaintext to every sink that captures the process stderr (systemd/journald, docker logs, log shippers).

Concrete case: a server whose configSchema is { email, password, mfaSecret } prints all three at launch. Because the leak is in the shared stdio runtime template, it affects every TypeScript-runtime Smithery MCP whose config carries secrets. The keys alone satisfy the "what did I parse" diagnostic this line exists for, so this logs Object.keys(config) and drops the values. shttp-bootstrap.ts does not log config, so no change there.

On stdio startup the generated bootstrap logged the full parsed config
object to stderr. When a server's config schema carries credentials,
those secrets are written in plaintext to every sink that captures the
process stderr (systemd/journald, docker logs, log shippers). Log only
the config keys, which still satisfies the "what did I parse" diagnostic
this line exists for.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@cosmic-fire-eng

Copy link
Copy Markdown
Author

Checking in here — since this touches credential logging I wanted to keep it on your radar. Happy to rebase onto latest or move the redaction point if you'd prefer a different approach. Thanks!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

1 participant