Unfortunately a CVE from a decade ago and the 2.x lineage are both sufficiently ancient history that we realistically don't have a lot of information on hand for this topic.
Just from the linked github advisory page, it does appear to me that what happened is that this was a C++Proto issue and likely the only patches were in C++, but all languages including Java and Go are listed on that CVE.
There's two possible reasons that I can imagine that having happened:
- Protobuf only had one unified numbering scheme (3.4.0 for all languages, unlike today where the numbering scheme is that each language is released as X.4.0 where X is a separate choice for each language and the 4.0 portion is the cross-version numbering). The CVE was simply declared on all "protobuf 3.4.0" and that was backed out to include things that it really didn't apply to, including Java and Go.
- It may also have deliberately happened due to Protoc itself is implemented using C++Proto, which means ~all things using protoc technically do contain the vulnerable C++Proto code. However, supply chain attacks on protoc are not considered to be part of our threat model these days, so if we declared a CVE on C++Proto today we would not consider that to be a topic for JavaProto, though I'm unsure if that was the case a decade ago or not.