Description
Business::GoCardless versions before 1.01 for Perl accept forged webhooks when a configured webhook secret is undef or empty.

signature_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.

A remote attacker can sign a forged webhook with an empty key and have it accepted as sent by GoCardless.
Published: 2026-10-30
Score: n/a
EPSS: n/a
KEV: No
Impact: Forged Webhook Acceptance
Action: Upgrade
AI Analysis

Impact

Business::GoCardless, a Perl module used to integrate GoCardless payment services, has a flaw in versions earlier than 1.01 that allows it to accept forged webhook notifications when the configured webhook secret is undefined or empty. The module utilizes the configured secret as the HMAC key for signature validation, and it fails to reject an undefined or empty secret; Digest::SHA treats such values as an empty key, which means a request signed with an empty key passes validation. An attacker can therefore create a webhook payload, sign it using an empty key, and send it to a system that relies on Business::GoCardless for payment processing, causing the system to process the request as if it came from GoCardless.

Affected Systems

The affected product is the Business::GoCardless Perl module. Vulnerable versions are all releases before 1.01. Systems using earlier versions with an undefined or empty secret—whether from an unset environment variable or an empty entry in the rotated secrets list—are at risk. Updated versions 1.01 and later include a fix that checks for a defined, non‑empty secret before accepting webhooks.

Risk and Exploitability

The weakness is categorized as CWE-347, reflecting improper validation of application data. Because the attack requires an external webhook source, the vector is remote network traffic, and the exploitability is high if an attacker can deploy a forged payload. The EPSS score is not available, and the vulnerability has not been listed in the CISA KEV catalog, but the lack of a secret is a severe configuration issue that could lead to unauthorized processing.

Generated by OpenCVE AI on October 30, 2026 at 14:58 UTC.

Remediation

Vendor Solution

Upgrade to Business-GoCardless 1.01 or later.


OpenCVE Recommended Actions

  • Upgrade to Business-GoCardless 1.01 or later.
  • Ensure the webhook secret is properly configured and not empty in all environments.
  • Add validation to reject any webhook request when the secret key is missing or empty.

Generated by OpenCVE AI on October 30, 2026 at 14:58 UTC.

Tracking

Sign in to view the affected projects.

Advisories

No advisories yet.

History

Fri, 30 Oct 2026 13:00:00 +0000

Type Values Removed Values Added
Description Business::GoCardless versions before 1.01 for Perl accept forged webhooks when a configured webhook secret is undef or empty. signature_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. A remote attacker can sign a forged webhook with an empty key and have it accepted as sent by GoCardless.
Title Business::GoCardless versions before 1.01 for Perl accept forged webhooks when a configured webhook secret is undef or empty
Weaknesses CWE-347
References

Subscriptions

No data.

cve-icon MITRE

Status: PUBLISHED

Assigner: CPANSec

Published:

Updated: 2026-10-30T12:56:27.922Z

Reserved: 2026-10-29T11:38:31.744Z

Link: CVE-2026-119037

cve-icon Vulnrichment

No data.

cve-icon NVD

Status : Received

Published: 2026-10-30T13:18:32.670

Modified: 2026-10-30T13:18:32.670

Link: CVE-2026-119037

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-10-30T15:00:15Z

Weaknesses
  • CWE-347

    Improper Verification of Cryptographic Signature