In affected versions, OpenClaw's optional @openclaw/voice-call plugin Telnyx webhook handler could accept unsigned inbound webhook requests when telnyx.publicKey was not configured, allowing unauthenticated callers to forge Telnyx events.
This only impacts deployments where the Voice Call plugin is installed, enabled, and the webhook endpoint is reachable from the attacker (for example, publicly exposed via a tunnel/proxy).
openclaw (npm)<= 2026.2.13>= 2026.2.14 (planned)Telnyx webhooks are expected to be authenticated via Ed25519 signature verification.
In affected versions, TelnyxProvider.verifyWebhook() could effectively fail open when no Telnyx public key was configured, allowing arbitrary HTTP POST requests to the voice-call webhook endpoint to be treated as legitimate Telnyx events.
The fix makes Telnyx webhook verification fail closed by default and requires telnyx.publicKey (or TELNYX_PUBLIC_KEY) to be configured.
A signature verification bypass exists only for local development via skipSignatureVerification: true, which is off by default, emits a loud startup warning, and should not be used in production.
This requirement is documented in the Voice Call plugin docs.
29b587e73cbdc941caec573facd16e87d52f007bf47584fec (centralized verification helper + stronger tests)plugins.entries.voice-call.config.telnyx.publicKey (or TELNYX_PUBLIC_KEY) to enable signature verification.skipSignatureVerification: true.Thanks @p80n-sec for reporting.
{
"cwe_ids": [
"CWE-306"
],
"github_reviewed": true,
"github_reviewed_at": "2026-02-17T21:40:46Z",
"nvd_published_at": "2026-02-19T23:16:24Z",
"severity": "HIGH"
}