{"id":"GHSA-h755-8qp9-cq85","summary":"protobufjs Prototype Pollution vulnerability","details":"protobuf.js (aka protobufjs) 6.10.0 until 6.11.4 and 7.0.0 until 7.2.4 allows Prototype Pollution, a different vulnerability than CVE-2022-25878. A user-controlled protobuf message can be used by an attacker to pollute the prototype of Object.prototype by adding and overwriting its data and functions. Exploitation can involve: (1) using the function parse to parse protobuf messages on the fly, (2) loading .proto files by using load/loadSync functions, or (3) providing untrusted input to the functions ReflectionObject.setParsedOption and util.setProperty. NOTE: this CVE Record is about `Object.constructor.prototype.\u003cnew-property\u003e = ...;` whereas CVE-2022-25878 was about `Object.__proto__.\u003cnew-property\u003e = ...;` instead.","aliases":["CVE-2023-36665"],"modified":"2026-07-17T21:04:59.762075760Z","published":"2023-07-05T15:30:24Z","database_specific":{"github_reviewed_at":"2023-07-07T20:19:02Z","nvd_published_at":"2023-07-05T14:15:09Z","cwe_ids":["CWE-1321"],"severity":"CRITICAL","github_reviewed":true},"references":[{"type":"ADVISORY","url":"https://nvd.nist.gov/vuln/detail/CVE-2023-36665"},{"type":"WEB","url":"https://github.com/protobufjs/protobuf.js/issues/1918#issuecomment-1723500294"},{"type":"WEB","url":"https://github.com/protobufjs/protobuf.js/pull/1899"},{"type":"WEB","url":"https://github.com/protobufjs/protobuf.js/commit/e66379f451b0393c27d87b37fa7d271619e16b0d"},{"type":"PACKAGE","url":"https://github.com/protobufjs/protobuf.js"},{"type":"WEB","url":"https://github.com/protobufjs/protobuf.js/commits/release-6.11.4"},{"type":"WEB","url":"https://github.com/protobufjs/protobuf.js/compare/protobufjs-v7.2.3...protobufjs-v7.2.4"},{"type":"WEB","url":"https://github.com/protobufjs/protobuf.js/releases/tag/protobufjs-v7.2.4"},{"type":"WEB","url":"https://security.netapp.com/advisory/ntap-20240628-0006"},{"type":"WEB","url":"https://www.code-intelligence.com/blog/cve-protobufjs-prototype-pollution-cve-2023-36665"}],"affected":[{"package":{"name":"protobufjs","ecosystem":"npm","purl":"pkg:npm/protobufjs"},"ranges":[{"type":"SEMVER","events":[{"introduced":"7.0.0"},{"fixed":"7.2.5"}]}],"database_specific":{"source":"https://github.com/github/advisory-database/blob/main/advisories/github-reviewed/2023/07/GHSA-h755-8qp9-cq85/GHSA-h755-8qp9-cq85.json"}},{"package":{"name":"protobufjs","ecosystem":"npm","purl":"pkg:npm/protobufjs"},"ranges":[{"type":"SEMVER","events":[{"introduced":"6.10.0"},{"fixed":"6.11.4"}]}],"database_specific":{"source":"https://github.com/github/advisory-database/blob/main/advisories/github-reviewed/2023/07/GHSA-h755-8qp9-cq85/GHSA-h755-8qp9-cq85.json"}}],"schema_version":"1.9.0","severity":[{"type":"CVSS_V3","score":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H"}]}