{"url":"http://public2.vulnerablecode.io/api/packages/923985?format=json","purl":"pkg:deb/debian/golang-github-gorilla-schema@1.2.0-2?distro=trixie","type":"deb","namespace":"debian","name":"golang-github-gorilla-schema","version":"1.2.0-2","qualifiers":{"distro":"trixie"},"subpath":"","is_vulnerable":true,"next_non_vulnerable_version":"1.4.1-1","latest_non_vulnerable_version":"1.4.1-1","affected_by_vulnerabilities":[{"url":"http://public2.vulnerablecode.io/api/vulnerabilities/18089?format=json","vulnerability_id":"VCID-fcfw-7u4r-ebf8","summary":"Potential memory exhaustion attack due to sparse slice deserialization\n### Details\n\nRunning `schema.Decoder.Decode()` on a struct that has a field of type `[]struct{...}` opens it up to malicious attacks regarding memory allocations, taking advantage of the sparse slice functionality. For instance, in the Proof of Concept written below, someone can specify to set a field of the billionth element and it will allocate all other elements before it in the slice. \n\nIn the local environment environment for my project, I was able to call an endpoint like `/innocent_endpoint?arr.10000000.X=1` and freeze my system from the memory allocation while parsing `r.Form`. I think [this line](https://github.com/gorilla/schema/blob/main/decoder.go#L223) is responsible for allocating the slice, although I haven't tested to make sure, so it's just an educated guess.\n\n### Proof of Concept\n\nThe following proof of concept works on both v1.2.0 and v1.2.1. I have not tested earlier versions.\n\n```go\npackage main\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/gorilla/schema\"\n)\n\nfunc main() {\n\tdec := schema.NewDecoder()\n\tvar result struct {\n\t\tArr []struct{ Val int }\n\t}\n\tif err := dec.Decode(&result, map[string][]string{\"arr.1000000000.Val\": {\"1\"}}); err != nil {\n\t\tpanic(err)\n\t}\n\tfmt.Printf(\"%#+v\\n\", result)\n}\n\n```\n\n### Impact\n\nAny use of `schema.Decoder.Decode()` on a struct with arrays of other structs could be vulnerable to this memory exhaustion vulnerability. There seems to be no possible solution that a developer using this library can do to disable this behaviour without fixing it in this project, so all uses of Decode that fall under this umbrella are affected. A fix that doesn't require a major change may also be harder to find, since it could break compatibility with some other intended use-cases.","references":[{"reference_url":"https://access.redhat.com/hydra/rest/securitydata/cve/CVE-2024-37298.json","reference_id":"","reference_type":"","scores":[{"value":"7.5","scoring_system":"cvssv3","scoring_elements":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H"}],"url":"https://access.redhat.com/hydra/rest/securitydata/cve/CVE-2024-37298.json"},{"reference_url":"https://api.first.org/data/v1/epss?cve=CVE-2024-37298","reference_id":"","reference_type":"","scores":[{"value":"0.00267","scoring_system":"epss","scoring_elements":"0.50107","published_at":"2026-04-29T12:55:00Z"},{"value":"0.00267","scoring_system":"epss","scoring_elements":"0.50154","published_at":"2026-04-26T12:55:00Z"},{"value":"0.00267","scoring_system":"epss","scoring_elements":"0.50147","published_at":"2026-04-24T12:55:00Z"},{"value":"0.00267","scoring_system":"epss","scoring_elements":"0.50188","published_at":"2026-04-18T12:55:00Z"},{"value":"0.00267","scoring_system":"epss","scoring_elements":"0.50143","published_at":"2026-04-13T12:55:00Z"},{"value":"0.00267","scoring_system":"epss","scoring_elements":"0.50162","published_at":"2026-04-21T12:55:00Z"},{"value":"0.00267","scoring_system":"epss","scoring_elements":"0.50156","published_at":"2026-04-09T12:55:00Z"},{"value":"0.00267","scoring_system":"epss","scoring_elements":"0.5013","published_at":"2026-04-02T12:55:00Z"},{"value":"0.00267","scoring_system":"epss","scoring_elements":"0.50158","published_at":"2026-04-04T12:55:00Z"},{"value":"0.00267","scoring_system":"epss","scoring_elements":"0.50108","published_at":"2026-04-07T12:55:00Z"},{"value":"0.00267","scoring_system":"epss","scoring_elements":"0.50146","published_at":"2026-04-12T12:55:00Z"},{"value":"0.00267","scoring_system":"epss","scoring_elements":"0.50173","published_at":"2026-04-11T12:55:00Z"}],"url":"https://api.first.org/data/v1/epss?cve=CVE-2024-37298"},{"reference_url":"https://github.com/gorilla/schema","reference_id":"","reference_type":"","scores":[{"value":"7.5","scoring_system":"cvssv3.1","scoring_elements":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H"},{"value":"HIGH","scoring_system":"generic_textual","scoring_elements":""}],"url":"https://github.com/gorilla/schema"},{"reference_url":"https://github.com/gorilla/schema/blob/main/decoder.go#L223","reference_id":"","reference_type":"","scores":[{"value":"7.5","scoring_system":"cvssv3.1","scoring_elements":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H"},{"value":"HIGH","scoring_system":"generic_textual","scoring_elements":""},{"value":"Track","scoring_system":"ssvc","scoring_elements":"SSVCv2/E:P/A:Y/T:P/P:M/B:A/M:M/D:T/2024-07-02T14:16:14Z/"}],"url":"https://github.com/gorilla/schema/blob/main/decoder.go#L223"},{"reference_url":"https://github.com/gorilla/schema/commit/cd59f2f12cbdfa9c06aa63e425d1fe4a806967ff","reference_id":"","reference_type":"","scores":[{"value":"7.5","scoring_system":"cvssv3.1","scoring_elements":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H"},{"value":"HIGH","scoring_system":"generic_textual","scoring_elements":""},{"value":"Track","scoring_system":"ssvc","scoring_elements":"SSVCv2/E:P/A:Y/T:P/P:M/B:A/M:M/D:T/2024-07-02T14:16:14Z/"}],"url":"https://github.com/gorilla/schema/commit/cd59f2f12cbdfa9c06aa63e425d1fe4a806967ff"},{"reference_url":"https://github.com/gorilla/schema/security/advisories/GHSA-3669-72x9-r9p3","reference_id":"","reference_type":"","scores":[{"value":"7.5","scoring_system":"cvssv3.1","scoring_elements":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H"},{"value":"HIGH","scoring_system":"generic_textual","scoring_elements":""},{"value":"Track","scoring_system":"ssvc","scoring_elements":"SSVCv2/E:P/A:Y/T:P/P:M/B:A/M:M/D:T/2024-07-02T14:16:14Z/"}],"url":"https://github.com/gorilla/schema/security/advisories/GHSA-3669-72x9-r9p3"},{"reference_url":"https://nvd.nist.gov/vuln/detail/CVE-2024-37298","reference_id":"","reference_type":"","scores":[{"value":"7.5","scoring_system":"cvssv3.1","scoring_elements":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H"},{"value":"HIGH","scoring_system":"generic_textual","scoring_elements":""}],"url":"https://nvd.nist.gov/vuln/detail/CVE-2024-37298"},{"reference_url":"https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1075973","reference_id":"1075973","reference_type":"","scores":[],"url":"https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1075973"},{"reference_url":"https://bugzilla.redhat.com/show_bug.cgi?id=2295010","reference_id":"2295010","reference_type":"","scores":[],"url":"https://bugzilla.redhat.com/show_bug.cgi?id=2295010"},{"reference_url":"https://access.redhat.com/errata/RHSA-2024:4702","reference_id":"RHSA-2024:4702","reference_type":"","scores":[],"url":"https://access.redhat.com/errata/RHSA-2024:4702"},{"reference_url":"https://access.redhat.com/errata/RHSA-2024:4825","reference_id":"RHSA-2024:4825","reference_type":"","scores":[],"url":"https://access.redhat.com/errata/RHSA-2024:4825"},{"reference_url":"https://access.redhat.com/errata/RHSA-2024:4848","reference_id":"RHSA-2024:4848","reference_type":"","scores":[],"url":"https://access.redhat.com/errata/RHSA-2024:4848"},{"reference_url":"https://access.redhat.com/errata/RHSA-2024:4858","reference_id":"RHSA-2024:4858","reference_type":"","scores":[],"url":"https://access.redhat.com/errata/RHSA-2024:4858"},{"reference_url":"https://access.redhat.com/errata/RHSA-2024:4963","reference_id":"RHSA-2024:4963","reference_type":"","scores":[],"url":"https://access.redhat.com/errata/RHSA-2024:4963"},{"reference_url":"https://access.redhat.com/errata/RHSA-2024:5194","reference_id":"RHSA-2024:5194","reference_type":"","scores":[],"url":"https://access.redhat.com/errata/RHSA-2024:5194"},{"reference_url":"https://access.redhat.com/errata/RHSA-2024:5202","reference_id":"RHSA-2024:5202","reference_type":"","scores":[],"url":"https://access.redhat.com/errata/RHSA-2024:5202"},{"reference_url":"https://access.redhat.com/errata/RHSA-2024:6194","reference_id":"RHSA-2024:6194","reference_type":"","scores":[],"url":"https://access.redhat.com/errata/RHSA-2024:6194"}],"fixed_packages":[{"url":"http://public2.vulnerablecode.io/api/packages/923986?format=json","purl":"pkg:deb/debian/golang-github-gorilla-schema@1.4.1-1?distro=trixie","is_vulnerable":false,"affected_by_vulnerabilities":[],"resource_url":"http://public2.vulnerablecode.io/packages/pkg:deb/debian/golang-github-gorilla-schema@1.4.1-1%3Fdistro=trixie"}],"aliases":["CVE-2024-37298","GHSA-3669-72x9-r9p3"],"risk_score":4.0,"exploitability":"0.5","weighted_severity":"8.0","resource_url":"http://public2.vulnerablecode.io/vulnerabilities/VCID-fcfw-7u4r-ebf8"}],"fixing_vulnerabilities":[],"risk_score":"4.0","resource_url":"http://public2.vulnerablecode.io/packages/pkg:deb/debian/golang-github-gorilla-schema@1.2.0-2%3Fdistro=trixie"}