Skip to content

fix(secrets): redact key names and resolution paths from debug logs (issue #16) - #36

Merged
labtgbot merged 1 commit into
mainfrom
issue-16-secrets-logging
Jun 15, 2026
Merged

fix(secrets): redact key names and resolution paths from debug logs (issue #16)#36
labtgbot merged 1 commit into
mainfrom
issue-16-secrets-logging

Conversation

@xdevrobot

Copy link
Copy Markdown
Collaborator

Summary

Fixes CWE-532 (Insertion of Sensitive Information into Log File) — secret key names, env var names, and resolution paths were logged at debug level in secrets.ts and plugin-loader.ts. When /verbose is enabled, these logs expose the secret topology to all log consumers.

Changes

src/sdk/secrets.ts

  • Debug logs no longer include key names or env var names
    • Before: Secret "API_KEY" resolved from env var MYPLUGIN_API_KEY
    • After: Secret resolved for myplugin
  • require() error message no longer includes the key name
    • Before: Missing required secret "MISSING_KEY"
    • After: Missing required secret for plugin "myplugin"

src/agent/tools/plugin-loader.ts

  • Missing-secrets warning now shows a count instead of listing key names
    • Plugin "myplugin" has 2 missing required secret(s). Set via: /plugin set myplugin
  • Individual key names logged only at debug level (requires /verbose)
  • Detail hint added when not in verbose mode: (enable /verbose for details)

src/sdk/tests/secrets.test.ts

  • Updated assertions to verify key names and env var names are NOT present in debug logs
  • Updated require() error message assertions to check key name is excluded

Security Impact

  • Prevents secret topology leakage via debug logs (log aggregation, Telegram group chats)
  • Key names no longer appear in error messages thrown by require()
  • Missing-secrets warnings no longer enumerate secret names at warn level

Closes #16

🤖 Generated with Claude Code

…issue #16)

Prevents CWE-532 — secret key names, env var names, and resolution paths
are no longer logged at debug level. Missing-secrets warnings now show
a count instead of listing individual key names, gated behind /verbose.
@labtgbot
labtgbot merged commit bffc2b6 into main Jun 15, 2026
17 checks passed
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.

[MEDIUM][CWE-532] Debug logging in secrets.ts leaks secret key names and resolution paths

2 participants