{"id":"CVE-2026-119037","state":"PUBLISHED","title":"Business::GoCardless versions before 1.01 for Perl accept forged webhooks when a configured webhook secret is undef or empty","description":"Business::GoCardless versions before 1.01 for Perl accept forged webhooks when a configured webhook secret is undef or empty.\n\nsignature_valid uses each configured secret as the HMAC key, and nothing rejects undef or an empty string, both of which Digest::SHA treats as an empty key. A secret read from an unset environment variable, or an empty entry in a list of rotated secrets, is used as is.\n\nA remote attacker can sign a forged webhook with an empty key and have it accepted as sent by GoCardless.","publishedAt":"2026-10-30T12:56:27.922Z","updatedAt":"2026-10-30T12:56:27.922Z","severity":null,"assigner":"CPANSec","products":["Business-GoCardless"],"affected":[{"packageName":"Business-GoCardless","packageURL":"pkg:cpan/Business-GoCardless","defaultStatus":"unaffected","versions":[{"version":"0","status":"affected","lessThan":"1.01","versionType":"custom"}],"collectionURL":"https://cpan.org/modules","modules":["Business::GoCardless"],"programFiles":["lib/Business/GoCardless/Utils.pm"],"programRoutines":[{"name":"Business::GoCardless::Utils::signature_valid"}],"repo":"https://github.com/payprop/business-gocardless"}],"references":["https://metacpan.org/release/LEEJO/Business-GoCardless-1.01/changes"],"weaknesses":["CWE-347"],"ingestedAt":"2026-10-30T13:04:04.455Z","source":{"repository":"CVEProject/cvelistV5","path":"cves/2026/119xxx/CVE-2026-119037.json","commit":"cb14bf1b43b0c9f05f7f40eae2246263fd430780","baselineCommit":"556c9d3a8cd17e218bb8e452ba7cd619a384ff47"},"raw":{"dataType":"CVE_RECORD","dataVersion":"5.2","cveMetadata":{"cveId":"CVE-2026-119037","state":"PUBLISHED","datePublished":"2026-10-30T12:56:27.922Z","dateUpdated":"2026-10-30T12:56:27.922Z","assignerShortName":"CPANSec","assignerOrgId":"9b29abf9-4ab0-4765-b253-1875cd9b441e","dateReserved":"2026-10-29T11:38:31.744Z"},"containers":{"cna":{"title":"Business::GoCardless versions before 1.01 for Perl accept forged webhooks when a configured webhook secret is undef or empty","descriptions":[{"lang":"en","value":"Business::GoCardless versions before 1.01 for Perl accept forged webhooks when a configured webhook secret is undef or empty.\n\nsignature_valid uses each configured secret as the HMAC key, and nothing rejects undef or an empty string, both of which Digest::SHA treats as an empty key. A secret read from an unset environment variable, or an empty entry in a list of rotated secrets, is used as is.\n\nA remote attacker can sign a forged webhook with an empty key and have it accepted as sent by GoCardless."}],"affected":[{"packageName":"Business-GoCardless","packageURL":"pkg:cpan/Business-GoCardless","defaultStatus":"unaffected","versions":[{"version":"0","status":"affected","lessThan":"1.01","versionType":"custom"}],"collectionURL":"https://cpan.org/modules","modules":["Business::GoCardless"],"programFiles":["lib/Business/GoCardless/Utils.pm"],"programRoutines":[{"name":"Business::GoCardless::Utils::signature_valid"}],"repo":"https://github.com/payprop/business-gocardless"}],"references":[{"url":"https://metacpan.org/release/LEEJO/Business-GoCardless-1.01/changes","tags":["release-notes"]}],"problemTypes":[{"descriptions":[{"cweId":"CWE-347","description":"CWE-347 Improper Verification of Cryptographic Signature","lang":"en","type":"CWE"}]}],"providerMetadata":{"shortName":"CPANSec","orgId":"9b29abf9-4ab0-4765-b253-1875cd9b441e","dateUpdated":"2026-10-30T12:56:27.922Z"},"solutions":[{"lang":"en","value":"Upgrade to Business-GoCardless 1.01 or later."}],"source":{"discovery":"UNKNOWN"},"x_generator":{"engine":"cpansec-cna-tool 0.1"}}}}}