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.
{
"cna_assigner": "GitHub_M",
"cwe_ids": [
"CWE-835"
],
"osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/59xxx/CVE-2026-59877.json"
}{
"extracted_events": [
{
"range": [
{
"introduced": "7.5.0"
},
{
"fixed": "7.6.5"
}
],
"source": "AFFECTED_FIELD",
"strategy": "StringRangeExpression"
},
{
"range": [
{
"introduced": "8.0.0"
},
{
"fixed": "8.6.6"
}
],
"source": "AFFECTED_FIELD",
"strategy": "StringRangeExpression"
},
{
"range": [
{
"fixed": "10fba6d54815ceecca8a06b9a6db490c8f5d2217"
}
],
"source": "REFERENCES_COMMIT"
},
{
"range": [
{
"fixed": "fa5c73add738ceb471e74da8cc2f3727c3d0a69f"
}
],
"source": "REFERENCES_COMMIT"
},
{
"original_tag": "protobufjs-v7.6.5",
"range": [
{
"fixed": "89048ba0bbf3ed78f77199102f0614dafc2b4860"
}
],
"source": "REFERENCES_TAG"
},
{
"original_tag": "protobufjs-v8.6.6",
"range": [
{
"fixed": "55e4c8f8eadfc21c848f6a1eedd1b383a3720099"
}
],
"source": "REFERENCES_TAG"
}
]
}