Medium

Symfony: Twilio SMS Notifier allows unauthenticated webhook injection due to missing X-Twilio-Signature verification

  • Disclosed: 29.05.2026
  • Updated: 11.10.2026 10:22

Description

The Twilio SMS notifier bridge ships a webhook request parser used to authenticate and decode the status callbacks Twilio POSTs to an application's webhook endpoint. Its doParse(Request $request, #[\SensitiveParameter] string $secret) method receives the configured webhook secret but never reads it; it decodes and returns the payload unconditionally, ignoring the X-Twilio-Signature HMAC header Twilio sends with each request.

As a result, an application that wires up the Twilio webhook endpoint accepts any POST to that URL, even when a signing secret is configured (the recommended setup). An attacker who knows the endpoint exists can submit forged status payloads, fake delivered / failed / undelivered events, leading to delivery-metrics fraud, downstream automation triggers, etc.

Resolution

TwilioRequestParser::doParse() now requires and verifies the X-Twilio-Signature header (HMAC-SHA1 over the full request URL concatenated with the alphabetically-sorted POST parameters, base64-encoded, keyed with the Twilio account auth token) before further processing, using a constant-time comparison.

When no secret is configured the behaviour is unchanged: signature verification remains opt-in, but it is now actually enforced once opted in.

Applications behind a TLS-terminating reverse proxy must configure framework.trusted_proxies and framework.trusted_headers so that Request::getUri() returns the public URL Twilio signed.

The patch for this issue is available here for branch 6.4.

Credits

Symfony would like to thank Himanshu Anand for reporting the issue and Nicolas Grekas for providing the fix.

Affected software

Click a technology to see all vulnerabilities affecting it.

PlatformPackageVulnerable versionsFixed in
Composer package symfony/symfony >= 6.4.0, < 6.4.40, >= 7.0.0, < 7.4.12, >= 8.0.0, < 8.0.12 6.4.40, 7.4.12, 8.0.12
Composer package symfony/twilio-notifier >= 6.4.0, < 6.4.40, >= 7.0.0, < 7.4.12, >= 8.0.0, < 8.0.12 6.4.40, 7.4.12, 8.0.12

References

CVSS score -
CVSS vector
CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:N/VI:H/VA:N/SC:N/SI:N/SA:N/E:U
Weakness (CWE)
CWE-306, CWE-347
Platform
Composer
Package
symfony/symfony, symfony/twilio-notifier
Disclosed
29.05.2026
Updated
11.10.2026 10:22

Sources and licenses

OSV / GitHub Advisory Database - GHSA-55rj-x2vc-4whq - CC BY 4.0

Vulnerability history: symfony/symfony

All published vulnerabilities of this package (Composer package), newest first. Shows whether this is a one-off slip or a package that needs watching.

All (100) in the archive
Total entries
100
First → latest
11.2019 06.2026
Without a fix
0
Exploited in attacks
0

Severity breakdown

  • Critical 8
  • High 28
  • Medium 51
  • Low 13

Disclosures per year

  1. 2019: 6
  2. 2020: 7
  3. 2021: 6
  4. 2022: 29
  5. 2023: 5
  6. 2024: 16
  7. 2025: 1
  8. 2026: 30
Severity:
  1. High CVE-2026-48489 < 5.4.53, >= 6.0.0, < 6.4.41, >= 7.0.0, < 7.4.13, >= 8.0.0, < 8.0.13 5.4.53, 6.4.41, 7.4.13, 8.0.13
  2. Symfony: Twilio SMS Notifier allows unauthenticated webhook injection due to missing X-Twilio-Signature verification this entry
    Medium CVE-2026-47212 >= 6.4.0, < 6.4.40, >= 7.0.0, < 7.4.12, >= 8.0.0, < 8.0.12 6.4.40, 7.4.12, 8.0.12
  3. High CVE-2026-45077 < 5.4.52, >= 6.0.0, < 6.4.40, >= 7.0.0, < 7.4.12, >= 8.0.0, < 8.0.12 5.4.52, 6.4.40, 7.4.12, 8.0.12
  4. High CVE-2026-45067 < 5.4.52, >= 6.0.0, < 6.4.40, >= 7.0.0, < 7.4.12, >= 8.0.0, < 8.0.12 5.4.52, 6.4.40, 7.4.12, 8.0.12
  5. High CVE-2026-45063 < 5.4.52, >= 6.0.0-BETA1, < 6.4.40, >= 7.0.0-BETA1, < 7.4.12, >= 8.0.0-BETA1, < 8.0.12 5.4.52, 6.4.40, 7.4.12, 8.0.12
  6. High · 7.3 CVE-2025-64500 >= 2.0.0, < 5.4.50, >= 6.0.0, < 6.4.29, >= 7.0.0, < 7.3.7 5.4.50, 6.4.29, 7.3.7
  7. High · 8.4 CVE-2024-51736 < 5.4.46, >= 6.0.0, < 6.4.14, >= 7.0.0, < 7.1.7 5.4.46, 6.4.14, 7.1.7
  8. High · 8.1 CVE-2014-6072 >= 2.0.0, < 2.3.19, >= 2.4.0, < 2.4.9, >= 2.5.0, < 2.5.4 2.3.19, 2.4.9, 2.5.4
  9. High · 7.5 ghsa-q2gc-gg3x-7942 >= 2.0.0, < 2.0.17 2.0.17
  10. Critical · 9.8 ghsa-mmcv-fvq8-r9x3 >= 2.0.0, < 2.0.11 2.0.11
  11. High · 7.5 CVE-2014-5245 >= 2.0.0, < 2.3.19, >= 2.4.0, < 2.4.9, >= 2.5.0, < 2.5.4 2.3.19, 2.4.9, 2.5.4
  12. High · 7.5 CVE-2014-5244 >= 2.0.0, < 2.3.19, >= 2.4.0, < 2.4.9, >= 2.5.0, < 2.5.4 2.3.19, 2.4.9, 2.5.4
  13. High · 7.5 CVE-2014-4931 >= 2.0.0, < 2.3.19, >= 2.4.0, < 2.4.9, >= 2.5.0, < 2.5.4 2.3.19, 2.4.9, 2.5.4
  14. Critical · 9.8 CVE-2017-11365 >= 2.7.30, < 2.7.32, >= 2.8.23, < 2.8.25, >= 3.2.10, < 3.2.12, >= 3.3.3, < 3.3.5 2.7.32, 2.8.25, 3.2.12, 3.3.5
  15. High · 7.5 CVE-2016-4423 >= 2.3.0, < 2.3.41, >= 2.4.0, < 2.7.13, >= 2.8.0, < 2.8.6, >= 3.0.0, < 3.0.6 2.3.41, 2.7.13, 2.8.6, 3.0.6
  16. High · 7.5 CVE-2016-1902 >= 2.3.0, < 2.3.37, >= 2.4.0, < 2.6.13, >= 2.7.0, < 2.7.9 2.3.37, 2.6.13, 2.7.9
  17. High CVE-2015-8125 >= 2.3.0, < 2.3.35, >= 2.7.0, < 2.7.7, >= 2.4.0, < 2.6.12 2.3.35, 2.7.7, 2.6.12
  18. High CVE-2013-1348 >= 2.0.0, < 2.0.22 2.0.22
  19. High CVE-2013-1397 >= 2.2.0-BETA1, < 2.2.0-BETA2, >= 2.0.0, < 2.0.22, >= 2.1.0, < 2.1.7 2.2.0-BETA2, 2.0.22, 2.1.7
  20. Critical · 9.8 CVE-2018-11407 >= 2.8.0, < 2.8.37, >= 3.0.0, < 3.3.17, >= 3.4.0, < 3.4.7, >= 4.0.0, < 4.0.7 2.8.37, 3.3.17, 3.4.7, 4.0.7
  21. Critical · 9.8 CVE-2016-2403 >= 2.8.0, < 2.8.6, >= 3.0.0, < 3.0.6 2.8.6, 3.0.6
  22. High · 7.2 CVE-2018-14774 >= 2.7.0, < 2.7.49, >= 2.8.0, < 2.8.44, >= 3.3.0, < 3.3.18, >= 3.4.0, < 3.4.14, >= 4.0.0, < 4.0.14, >= 4.1.0, < 4.1.3 2.7.49, 2.8.44, 3.3.18, 3.4.14, 4.0.14, 4.1.3
  23. High · 8.1 CVE-2018-11385 >= 2.7.0, < 2.7.48, >= 2.8.0, < 2.8.41, >= 3.0.0, < 3.3.17, >= 3.4.0, < 3.4.11, >= 4.0.0, < 4.0.11 2.7.48, 2.8.41, 3.3.17, 3.4.11, 4.0.11
  24. High · 7.5 CVE-2017-16654 >= 2.7.0, < 2.7.38, >= 2.8.0, < 2.8.31, >= 3.0.0, < 3.2.14, >= 3.3.0, < 3.3.13 2.7.38, 2.8.31, 3.2.14, 3.3.13
  25. High · 8.8 CVE-2018-11406 >= 2.7.0, < 2.7.48, >= 2.8.0, < 2.8.41, >= 3.0.0, < 3.3.17, >= 3.4.0, < 3.4.11, >= 4.0.0, < 4.0.11 2.7.48, 2.8.41, 3.3.17, 3.4.11, 4.0.11
  26. High · 8.1 CVE-2013-4751 >= 2.0.0, < 2.0.24, >= 2.1.0, < 2.1.12, >= 2.2.0, < 2.2.5, >= 2.3.0, < 2.3.3 2.0.24, 2.1.12, 2.2.5, 2.3.3
  27. High · 8.1 CVE-2019-18887 >= 2.2.0, < 2.8.52, >= 3.0.0, < 3.4.35, >= 4.0.0, < 4.2.12, >= 4.3.0, < 4.3.8 2.8.52, 3.4.35, 4.2.12, 4.3.8
  28. High · 8.0 CVE-2020-15094 >= 4.3.0, < 4.4.13, >= 5.0.0, < 5.1.5 4.4.13, 5.1.5
  29. High · 7.6 CVE-2020-5275 >= 4.4.0, < 4.4.7, >= 5.0.0, < 5.0.7 4.4.7, 5.0.7
  30. High · 7.5 CVE-2019-10911 >= 2.7.0, < 2.7.51, >= 2.8.0, < 2.8.50, >= 3.0.0, < 3.4.26, >= 4.0.0, < 4.1.12, >= 4.2.0, < 4.2.7 2.7.51, 2.8.50, 3.4.26, 4.1.12, 4.2.7
  31. High · 7.1 CVE-2019-10912 >= 2.8.0, < 2.8.50, >= 3.0.0, < 3.4.26, >= 4.0.0, < 4.1.12, >= 4.2.0, < 4.2.7 2.8.50, 3.4.26, 4.1.12, 4.2.7
  32. Critical · 9.8 CVE-2019-11325 >= 4.2.0, < 4.2.12, >= 4.3.0, < 4.3.8 4.2.12, 4.3.8
  33. Critical · 9.8 CVE-2019-10913 >= 2.7.0, < 2.7.51, >= 2.8.0, < 2.8.50, >= 3.0.0, < 3.4.26, >= 4.0.0, < 4.1.12, >= 4.2.0, < 4.2.7 2.7.51, 2.8.50, 3.4.26, 4.1.12, 4.2.7
  34. High · 7.5 CVE-2019-18888 >= 2.0.0, < 2.8.52, >= 3.0.0, < 3.4.35, >= 4.0.0, < 4.2.12, >= 4.3.0, < 4.3.8 2.8.52, 3.4.35, 4.2.12, 4.3.8
  35. Critical · 9.8 CVE-2019-18889 >= 3.1.0, < 3.4.35, >= 4.0.0, < 4.2.12, >= 4.3.0, < 4.3.8 3.4.35, 4.2.12, 4.3.8
  36. Critical · 9.8 CVE-2019-10910 >= 2.7.0, < 2.7.51, >= 2.8.0, < 2.8.50, >= 3.0.0, < 3.4.26, >= 4.0.0, < 4.1.12, >= 4.2.0, < 4.2.7 2.7.51, 2.8.50, 3.4.26, 4.1.12, 4.2.7

Know which vulnerabilities affect your application

With the DockRay integration and software inventory enabled, DockRay checks reported component versions against known vulnerabilities and notifies you about confirmed matches. Coverage depends on the supported technology and available advisory data.

Connect your application
DockRay newsletter

Application security in your inbox

Important vulnerabilities, actionable guidance and practical advice for your applications. Choose your technologies and follow what matters to your project.

  • A daily digest of new vulnerabilities, critical ones included.
  • Notifications about important updates.
  • Practical advice on application security and monitoring.

Leave empty to receive updates for every technology.

Free to subscribe. Unsubscribe with one click in any email.