CVE-2026-119036
Full vulnerability record from the local CVENow database.
Description
Business::GoCardless versions before 1.01 for Perl allow memory exhaustion by flattening legacy webhook payloads before checking their signature. A webhook body with a top-level "payload" key is verified as a legacy webhook. To rebuild the signed string, the payload is flattened into one key and value pair per leaf, each key carrying the full path to that leaf, and the pairs are then encoded, sorted and joined. A long key holding a long array costs memory proportional to the key length times the array length. A remote attacker can exhaust memory in the process receiving webhooks with a single request that carries no valid signature.
Severity
Not scored
CVSS score
Not available
Vulnerability status
Received
Source identifier
9b29abf9-4ab0-4765-b253-1875cd9b441e
Published
2026-10-30 13:18:32.553000
Last modified
2026-10-30 13:18:32.553000
View original CVE JSON
{
"id": "CVE-2026-119036",
"sourceIdentifier": "9b29abf9-4ab0-4765-b253-1875cd9b441e",
"published": "2026-10-30T13:18:32.553",
"lastModified": "2026-10-30T13:18:32.553",
"vulnStatus": "Received",
"cveTags": [],
"descriptions": [
{
"lang": "en",
"value": "Business::GoCardless versions before 1.01 for Perl allow memory exhaustion by flattening legacy webhook payloads before checking their signature.\n\nA webhook body with a top-level \"payload\" key is verified as a legacy webhook. To rebuild the signed string, the payload is flattened into one key and value pair per leaf, each key carrying the full path to that leaf, and the pairs are then encoded, sorted and joined. A long key holding a long array costs memory proportional to the key length times the array length.\n\nA remote attacker can exhaust memory in the process receiving webhooks with a single request that carries no valid signature."
}
],
"affected": [
{
"source": "9b29abf9-4ab0-4765-b253-1875cd9b441e",
"affectedData": [
{
"defaultStatus": "unaffected",
"collectionURL": "https://cpan.org/modules",
"packageName": "Business-GoCardless",
"modules": [
"Business::GoCardless"
],
"programFiles": [
"lib/Business/GoCardless/Utils.pm",
"lib/Business/GoCardless/Webhook.pm"
],
"programRoutines": [
{
"name": "Business::GoCardless::Pro::webhook"
},
{
"name": "Business::GoCardless::Utils::signature_valid"
}
],
"repo": "https://github.com/payprop/business-gocardless",
"packageURL": "pkg:cpan/Business-GoCardless",
"versions": [
{
"version": "0",
"lessThan": "1.01",
"versionType": "custom",
"status": "affected"
}
]
}
]
}
],
"metrics": {},
"weaknesses": [
{
"source": "9b29abf9-4ab0-4765-b253-1875cd9b441e",
"type": "Secondary",
"description": [
{
"lang": "en",
"value": "CWE-770"
}
]
}
],
"references": [
{
"url": "https://metacpan.org/release/LEEJO/Business-GoCardless-1.01/changes",
"source": "9b29abf9-4ab0-4765-b253-1875cd9b441e"
}
]
}