← Back to PRs

#10239: Security: Add production guard for skipSignatureVerification

by StreetJammer open 2026-02-06 07:42 View on GitHub →
channel: voice-call stale
## Summary The `skipSignatureVerification` configuration option in the voice-call extension completely disables webhook signature verification for Twilio and Plivo providers without any runtime protection against accidental use in production environments. ## Security Impact | Metric | Value | |--------|-------| | **CVSS Score** | 8.6 / 10.0 | | **Severity** | High | | **CWE** | CWE-347 (Improper Verification of Cryptographic Signature) | ## Attack Vector An attacker could send forged webhook requests if a production deployment accidentally has `skipSignatureVerification: true` configured. Without signature verification, there's no way to confirm webhooks actually came from Twilio/Plivo. ## Fix Added guards in `runtime.ts`: 1. **Production Error**: Throws an error if `NODE_ENV=production` and `skipSignatureVerification=true` 2. **Development Warning**: Logs a warning when verification is disabled in non-production environments ```typescript if (config.skipSignatureVerification) { if (process.env.NODE_ENV === "production") { throw new Error("skipSignatureVerification cannot be enabled in production..."); } logger?.warn("[voice-call] WARNING: skipSignatureVerification is enabled..."); } ``` Fixes #10228 Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com> <!-- greptile_comment --> <h2>Greptile Overview</h2> <h3>Greptile Summary</h3> - Adds a runtime guard in `extensions/voice-call/src/runtime.ts` to prevent `skipSignatureVerification: true` when `NODE_ENV === "production"`. - Emits a warning log when signature verification is disabled in non-production environments. - Plumbs the existing runtime logger into provider resolution so the warning is emitted consistently during runtime initialization. <h3>Confidence Score: 5/5</h3> - This PR is safe to merge with minimal risk. - Change is small and isolated to the voice-call runtime initialization path: it adds a hard fail in production when an explicitly insecure flag is enabled and logs a warning otherwise. No behavior changes occur unless `skipSignatureVerification` is set, and the new logger parameter is passed from the existing runtime logger. - extensions/voice-call/src/runtime.ts <!-- greptile_other_comments_section --> <sub>(4/5) You can add custom instructions or style guidelines for the agent [here](https://app.greptile.com/review/github)!</sub> **Context used:** - Context from `dashboard` - CLAUDE.md ([source](https://app.greptile.com/review/custom-context?memory=fd949e91-5c3a-4ab5-90a1-cbe184fd6ce8)) - Context from `dashboard` - AGENTS.md ([source](https://app.greptile.com/review/custom-context?memory=0d0c8278-ef8e-4d6c-ab21-f5527e322f13)) <!-- /greptile_comment -->

Most Similar PRs