CVE-2026-54661 json
swagger-typescript-api vulnerable to code injection via unescaped `servers[0].url` in axios http-client template
published 2026-07-29 3 mo ago modified 2026-10-23 16 d ago also GHSA-38c3-wv3c-v3xj , EUVD-2026-50365
- cvss
- 8.3
- version 3.1, CNA
- cisa kev
- Not listed
- not in CISA's catalog
- epss
- 0.5%
- EPSS 0.5% chance of exploitation in 30 days, percentile 41%
- public exploits
- 0
- none known
Summary
swagger-typescript-api generates API clients for Fetch or Axios from an OpenAPI Specification. Prior to 13.12.2, templates/base/http-clients/axios-http-client.ejs interpolates servers[0].url from src/code-gen-process.ts into the HttpClient constructor without escaping, allowing an attacker-controlled OpenAPI spec to inject code that executes when new HttpClient() or new Api() is constructed. This issue is fixed in version 13.12.2.
Patch / fix
- npm swagger-typescript-api 13.12.2
CISA SSVC
- Exploitation
- none
- Automatable
- no
- Technical impact
- total
- Assessed
- 3 mo ago
Exploit prediction
0.48% chance of exploitation in the next 30 days, higher than 41% of all scored CVEs (FIRST EPSS, 2026-11-08).
CVSS scores
| assigned by | version | score | vector |
|---|---|---|---|
| CNA | 3.1 | 8.3 | CVSS:3.1/AV:N/AC:H/PR:N/UI:R/S:C/C:H/I:H/A:H |
| GitHub | 3.1 | 8.3 | CVSS:3.1/AV:N/AC:H/PR:N/UI:R/S:C/C:H/I:H/A:H |
Affected packages
| ecosystem | package | affected | fixed in |
|---|---|---|---|
| npm | swagger-typescript-api | <13.12.2 |
13.12.2 |
Affected products
- acacode swagger-typescript-api
Classification
References
-
github.com
/acacode/swagger-typescript-api/pull/1779
web
-
github.com
/acacode/swagger-typescript-api/commit/306d59acb8ffbb00f953f807b97234b21f51d9de
web
-
github.com
/acacode/swagger-typescript-api/security/advisories/GHSA-38c3-wv3c-v3xj
web
-
github.com
/acacode/swagger-typescript-api/releases/tag/v13.12.2
web
-
github.com
/acacode/swagger-typescript-api
package
Sources
- CVE List CVE-2026-54661
- GitHub Advisory GHSA-38c3-wv3c-v3xj
- NVD CVE-2026-54661
Fencer Vulns keeps one entry per vulnerability: the CVE id wins, then GHSA, and records that alias each other are merged, except that two CVEs always keep separate entries. The same data is available as JSON.