Description
oapi-codegen 2.5.0 before 2.8.1 contains a code injection vulnerability that allows attackers to inject Go code by supplying a crafted servers[].x-go-name value emitted unescaped by the server-urls template. Attackers who control an OpenAPI document can define an injected func init() that executes when the victim builds and imports the generated package.
Affected products
| Vendor | Product | Affected | Fixed |
|---|---|---|---|
| oapi-codegen | oapi-codegen | 2.5.0 – < 2.8.1 | 2.8.1 |
References
- GitHub Security Advisory (GHSA-g2vv-83pm-v2hc) vendor-advisory
- Pull Request #2626 patch issue-tracking
- Patch Commit patch
- https://github.com/oapi-codegen/oapi-codegen/blob/v2.8.0/pkg/codegen/templates/server-urls.tmpl#L5-L7 technical-description
- https://github.com/oapi-codegen/oapi-codegen/blob/v2.5.0/pkg/codegen/templates/server-urls.tmpl#L4-L5 technical-description
- oapi-codegen v2.8.1 Release Notes release-notes
- GitHub Security Advisory (GHSA-rjwr-m7qx-3fjr) related vendor-advisory
- VulnCheck Advisory: oapi-codegen 2.5.0 before 2.8.1 Code Injection via servers[].x-go-name Extension third-party-advisory