{"cve":"CVE-2026-40887","nvd":{"published":"2026-04-21T20:17:02.397","modified":"2026-10-26T22:10:00.163","status":"Deferred","description":"Vendure is an open-source headless commerce platform. Starting in version 1.7.4 and prior to versions 2.3.4, 3.5.7, and 3.6.2, an unauthenticated SQL injection vulnerability exists in the Vendure Shop API. A user-controlled query string parameter is interpolated directly into a raw SQL expression without parameterization or validation, allowing an attacker to execute arbitrary SQL against the database. This affects all supported database backends (PostgreSQL, MySQL/MariaDB, SQLite). The Admin API is also affected, though exploitation there requires authentication. Versions 2.3.4, 3.5.7, and 3.6.2 contain a patch. For those who are unable to upgrade immediately, Vendure has made a hotfix available that uses `RequestContextService.getLanguageCode` to validate the `languageCode` input at the boundary. This blocks injection payloads before they can reach any query. The hotfix replaces the existing `getLanguageCode` method in `packages/core/src/service/helpers/request-context/request-context.service.ts`. Invalid values are silently dropped and the channel's default language is used instead. The patched versions additionally convert the vulnerable SQL interpolation to a parameterized query as defense in depth.","cvss_v4":null,"cvss_v3":{"version":"3.1","vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:H","score":9.1},"cwes":["CWE-89"],"references":["https://github.com/vendurehq/vendure/security/advisories/GHSA-9pp3-53p2-ww9v"],"products":[],"source":"nvd","synced_at":"2026-10-26T22:26:44.656832877+00:00"},"epss":{"cve":"CVE-2026-40887","score":0.01762,"percentile":0.77871,"date":"2026-10-26"},"kev":null,"osv":[{"id":"GHSA-9pp3-53p2-ww9v","url":"https://osv.dev/vulnerability/GHSA-9pp3-53p2-ww9v","summary":"@vendure/core has a SQL Injection vulnerability","modified":"2026-05-05T16:05:31.510360Z","packages":[{"ecosystem":"npm","name":"@vendure/core","purl":"pkg:npm/%40vendure/core","ranges":[">=3.0.0 <3.5.7"],"fixed":["3.5.7"]},{"ecosystem":"npm","name":"@vendure/core","purl":"pkg:npm/%40vendure/core","ranges":[">=3.6.0 <3.6.2"],"fixed":["3.6.2"]},{"ecosystem":"npm","name":"@vendure/core","purl":"pkg:npm/%40vendure/core","ranges":[">=1.7.4 <2.3.4"],"fixed":["2.3.4"]}]}],"attribution":["This product uses the NVD API but is not endorsed or certified by the NVD.","EPSS scores: FIRST Exploit Prediction Scoring System, https://www.first.org/epss","Known exploited vulnerabilities: CISA Known Exploited Vulnerabilities Catalog, https://www.cisa.gov/known-exploited-vulnerabilities-catalog","Package advisories: OSV (https://osv.dev), from the GitHub Advisory Database, PyPA, Go, RustSec and other ecosystem databases, under CC-BY 4.0 or CC0","CVE records: the CVE Program's CVE List (https://www.cve.org), under its terms of use (https://www.cve.org/Legal/TermsOfUse). CVE is a registered trademark of The MITRE Corporation; this product is not affiliated with the CVE Program."]}