{"id":"CVE-2024-37168","summary":"@grpc/grpc-js can allocate memory for incoming messages well above configured limits","details":"@grpc/grps-js implements the core functionality of gRPC purely in JavaScript, without a C++ addon. Prior to versions 1.10.9, 1.9.15, and 1.8.22, there are two separate code paths in which memory can be allocated per message in excess of the `grpc.max_receive_message_length` channel option: If an incoming message has a size on the wire greater than the configured limit, the entire message is buffered before it is discarded; and/or if an incoming message has a size within the limit on the wire but decompresses to a size greater than the limit, the entire message is decompressed into memory, and on the server is not discarded. This has been patched in versions 1.10.9, 1.9.15, and 1.8.22.\n","aliases":["GHSA-7v5v-9h63-cj86"],"modified":"2026-04-10T05:14:55.038743Z","published":"2024-06-10T21:32:06.403Z","related":["CGA-cgx6-xw9m-j37j"],"database_specific":{"osv_generated_from":"https://github.com/CVEProject/cvelistV5/tree/main/cves/2024/37xxx/CVE-2024-37168.json","cna_assigner":"GitHub_M","cwe_ids":["CWE-789"]},"references":[{"type":"ADVISORY","url":"https://github.com/CVEProject/cvelistV5/tree/main/cves/2024/37xxx/CVE-2024-37168.json"},{"type":"ADVISORY","url":"https://github.com/grpc/grpc-node/security/advisories/GHSA-7v5v-9h63-cj86"},{"type":"ADVISORY","url":"https://nvd.nist.gov/vuln/detail/CVE-2024-37168"},{"type":"FIX","url":"https://github.com/grpc/grpc-node/commit/08b0422dae56467ecae1007e899efe66a8c4a650"},{"type":"FIX","url":"https://github.com/grpc/grpc-node/commit/674f4e351a619fd4532f84ae6dff96b8ee4e1ed3"},{"type":"FIX","url":"https://github.com/grpc/grpc-node/commit/a8a020339c7eab1347a343a512ad17a4aea4bfdb"}],"affected":[{"ranges":[{"type":"GIT","repo":"https://github.com/grpc/grpc-node","events":[{"introduced":"0"},{"fixed":"08b0422dae56467ecae1007e899efe66a8c4a650"}]},{"type":"GIT","repo":"https://github.com/grpc/grpc-node","events":[{"introduced":"0"},{"fixed":"674f4e351a619fd4532f84ae6dff96b8ee4e1ed3"}]},{"type":"GIT","repo":"https://github.com/grpc/grpc-node","events":[{"introduced":"0"},{"fixed":"a8a020339c7eab1347a343a512ad17a4aea4bfdb"}]},{"type":"GIT","repo":"https://github.com/grpc/grpc-node","events":[{"introduced":"0"},{"fixed":"08b0422dae56467ecae1007e899efe66a8c4a650"}]},{"type":"GIT","repo":"https://github.com/grpc/grpc-node","events":[{"introduced":"0"},{"fixed":"674f4e351a619fd4532f84ae6dff96b8ee4e1ed3"}]},{"type":"GIT","repo":"https://github.com/grpc/grpc-node","events":[{"introduced":"0"},{"fixed":"a8a020339c7eab1347a343a512ad17a4aea4bfdb"}]}],"versions":["@grpc/grpc-js-xds@1.10.0","@grpc/grpc-js-xds@1.10.1","@grpc/grpc-js-xds@1.2.4","@grpc/grpc-js-xds@1.8.0","@grpc/grpc-js-xds@1.8.1","@grpc/grpc-js-xds@1.8.2","@grpc/grpc-js-xds@1.9.0","@grpc/grpc-js-xds@1.9.1","@grpc/grpc-js-xds@1.9.2","@grpc/grpc-js@0.2.0","@grpc/grpc-js@0.3.0","@grpc/grpc-js@0.3.1","@grpc/grpc-js@0.3.3","@grpc/grpc-js@0.3.4","@grpc/grpc-js@0.3.6","@grpc/grpc-js@0.4.0","@grpc/grpc-js@0.4.2","@grpc/grpc-js@0.4.3","@grpc/grpc-js@0.5.0","@grpc/grpc-js@0.5.1","@grpc/grpc-js@0.5.2","@grpc/grpc-js@0.5.3","@grpc/grpc-js@0.6.0","@grpc/grpc-js@0.6.1","@grpc/grpc-js@0.6.12","@grpc/grpc-js@0.6.18","@grpc/grpc-js@0.6.2","@grpc/grpc-js@0.6.3","@grpc/grpc-js@0.6.4","@grpc/grpc-js@0.6.5","@grpc/grpc-js@0.7.0","@grpc/grpc-js@0.7.1","@grpc/grpc-js@0.7.2","@grpc/grpc-js@0.7.5","@grpc/grpc-js@0.7.6","@grpc/grpc-js@0.7.9","@grpc/grpc-js@0.8.0","@grpc/grpc-js@0.8.1","@grpc/grpc-js@1.0.0","@grpc/grpc-js@1.0.2","@grpc/grpc-js@1.0.3","@grpc/grpc-js@1.0.4","@grpc/grpc-js@1.0.5","@grpc/grpc-js@1.1.0","@grpc/grpc-js@1.1.2","@grpc/grpc-js@1.1.3","@grpc/grpc-js@1.1.4","@grpc/grpc-js@1.1.6","@grpc/grpc-js@1.10.0","@grpc/grpc-js@1.10.1","@grpc/grpc-js@1.10.2","@grpc/grpc-js@1.10.3","@grpc/grpc-js@1.10.5","@grpc/grpc-js@1.10.6","@grpc/grpc-js@1.10.7","@grpc/grpc-js@1.10.8","@grpc/grpc-js@1.2.0","@grpc/grpc-js@1.3.4","@grpc/grpc-js@1.8.0","@grpc/grpc-js@1.8.10","@grpc/grpc-js@1.8.11","@grpc/grpc-js@1.8.12","@grpc/grpc-js@1.8.13","@grpc/grpc-js@1.8.14","@grpc/grpc-js@1.8.15","@grpc/grpc-js@1.8.16","@grpc/grpc-js@1.8.17","@grpc/grpc-js@1.8.18","@grpc/grpc-js@1.8.19","@grpc/grpc-js@1.8.2","@grpc/grpc-js@1.8.20","@grpc/grpc-js@1.8.21","@grpc/grpc-js@1.8.3","@grpc/grpc-js@1.8.4","@grpc/grpc-js@1.8.5","@grpc/grpc-js@1.8.6","@grpc/grpc-js@1.8.7","@grpc/grpc-js@1.8.8","@grpc/grpc-js@1.8.9","@grpc/grpc-js@1.9.0","@grpc/grpc-js@1.9.1","@grpc/grpc-js@1.9.10","@grpc/grpc-js@1.9.11","@grpc/grpc-js@1.9.12","@grpc/grpc-js@1.9.13","@grpc/grpc-js@1.9.14","@grpc/grpc-js@1.9.2","@grpc/grpc-js@1.9.3","@grpc/grpc-js@1.9.4","@grpc/grpc-js@1.9.5","@grpc/grpc-js@1.9.6","@grpc/grpc-js@1.9.7","@grpc/grpc-js@1.9.8","@grpc/grpc-js@1.9.9","@grpc/proto-loader@0.3.0","@grpc/proto-loader@0.4.0","@grpc/proto-loader@0.5.0","@grpc/proto-loader@0.5.1","@grpc/proto-loader@0.5.2","@grpc/proto-loader@0.5.4","@grpc/proto-loader@0.5.6","@grpc/proto-loader@0.6.0","@grpc/proto-loader@0.6.1","@grpc/proto-loader@0.6.10","@grpc/proto-loader@0.6.11","@grpc/proto-loader@0.6.12","@grpc/proto-loader@0.6.13","@grpc/proto-loader@0.6.2","@grpc/proto-loader@0.6.3","@grpc/proto-loader@0.6.4","@grpc/proto-loader@0.6.5","@grpc/proto-loader@0.6.6","@grpc/proto-loader@0.6.8","@grpc/proto-loader@0.6.9","@grpc/proto-loader@0.7.1","@grpc/proto-loader@0.7.10","@grpc/proto-loader@0.7.2","@grpc/proto-loader@0.7.3","@grpc/proto-loader@0.7.4","@grpc/proto-loader@0.7.5","@grpc/proto-loader@0.7.6","@grpc/proto-loader@0.7.7","@grpc/proto-loader@0.7.9","@grpc/reflection@1.0.0","@grpc/reflection@1.0.1","grpc-health-check@2.0.0","grpc-tools@1.11.0","grpc-tools@1.11.2","grpc-tools@1.11.3","grpc-tools@1.12.0","grpc-tools@1.12.1","grpc-tools@1.12.2","grpc-tools@1.12.3","grpc-tools@1.12.4","grpc-tools@1.7.0","grpc-tools@1.7.2","grpc-tools@1.8.0","grpc-tools@1.9.0","grpc-tools@1.9.1","grpc@1.23.4","grpc@1.24.3"],"database_specific":{"source":"https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2024-37168.json"}}],"schema_version":"1.7.5","severity":[{"type":"CVSS_V3","score":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:L"}]}