{"dataType":"CVE_RECORD","dataVersion":"5.2","cveMetadata":{"cveId":"CVE-2026-59877","assignerOrgId":"a0819718-46f1-4df5-94e2-005712e83aaa","state":"PUBLISHED","assignerShortName":"GitHub_M","dateReserved":"2026-07-07T15:41:53.607Z","datePublished":"2026-07-08T15:28:07.696Z","dateUpdated":"2026-07-08T15:49:27.814Z"},"containers":{"cna":{"title":"protobufjs: Denial of Service via infinite loop in .proto option parsing","problemTypes":[{"descriptions":[{"cweId":"CWE-835","lang":"en","description":"CWE-835: Loop with Unreachable Exit Condition ('Infinite Loop')","type":"CWE"}]}],"metrics":[{"cvssV3_1":{"attackComplexity":"LOW","attackVector":"NETWORK","availabilityImpact":"LOW","baseScore":5.3,"baseSeverity":"MEDIUM","confidentialityImpact":"NONE","integrityImpact":"NONE","privilegesRequired":"NONE","scope":"UNCHANGED","userInteraction":"NONE","vectorString":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:L","version":"3.1"}}],"references":[{"name":"https://github.com/protobufjs/protobuf.js/security/advisories/GHSA-j3f2-48v5-ccww","tags":["x_refsource_CONFIRM"],"url":"https://github.com/protobufjs/protobuf.js/security/advisories/GHSA-j3f2-48v5-ccww"},{"name":"https://github.com/protobufjs/protobuf.js/pull/2352","tags":["x_refsource_MISC"],"url":"https://github.com/protobufjs/protobuf.js/pull/2352"},{"name":"https://github.com/protobufjs/protobuf.js/commit/10fba6d54815ceecca8a06b9a6db490c8f5d2217","tags":["x_refsource_MISC"],"url":"https://github.com/protobufjs/protobuf.js/commit/10fba6d54815ceecca8a06b9a6db490c8f5d2217"},{"name":"https://github.com/protobufjs/protobuf.js/commit/fa5c73add738ceb471e74da8cc2f3727c3d0a69f","tags":["x_refsource_MISC"],"url":"https://github.com/protobufjs/protobuf.js/commit/fa5c73add738ceb471e74da8cc2f3727c3d0a69f"},{"name":"https://github.com/protobufjs/protobuf.js/releases/tag/protobufjs-v7.6.5","tags":["x_refsource_MISC"],"url":"https://github.com/protobufjs/protobuf.js/releases/tag/protobufjs-v7.6.5"},{"name":"https://github.com/protobufjs/protobuf.js/releases/tag/protobufjs-v8.6.6","tags":["x_refsource_MISC"],"url":"https://github.com/protobufjs/protobuf.js/releases/tag/protobufjs-v8.6.6"}],"affected":[{"vendor":"protobufjs","product":"protobuf.js","versions":[{"version":">= 7.5.0, < 7.6.5","status":"affected"},{"version":">= 8.0.0, < 8.6.6","status":"affected"}]}],"providerMetadata":{"orgId":"a0819718-46f1-4df5-94e2-005712e83aaa","shortName":"GitHub_M","dateUpdated":"2026-07-08T15:28:07.696Z"},"descriptions":[{"lang":"en","value":"protobufjs compiles protobuf definitions into JavaScript (JS) functions. Prior to 7.6.5 and 8.6.6, protobufjs parsed option names by advancing through schema tokens until reaching an = token without checking for end of input, so a crafted .proto schema that opens an option declaration and ends prematurely can cause parse, Root.load, or Root.loadSync to loop indefinitely. This issue is fixed in versions 7.6.5 and 8.6.6."}],"source":{"advisory":"GHSA-j3f2-48v5-ccww","discovery":"UNKNOWN"}},"adp":[{"metrics":[{"other":{"type":"ssvc","content":{"timestamp":"2026-07-08T15:48:58.903197Z","id":"CVE-2026-59877","options":[{"Exploitation":"none"},{"Automatable":"yes"},{"Technical Impact":"partial"}],"role":"CISA Coordinator","version":"2.0.3"}}}],"title":"CISA ADP Vulnrichment","providerMetadata":{"orgId":"134c704f-9b21-4f2e-91b3-4a467353bcc0","shortName":"CISA-ADP","dateUpdated":"2026-07-08T15:49:27.814Z"}}]}}