Skip to content

🛡️ Sentinel: [security improvement] Redact sensitive credentials and keys in error-reporting utility - #131

Draft
google-labs-jules[bot] wants to merge 1 commit into
mainfrom
sentinel/error-sanitization-12971813671919977372
Draft

🛡️ Sentinel: [security improvement] Redact sensitive credentials and keys in error-reporting utility#131
google-labs-jules[bot] wants to merge 1 commit into
mainfrom
sentinel/error-sanitization-12971813671919977372

Conversation

@google-labs-jules

Copy link
Copy Markdown
Contributor

🛡️ Sentinel: [security improvement] Redact sensitive credentials and keys in error-reporting utility

💡 Vulnerability/Risk:

Without sanitization, raw errors or context metadata can leak sensitive credentials (such as Vercel Blob read/write tokens, API keys, authorization headers, or passwords) into local console logs or external error logging solutions (like Sentry or Axiom).

🔧 Fix:

  • Added a robust, recursive sanitize helper in app/lib/error-reporting.ts that strips Vercel Blob tokens matching /vercel_blob_rw_[a-zA-Z0-9_-]+/gi and redacts values associated with sensitive keys (e.g., key, secret, password, token, authorization).
  • Safely clones Error messages/stacks, preserves built-in instances like Date/RegExp, and prevents circular reference stack overflows using a WeakSet.
  • Consolidated error-reporting behavior so both errors and context are sanitized prior to logging.

✅ Verification:

  • Added comprehensive unit tests in tests/unit/lib/error-reporting.test.ts checking string redaction, object key redaction, Error object cloning/scrubbing, built-in object retention, and circular reference handling.
  • Ran lint, typecheck, and test suites successfully. All checks passed with 100% success.

PR created automatically by Jules for task 12971813671919977372 started by @amrabed

…keys in error-reporting utility

- Implemented recursive `sanitize` function in `app/lib/error-reporting.ts` to redact Vercel Blob tokens (matching `vercel_blob_rw_[a-zA-Z0-9_-]+`) and sensitive properties (e.g. `password`, `secret`, `token`, `key`, `authorization`, `cookie`, `credential`, `apikey`).
- Handled built-in objects directly (Date/RegExp) and avoided circular reference stack overflows using a WeakSet.
- Added comprehensive unit tests in `tests/unit/lib/error-reporting.test.ts`.
@google-labs-jules

Copy link
Copy Markdown
Contributor Author

👋 Jules, reporting for duty! I'm here to lend a hand with this pull request.

When you start a review, I'll add a 👀 emoji to each comment to let you know I've read it. I'll focus on feedback directed at me and will do my best to stay out of conversations between you and other bots or reviewers to keep the noise down.

I'll push a commit with your requested changes shortly after. Please note there might be a delay between these steps, but rest assured I'm on the job!

For more direct control, you can switch me to Reactive Mode. When this mode is on, I will only act on comments where you specifically mention me with @jules. You can find this option in the Pull Request section of your global Jules UI settings. You can always switch back!

New to Jules? Learn more at jules.google/docs.


For security, I will only act on instructions from the user who triggered this task.

@vercel

vercel Bot commented Aug 8, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
typescript Ready Ready Preview Aug 8, 2026 4:40am

@sonarqubecloud

sonarqubecloud Bot commented Aug 8, 2026

Copy link
Copy Markdown

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.

0 participants