CVE-2024-45614

Source
https://nvd.nist.gov/vuln/detail/CVE-2024-45614
Import Source
https://storage.googleapis.com/osv-test-cve-osv-conversion/osv-output/CVE-2024-45614.json
JSON Data
https://api.test.osv.dev/v1/vulns/CVE-2024-45614
Aliases
Downstream
Related
Published
2024-09-19T22:42:33Z
Modified
2025-10-09T15:47:30.689168Z
Severity
  • 5.4 (Medium) CVSS_V3 - CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:C/C:L/I:L/A:N CVSS Calculator
Summary
Header normalization allows for client to clobber proxy set headers in Puma
Details

Puma is a Ruby/Rack web server built for parallelism. In affected versions clients could clobber values set by intermediate proxies (such as X-Forwarded-For) by providing a underscore version of the same header (X-ForwardedFor). Any users relying on proxy set variables is affected. v6.4.3/v5.6.9 now discards any headers using underscores if the non-underscore version also exists. Effectively, allowing the proxy defined headers to always win. Users are advised to upgrade. Nginx has a underscoresin_headers configuration variable to discard these headers at the proxy level as a mitigation. Any users that are implicitly trusting the proxy defined headers for security should immediately cease doing so until upgraded to the fixed versions.

References

Affected packages

Git / github.com/puma/puma

Affected ranges

Type
GIT
Repo
https://github.com/puma/puma
Events
Type
GIT
Repo
https://github.com/puma/puma
Events
Introduced
0 Unknown introduced commit / All previous commits are affected
Fixed

Affected versions

Other

rm

v1.*

v1.1.0
v1.1.1
v1.2.0
v1.2.1
v1.2.2
v1.3.0
v1.3.1
v1.4.0
v1.5.0
v1.6.2

v2.*

v2.0.0
v2.0.0.b2
v2.0.0.b3
v2.0.0.b4
v2.0.0.b5
v2.0.0.b6
v2.0.0.b7
v2.0.1
v2.1.0
v2.1.1
v2.10.0
v2.10.1
v2.10.2
v2.11.0
v2.11.2
v2.11.3
v2.12.0
v2.12.1
v2.12.2
v2.12.3
v2.13.0
v2.13.1
v2.13.2
v2.13.3
v2.13.4
v2.14.0
v2.15.0
v2.15.1
v2.15.2
v2.15.3
v2.16.0
v2.2.0
v2.2.1
v2.2.2
v2.3.0
v2.3.1
v2.3.2
v2.4.0
v2.4.1
v2.5.0
v2.5.1
v2.6.0
v2.7.0
v2.7.1
v2.8.1
v2.8.2
v2.9.0
v2.9.1
v2.9.2

v3.*

v3.0.0
v3.0.0.rc1
v3.0.1
v3.0.2
v3.1.0
v3.1.1
v3.10.0
v3.11.0
v3.11.1
v3.11.2
v3.11.3
v3.11.4
v3.12.0
v3.12.1
v3.2.0
v3.3.0
v3.4.0
v3.5.0
v3.5.1
v3.5.2
v3.6.0
v3.7.1
v3.8.0
v3.9.0
v3.9.1

v4.*

v4.0.0
v4.0.1
v4.1.0
v4.2.0
v4.2.1
v4.3.0

v5.*

v5.0.0
v5.0.0.beta1
v5.0.0.beta2
v5.0.1
v5.0.2
v5.0.3
v5.1.0
v5.2.0
v5.2.1
v5.2.2
v5.3.0
v5.3.1
v5.3.2
v5.4.0
v5.5.0
v5.5.1
v5.5.2
v5.6.0
v5.6.1
v5.6.2
v5.6.4
v5.6.5
v5.6.6
v5.6.7
v5.6.8

v6.*

v6.0.0
v6.0.1
v6.0.2
v6.1.0
v6.2.0
v6.2.1
v6.2.2
v6.3.0
v6.4.0
v6.4.1
v6.4.2

Database specific

{
    "vanir_signatures": [
        {
            "signature_version": "v1",
            "digest": {
                "threshold": 0.9,
                "line_hashes": [
                    "232977267776323730279055942466391420493",
                    "23119890018860005825266378863797224565",
                    "200787430779553903926757555396896340908",
                    "111087665460754029894027671599367963389"
                ]
            },
            "source": "https://github.com/puma/puma/commit/f196b23be24712fb8fb16051cc124798cc84f70e",
            "deprecated": false,
            "target": {
                "file": "ext/puma_http11/org/jruby/puma/Http11.java"
            },
            "signature_type": "Line",
            "id": "CVE-2024-45614-3e545615"
        },
        {
            "signature_version": "v1",
            "digest": {
                "length": 1234.0,
                "function_hash": "159998391064100209205141949366143445508"
            },
            "source": "https://github.com/puma/puma/commit/f196b23be24712fb8fb16051cc124798cc84f70e",
            "deprecated": false,
            "target": {
                "file": "ext/puma_http11/org/jruby/puma/Http11.java",
                "function": "http_field"
            },
            "signature_type": "Function",
            "id": "CVE-2024-45614-9ed0cd80"
        }
    ]
}