Memory amplification in Vulnerability-Lookup webhook templates
Key facts
- Attack vector
- Network
- Privileges required
- Low
- User interaction
- None
- Attack complexity
- Low
- Attack requirements
- None
- Impact type
- Denial of service
- Confidentiality · integrity · availability
- None · None · Low
- Fix status
- Fixed
Attack profile from CVSS 4.0 · CNA. Fix status from CNA. Impact type from CWE-674.
Summary
Vulnerability-Lookup from 5.5.1 before 6.4.1 passes webhook payload template format specifiers unchanged to Python string formatting, which builds padded output before checking its size (CWE-770). A template of a few dozen bytes can make the server allocate about 1 GB when the notification form test-renders it on save, and repeated placeholders multiply the cost. Any account holder can do this, since the default configuration lets anyone create an account after e-mail confirmation. Exhausting memory of web workers or the notification daemon causes a denial of service.
Written with Claude Haiku 5.5 from the sources below · 2026-11-06
Description from the CNA
In Vulnerability-Lookup 5.5.1 up to but not including 6.4.1, a signed-in user could make the server allocate memory far out of proportion to their input through a webhook notification's payload template. Each placeholder's format specifier was passed unchanged to Python's string formatting, which builds the padded result before its size can be checked. A template of a few dozen bytes, such as {"text": "{title:>999999999}"}, therefore produced a string of about 1 GB when the notification form test-rendered it on save, and repeating such fields multiplied the cost. Templates that passed the save check could also repeat placeholders such as {text} thousands of times; the notification daemon rebuilt those on every webhook delivery. Deeply nested templates raised an unhandled recursion error (HTTP 500). An attacker needs only an account, which the default configuration lets anyone create after e-mail confirmation. They could exhaust the memory of web workers or the notification daemon, causing a denial of service. Version 6.4.1 caps every number in a format specifier at 256, limits a rendered template to 1,000,000 characters both on save and at delivery, and rejects templates nested deeper than 32 levels.
Why it matters now
SSVC decision points
Not available: CISA has not published SSVC decision points for this record.
Affected products
| Vendor | Product | Affected versions | Fixed in | Status | Source |
|---|---|---|---|---|---|
| vulnerability-lookup | vulnerability-lookup | 5.5.1 to before 6.4.1 | 6.4.1 | Patch available | CNA |
- vulnerability-lookup Vendorvulnerability-lookup Affected 5.5.1 to before 6.4.1 Fixed in 6.4.1 Patch available CNA
Remediation
Upgrade Vulnerability-Lookup to version 6.4.1, which caps numbers in format specifiers at 256, limits rendered templates to 1,000,000 characters and rejects templates nested deeper than 32 levels.
Written with Claude Haiku 5.5 from the sources below · 2026-11-06
- Fix · CNA vulnerability-lookup (vulnerability-lookup) Fixed in 6.4.1
Timeline
- 2026-11-06 Threatist record created from CVE-2026-123660
- 2026-11-06 Alias added: GHSA-fjqr-7p2w-j9wx
References
More vulnerability-lookup vulnerabilities
- TI-2026-51549 Reusable Account Activation and Recovery Tokens Allow Repeated Account Takeover in vulnerability-lookup CVSS 4.0HIGH 8.8
- TI-2026-50987 Server-side request forgery in vulnerability-lookup CVSS 4.0MEDIUM 6.9
- TI-2026-51493 Stored Cross-Site Scripting (XSS) via Unescaped CNA Reference Tags in vulnerability-lookup CVSS 4.0MEDIUM 6.1
- TI-2026-65074 Vulnerability-Lookup - Race Condition in Account Recovery Token Consumption Allows Password Takeover CVSS 4.0MEDIUM 6.3
- TI-2026-51523 Authorization Bypass in SSE Pub/Sub Allows Unconfirmed Accounts to Access Stream Events in vulnerability-lookup CVSS 4.0MEDIUM 5.3
- TI-2026-51550 Server-side request forgery in vulnerability-lookup CVSS 4.0MEDIUM 5.1
Sources
- CVE-2026-123660 · CVE Program
- CVE-2026-123660 · NVD
- FIRST EPSS
- GHSA-fjqr-7p2w-j9wx · GitHub Advisory Database · CC BY 4.0
This product uses the NVD API but is not endorsed or certified by the NVD. Sources and licences