{"id":"CVE-2024-7254","state":"PUBLISHED","title":"Stack overflow in Protocol Buffers Java Lite","description":"Any project that parses untrusted Protocol Buffers data containing an arbitrary number of nested groups / series of SGROUP tags can corrupted by exceeding the stack limit i.e. StackOverflow. Parsing nested groups as unknown fields with DiscardUnknownFieldsParser or Java Protobuf Lite parser, or against Protobuf map fields, creates unbounded recursions that can be abused by an attacker.","publishedAt":"2024-09-19T00:18:45.824Z","updatedAt":"2025-09-08T09:37:53.702Z","severity":{"score":8.7,"label":"High","version":"4.0","vector":"CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N","source":"Google"},"assigner":"Google","products":["Google Protocol Buffers","Google protobuf-java","Google protobuf-javalite","Google protobuf-kotlin","Google protobuf-kotllin-lite","Google google-protobuf [JRuby Gem]"],"affected":[{"vendor":"Google","product":"Protocol Buffers","defaultStatus":"unaffected","versions":[{"version":"0","status":"affected","lessThan":"28.2","versionType":"custom"}],"repo":"https://github.com/protocolbuffers/protobuf"},{"vendor":"Google","product":"protobuf-java","defaultStatus":"unaffected","versions":[{"version":"0","status":"affected","lessThan":"3.25.5","versionType":"custom"},{"version":"0","status":"affected","lessThan":"4.27.5","versionType":"custom"},{"version":"0","status":"affected","lessThan":"4.28.2","versionType":"custom"}],"collectionURL":"https://mvnrepository.com/artifact/com.google.protobuf/protobuf-java"},{"vendor":"Google","product":"protobuf-javalite","defaultStatus":"unaffected","versions":[{"version":"0","status":"affected","lessThan":"3.25.5","versionType":"custom"},{"version":"0","status":"affected","lessThan":"4.27.5","versionType":"custom"},{"version":"0","status":"affected","lessThan":"4.28.2","versionType":"custom"}]},{"vendor":"Google","product":"protobuf-kotlin","defaultStatus":"unaffected","versions":[{"version":"0","status":"affected","lessThan":"3.25.5","versionType":"custom"},{"version":"0","status":"affected","lessThan":"4.27.5","versionType":"custom"},{"version":"0","status":"affected","lessThan":"4.28.2","versionType":"custom"}]},{"vendor":"Google","product":"protobuf-kotllin-lite","defaultStatus":"unaffected","versions":[{"version":"0","status":"affected","lessThan":"3.25.5","versionType":"custom"},{"version":"0","status":"affected","lessThan":"4.27.5","versionType":"custom"},{"version":"0","status":"affected","lessThan":"4.28.2","versionType":"custom"}]},{"vendor":"Google","product":"google-protobuf [JRuby Gem]","defaultStatus":"unaffected","versions":[{"version":"0","status":"affected","lessThan":"3.25.5","versionType":"custom"},{"version":"0","status":"affected","lessThan":"4.27.5","versionType":"custom"},{"version":"0","status":"affected","lessThan":"4.28.2","versionType":"custom"}],"collectionURL":"https://rubygems.org/gems/google-protobuf"}],"references":["https://github.com/protocolbuffers/protobuf/commit/cc8b3483a5584b3301e3d43d17eb59704857ffaa","https://security.netapp.com/advisory/ntap-20241213-0010/","https://security.netapp.com/advisory/ntap-20250418-0006/"],"weaknesses":["CWE-400","CWE-674"],"ingestedAt":"2026-10-29T20:08:20.985Z","source":{"repository":"CVEProject/cvelistV5","path":"cves/2024/7xxx/CVE-2024-7254.json","commit":"556c9d3a8cd17e218bb8e452ba7cd619a384ff47"},"raw":{"dataType":"CVE_RECORD","dataVersion":"5.1","cveMetadata":{"cveId":"CVE-2024-7254","state":"PUBLISHED","datePublished":"2024-09-19T00:18:45.824Z","dateUpdated":"2025-09-08T09:37:53.702Z","assignerShortName":"Google","assignerOrgId":"14ed7db2-1595-443d-9d34-6215bf890778","dateReserved":"2024-07-29T21:41:56.116Z"},"containers":{"cna":{"title":"Stack overflow in Protocol Buffers Java Lite","descriptions":[{"lang":"en","value":"Any project that parses untrusted Protocol Buffers data containing an arbitrary number of nested groups / series of SGROUP tags can corrupted by exceeding the stack limit i.e. StackOverflow. Parsing nested groups as unknown fields with DiscardUnknownFieldsParser or Java Protobuf Lite parser, or against Protobuf map fields, creates unbounded recursions that can be abused by an attacker."}],"affected":[{"vendor":"Google","product":"Protocol Buffers","defaultStatus":"unaffected","versions":[{"version":"0","status":"affected","lessThan":"28.2","versionType":"custom"}],"repo":"https://github.com/protocolbuffers/protobuf"},{"vendor":"Google","product":"protobuf-java","defaultStatus":"unaffected","versions":[{"version":"0","status":"affected","lessThan":"3.25.5","versionType":"custom"},{"version":"0","status":"affected","lessThan":"4.27.5","versionType":"custom"},{"version":"0","status":"affected","lessThan":"4.28.2","versionType":"custom"}],"collectionURL":"https://mvnrepository.com/artifact/com.google.protobuf/protobuf-java"},{"vendor":"Google","product":"protobuf-javalite","defaultStatus":"unaffected","versions":[{"version":"0","status":"affected","lessThan":"3.25.5","versionType":"custom"},{"version":"0","status":"affected","lessThan":"4.27.5","versionType":"custom"},{"version":"0","status":"affected","lessThan":"4.28.2","versionType":"custom"}]},{"vendor":"Google","product":"protobuf-kotlin","defaultStatus":"unaffected","versions":[{"version":"0","status":"affected","lessThan":"3.25.5","versionType":"custom"},{"version":"0","status":"affected","lessThan":"4.27.5","versionType":"custom"},{"version":"0","status":"affected","lessThan":"4.28.2","versionType":"custom"}]},{"vendor":"Google","product":"protobuf-kotllin-lite","defaultStatus":"unaffected","versions":[{"version":"0","status":"affected","lessThan":"3.25.5","versionType":"custom"},{"version":"0","status":"affected","lessThan":"4.27.5","versionType":"custom"},{"version":"0","status":"affected","lessThan":"4.28.2","versionType":"custom"}]},{"vendor":"Google","product":"google-protobuf [JRuby Gem]","defaultStatus":"unaffected","versions":[{"version":"0","status":"affected","lessThan":"3.25.5","versionType":"custom"},{"version":"0","status":"affected","lessThan":"4.27.5","versionType":"custom"},{"version":"0","status":"affected","lessThan":"4.28.2","versionType":"custom"}],"collectionURL":"https://rubygems.org/gems/google-protobuf"}],"references":[{"url":"https://github.com/protocolbuffers/protobuf/commit/cc8b3483a5584b3301e3d43d17eb59704857ffaa"}],"metrics":[{"cvssV4_0":{"Automatable":"NOT_DEFINED","Recovery":"NOT_DEFINED","Safety":"NOT_DEFINED","attackComplexity":"LOW","attackRequirements":"NONE","attackVector":"NETWORK","baseScore":8.7,"baseSeverity":"HIGH","privilegesRequired":"NONE","providerUrgency":"NOT_DEFINED","subAvailabilityImpact":"NONE","subConfidentialityImpact":"NONE","subIntegrityImpact":"NONE","userInteraction":"NONE","valueDensity":"NOT_DEFINED","vectorString":"CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N","version":"4.0","vulnAvailabilityImpact":"HIGH","vulnConfidentialityImpact":"NONE","vulnIntegrityImpact":"NONE","vulnerabilityResponseEffort":"NOT_DEFINED"},"format":"CVSS","scenarios":[{"lang":"en","value":"GENERAL"}]}],"problemTypes":[{"descriptions":[{"cweId":"CWE-400","description":"CWE-400 Uncontrolled Resource Consumption","lang":"en","type":"CWE"}]},{"descriptions":[{"cweId":"CWE-674","description":"CWE-674 Uncontrolled Recursion","lang":"en","type":"CWE"}]}],"providerMetadata":{"shortName":"Google","orgId":"14ed7db2-1595-443d-9d34-6215bf890778","dateUpdated":"2025-09-08T09:37:53.702Z"},"credits":[{"lang":"en","type":"finder","value":"Alexis Challande, Trail of Bits Ecosystem Security Team <ecosystem@trailofbits.com>"}],"impacts":[{"capecId":"CAPEC-100","descriptions":[{"lang":"en","value":"CAPEC-100 Overflow Buffers"}]}],"source":{"discovery":"UNKNOWN"},"x_generator":{"engine":"Vulnogram 0.2.0"}},"adp":[{"title":"CISA ADP Vulnrichment","affected":[{"vendor":"google","product":"protobuf","defaultStatus":"unaffected","versions":[{"version":"0","status":"affected","lessThan":"28.2","versionType":"custom"}],"cpes":["cpe:2.3:a:google:protobuf:*:*:*:*:*:*:*:*"]},{"vendor":"google","product":"protobuf-kotlin-lite","defaultStatus":"unaffected","versions":[{"version":"0","status":"affected","lessThan":"3.25.5","versionType":"custom"},{"version":"4.27","status":"affected","lessThan":"4.27.5","versionType":"custom"},{"version":"4.28","status":"affected","lessThan":"4.28.2","versionType":"custom"}],"cpes":["cpe:2.3:a:google:google-protobuf:*:*:*:*:*:ruby:*:*","cpe:2.3:a:google:protobuf-java:*:*:*:*:*:*:*:*","cpe:2.3:a:google:protobuf-javalite:*:*:*:*:*:*:*:*","cpe:2.3:a:google:protobuf-kotlin:*:*:*:*:*:*:*:*","cpe:2.3:a:google:protobuf-kotlin-lite:*:*:*:*:*:*:*:*"]}],"metrics":[{"other":{"type":"ssvc","content":{"timestamp":"2024-09-19T14:29:43.468555Z","id":"CVE-2024-7254","options":[{"Exploitation":"none"},{"Automatable":"yes"},{"Technical Impact":"partial"}],"role":"CISA Coordinator","version":"2.0.3"}}}],"providerMetadata":{"shortName":"CISA-ADP","orgId":"134c704f-9b21-4f2e-91b3-4a467353bcc0","dateUpdated":"2024-09-19T14:46:14.517Z"}},{"title":"CVE Program Container","references":[{"url":"https://security.netapp.com/advisory/ntap-20241213-0010/"},{"url":"https://security.netapp.com/advisory/ntap-20250418-0006/"}],"providerMetadata":{"shortName":"CVE","orgId":"af854a3a-2127-422b-91ae-364da2661108","dateUpdated":"2025-04-19T00:11:07.841Z"}}]}}}