Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

x/vulndb: potential Go vuln in github.com/swaggo/http-swagger: CVE-2022-24863 #427

Closed
GoVulnBot opened this issue Apr 18, 2022 · 3 comments
Assignees

Comments

@GoVulnBot
Copy link

CVE-2022-24863 references github.com/swaggo/http-swagger, which may be a Go module.

Description:
http-swagger is an open source wrapper to automatically generate RESTful API documentation with Swagger 2.0. In versions of http-swagger prior to 1.2.6 an attacker may perform a denial of service attack consisting of memory exhaustion on the host system. The cause of the memory exhaustion is down to improper handling of http methods. Users are advised to upgrade. Users unable to upgrade may to restrict the path prefix to the "GET" method as a workaround.

Links:

See doc/triage.md for instructions on how to triage this report.

module: github.com/swaggo/http-swagger
package: http-swagger
description: |+
    http-swagger is an open source wrapper to automatically generate RESTful API documentation with Swagger 2.0. In versions of http-swagger prior to 1.2.6 an attacker may perform a denial of service attack consisting of memory exhaustion on the host system. The cause of the memory exhaustion is down to improper handling of http methods. Users are advised to upgrade.  Users unable to upgrade may to restrict the path prefix to the "GET" method as a workaround.

cves:
  - CVE-2022-24863
links:
    pr: https://github.com/swaggo/http-swagger/pull/62
    commit: https://github.com/swaggo/http-swagger/commit/b7d83e8fba85a7a51aa7e45e8244b4173f15049e
    context:
      - https://github.com/swaggo/http-swagger/releases/tag/v1.2.6
      - https://github.com/swaggo/http-swagger/security/advisories/GHSA-xg75-q3q5-cqmv

@neild
Copy link
Contributor

neild commented Jun 27, 2022

I do not understand how this is a vulnerability.

This package provides an HTTP handler. The linked PR changes that handler to reject any request method other than GET. However, I don't see how attacker-caused memory exhaustion can occur from permitting other methods. The usual cause of such memory exhaustion would be unbounded buffering of the request body, but the HTTP handler never reads the request body and net/http doesn't do unbounded buffering.

@neild
Copy link
Contributor

neild commented Feb 29, 2024

#2547 explained the problem in much better detail. There is indeed a vulnerability here. Reopening.

@gopherbot
Copy link
Contributor

Change https://go.dev/cl/568015 mentions this issue: data/reports: add GO-2022-0427.yaml

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

4 participants