{"schemaVersion":3,"id":"CVE-2026-32261","aliases":[],"status":"published","duplicateOf":null,"title":null,"description":"Webhooks for Craft CMS plugin adds the ability to manage “webhooks” in Craft CMS, which will send GET or POST requests when certain events occur. From version 3.0.0 to before version 3.2.0, the Webhooks plugin renders user-supplied template content through Twig’s renderString() function without sandbox protection. This allows an authenticated user with access to the Craft control panel and permissions to access the Webhooks plugin to inject Twig template code that calls arbitrary PHP functions. This is possible even if allowAdminChanges is set to false. This issue has been patched in version 3.2.0.","dates":{"published":"2026-03-16T18:50:18.158Z","modified":"2026-03-16T19:27:05.370Z","reserved":null,"kevAdded":[],"kevDue":[]},"cvss":{"headline":{"score":8.5,"severity":"high","version":"4.0","versionLabel":"v4.0","source":"CVE.org","vector":"CVSS:4.0/AV:N/AC:L/AT:N/PR:H/UI:N/VC:H/VI:H/VA:N/SC:N/SI:N/SA:N","computed":false,"selection":"backend-summary"},"metrics":[{"version":"4.0","versionLabel":"v4.0","source":"CVE.org","score":8.5,"severity":"high","vector":"CVSS:4.0/AV:N/AC:L/AT:N/PR:H/UI:N/VC:H/VI:H/VA:N/SC:N/SI:N/SA:N","exploitability":null,"impact":null,"computed":false},{"version":"4.0","versionLabel":"v4.0","source":"NVD","score":8.5,"severity":"high","vector":"CVSS:4.0/AV:N/AC:L/AT:N/PR:H/UI:N/VC:H/VI:H/VA:N/SC:N/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X","exploitability":null,"impact":null,"computed":false}]},"epss":{"probability":0.00458,"percentile":0.38697,"severity":"low","asOf":"2026-10-21T00:00:00.000Z","change":{"pp":0.07599999999999998,"baselineDate":"2026-09-21T00:00:00.000Z","baselineScore":0.00382},"history":[{"date":"2026-09-14T00:00:00.000Z","score":0.00382,"percentile":null},{"date":"2026-09-15T00:00:00.000Z","score":0.00382,"percentile":null},{"date":"2026-09-16T00:00:00.000Z","score":0.00382,"percentile":null},{"date":"2026-09-17T00:00:00.000Z","score":0.00382,"percentile":null},{"date":"2026-09-18T00:00:00.000Z","score":0.00382,"percentile":null},{"date":"2026-09-19T00:00:00.000Z","score":0.00382,"percentile":null},{"date":"2026-09-20T00:00:00.000Z","score":0.00382,"percentile":null},{"date":"2026-09-21T00:00:00.000Z","score":0.00382,"percentile":null},{"date":"2026-09-22T00:00:00.000Z","score":0.00382,"percentile":null},{"date":"2026-09-23T00:00:00.000Z","score":0.00382,"percentile":null},{"date":"2026-09-24T00:00:00.000Z","score":0.00441,"percentile":null},{"date":"2026-09-25T00:00:00.000Z","score":0.00441,"percentile":null},{"date":"2026-09-26T00:00:00.000Z","score":0.00441,"percentile":null},{"date":"2026-09-27T00:00:00.000Z","score":0.00441,"percentile":null},{"date":"2026-09-28T00:00:00.000Z","score":0.00441,"percentile":null},{"date":"2026-09-29T00:00:00.000Z","score":0.00441,"percentile":null},{"date":"2026-09-30T00:00:00.000Z","score":0.00441,"percentile":null},{"date":"2026-10-01T00:00:00.000Z","score":0.00441,"percentile":null},{"date":"2026-10-02T00:00:00.000Z","score":0.00441,"percentile":null},{"date":"2026-10-03T00:00:00.000Z","score":0.00441,"percentile":null},{"date":"2026-10-04T00:00:00.000Z","score":0.00441,"percentile":null},{"date":"2026-10-05T00:00:00.000Z","score":0.00441,"percentile":null},{"date":"2026-10-06T00:00:00.000Z","score":0.00441,"percentile":null},{"date":"2026-10-07T00:00:00.000Z","score":0.00441,"percentile":null},{"date":"2026-10-08T00:00:00.000Z","score":0.00441,"percentile":null},{"date":"2026-10-09T00:00:00.000Z","score":0.00441,"percentile":null},{"date":"2026-10-10T00:00:00.000Z","score":0.00441,"percentile":null},{"date":"2026-10-11T00:00:00.000Z","score":0.00441,"percentile":null},{"date":"2026-10-12T00:00:00.000Z","score":0.00441,"percentile":null},{"date":"2026-10-13T00:00:00.000Z","score":0.00458,"percentile":null},{"date":"2026-10-14T00:00:00.000Z","score":0.00458,"percentile":null},{"date":"2026-10-15T00:00:00.000Z","score":0.00458,"percentile":null},{"date":"2026-10-16T00:00:00.000Z","score":0.00458,"percentile":null},{"date":"2026-10-17T00:00:00.000Z","score":0.00458,"percentile":null},{"date":"2026-10-18T00:00:00.000Z","score":0.00458,"percentile":null},{"date":"2026-10-19T00:00:00.000Z","score":0.00458,"percentile":null},{"date":"2026-10-20T00:00:00.000Z","score":0.00458,"percentile":null},{"date":"2026-10-21T00:00:00.000Z","score":0.00458,"percentile":0.38697}],"last30":[{"date":"2026-09-21T00:00:00.000Z","score":0.00382,"percentile":null},{"date":"2026-09-22T00:00:00.000Z","score":0.00382,"percentile":null},{"date":"2026-09-23T00:00:00.000Z","score":0.00382,"percentile":null},{"date":"2026-09-24T00:00:00.000Z","score":0.00441,"percentile":null},{"date":"2026-09-25T00:00:00.000Z","score":0.00441,"percentile":null},{"date":"2026-09-26T00:00:00.000Z","score":0.00441,"percentile":null},{"date":"2026-09-27T00:00:00.000Z","score":0.00441,"percentile":null},{"date":"2026-09-28T00:00:00.000Z","score":0.00441,"percentile":null},{"date":"2026-09-29T00:00:00.000Z","score":0.00441,"percentile":null},{"date":"2026-09-30T00:00:00.000Z","score":0.00441,"percentile":null},{"date":"2026-10-01T00:00:00.000Z","score":0.00441,"percentile":null},{"date":"2026-10-02T00:00:00.000Z","score":0.00441,"percentile":null},{"date":"2026-10-03T00:00:00.000Z","score":0.00441,"percentile":null},{"date":"2026-10-04T00:00:00.000Z","score":0.00441,"percentile":null},{"date":"2026-10-05T00:00:00.000Z","score":0.00441,"percentile":null},{"date":"2026-10-06T00:00:00.000Z","score":0.00441,"percentile":null},{"date":"2026-10-07T00:00:00.000Z","score":0.00441,"percentile":null},{"date":"2026-10-08T00:00:00.000Z","score":0.00441,"percentile":null},{"date":"2026-10-09T00:00:00.000Z","score":0.00441,"percentile":null},{"date":"2026-10-10T00:00:00.000Z","score":0.00441,"percentile":null},{"date":"2026-10-11T00:00:00.000Z","score":0.00441,"percentile":null},{"date":"2026-10-12T00:00:00.000Z","score":0.00441,"percentile":null},{"date":"2026-10-13T00:00:00.000Z","score":0.00458,"percentile":null},{"date":"2026-10-14T00:00:00.000Z","score":0.00458,"percentile":null},{"date":"2026-10-15T00:00:00.000Z","score":0.00458,"percentile":null},{"date":"2026-10-16T00:00:00.000Z","score":0.00458,"percentile":null},{"date":"2026-10-17T00:00:00.000Z","score":0.00458,"percentile":null},{"date":"2026-10-18T00:00:00.000Z","score":0.00458,"percentile":null},{"date":"2026-10-19T00:00:00.000Z","score":0.00458,"percentile":null},{"date":"2026-10-20T00:00:00.000Z","score":0.00458,"percentile":null},{"date":"2026-10-21T00:00:00.000Z","score":0.00458,"percentile":0.38697}]},"kev":{"state":"not-listed","entries":[],"listedCount":0,"totalCatalogs":3,"catalogs":[{"source":"cisa","label":"CISA","listed":false,"entry":null},{"source":"enisa","label":"ENISA","listed":false,"entry":null},{"source":"circl","label":"CIRCL","listed":false,"entry":null}]},"ransomware":{"state":"none-recorded","sources":[]},"exploits":[],"exploitCount":0,"weaknesses":[{"id":"CWE-1336","name":"Improper Neutralization of Special Elements Used in a Template Engine","description":"The product uses a template engine to insert or process externally-influenced input, but it does not neutralize or incorrectly neutralizes special elements or syntax that can be interpreted as template expressions or other code directives when processed by the engine.","type":"weakness","status":"Incomplete","abstraction":"Base","likelihoodOfExploit":null,"url":"https://cwe.mitre.org/data/definitions/1336.html"}],"affected":[{"vendor":"craftcms","product":"webhooks","name":"webhooks","label":"webhooks","ecosystem":null,"cpePart":"a","purl":null,"purlType":null,"versions":[{"text":"≥ 3.0.0, < 3.2.0","noFixRecorded":false,"fixedIn":null}],"versionsText":"≥ 3.0.0, < 3.2.0","eol":null,"hubHref":"/vendor/craftcms/webhooks"}],"affectedCount":1,"eol":{"hasEol":false,"count":0},"references":[{"url":"https://github.com/craftcms/webhooks/security/advisories/GHSA-8wg7-wm29-2rvg","label":"github.com/craftcms/webhooks/security/advisories/GHSA-8wg7-wm29-2rvg","hostname":"github.com","tags":["X Refsource CONFIRM"]},{"url":"https://github.com/craftcms/webhooks/commit/88344991a68b07145567c46dfd0ae3328c521f62","label":"github.com/craftcms/webhooks/commit/88344991a68b07145567c46dfd0ae3328c521f62","hostname":"github.com","tags":["X Refsource MISC"]}],"lineage":{"upstream":[],"downstream":[],"duplicates":[],"related":[]},"timeline":[{"kind":"published","date":"2026-03-16T18:50:18.158Z","label":"Published","detail":"Vulnerability first disclosed.","source":null},{"kind":"modified","date":"2026-03-16T19:27:05.370Z","label":"Last modified","detail":"Vulnerability information updated.","source":null}],"risk":{"score":34,"level":"medium","profile":"Default","thresholds":{"critical":75,"high":50,"medium":25,"low":10}},"meta":{"dataAsOf":"2026-10-21T23:15:48.936Z","stale":false,"partial":false}}