[REQUEST] Update protobuf-java version to 3.25.8

Hello Couchbase team,

We are using core-io:3.8.3 in our Spring Boot 3.4.5 application. Our CI/CD pipeline has flagged a high-severity vulnerability (CVE-2024-7254 / BDSA-2024-6519) due to the inclusion of protobuf-java:3.25.5 inside the shaded package of core-io.

This vulnerability, updated on July 30, 2025, describes a potential Denial of Service via unbounded recursion when parsing nested SGROUP tags in Protocol Buffers.

Although we explicitly use protobuf-java:3.25.8 in our project, the shaded version inside core-io is still detected by our security scanners (e.g., Fortify), and blocks our pipeline.

Could you please consider updating the protobuf-java dependency to a patched version (e.g., 3.25.8 or later) in a future release of core-io?

Thank you for your support and for maintaining such a great product.

Release 3.9.0 is scheduled for today. If it is not already in 3.9.0, I’ll make sure it is in 3.9.1 scheduled for the first Tuesday in September.
FYI - the Couchbase Java SDK only uses protobuf for couchbase2:// (Cloud Native Gateway)..

Edit: It looks like it has been 4.29.2 for some time (?) Am I loooking in the wrong place? couchbase-jvm-clients/protostellar/pom.xml at ecbd12d73847b5da76055f46c19ddb07257f6938 · couchbase/couchbase-jvm-clients · GitHub

Hello, thanks a lot for your answer!

Inside com.google.api.grpc\proto-google-common-protos\pom.xml I see these dependencies:

<dependencies>
    <dependency>
      <groupId>com.google.protobuf</groupId>
      <artifactId>protobuf-java</artifactId>
      <version>3.25.5</version>
      <scope>compile</scope>
      <optional>false</optional>
    </dependency>
  </dependencies>

Hope this information could be useful!
Waiting for your feedback.

Thank you again.

Ok. But that isn’t referenced by couchbase. protobuf-java 4.29.2 is referenced by couchase protostellar module, which is referenced by core-io-deps which is referenced by core-io. Maybe if you posted how your pipeline has flagged it, I would understand better.

Our blackduck report for 3.8.2 shows protobuf-java 4.29.2

1 Like

@XhoiK do note that’s a <scope>compile</scope> dependency, e.g. it is only pulled in at the point of compiling the SDK, in which case I do not believe the CVE would apply. I wonder if it’s pulled in by the Maven plugin that we use to compile protobuf code with (we are on the latest version of this).

As Mike says - at runtime we use 4.29.2, plus you will not be using protobuf & GRPC at all if you are using the regular couchbase[s]:// protocol.

All of which is to say - I do not believe there to be a real security concern here, certainly at first look, and it looks like a false positive from the security scanner because it is poking around at low-level build implementation details that do not affect runtime security. You can upgrade safely.

But regardless, we will look at what is possible to make the scanner happy, as a lower priority item.

1 Like

Hi all, thank you for your replies.

So, it seems that is a false positive and I can add a comment in my fortify scanner page specifying that.

If you need also my blackduck scanner page I can share it, if it helps you to understand even better from when the vulnerability comes out.

In short the vulnerable path that is reported from my blackduck is this:
WEB-INF/lib/core-io-3.8.3.jar → com/couchbase/client/core/deps/com/google/protobuf

Thank you!

@XhoiK it is somewhat confusing, since we use Blackduck ourselves as part of our security reviews, and as Mike shows in the screenshot it is picking up the correct runtime dependency for core-io of protobuf-java 4.29.2.

Maybe if you could indeed share that screenshot it would help us understand where the false positive is coming from.

mvn dependency:tree of core-io-deps (which has the dependencies that get shadowed) shows

com.google.protobuf:protobuf-java:jar:4.29.2:compile as a direct dependency of com.couchbase.client:protostellar (couchbase2[s]//: support), but does not show proto-google-common-protos as a dependency of that.

It does show com.google.api.grpc:proto-google-common-protos:jar:2.48.0:compile as a dependency of io.grpc:grpc-api:jar:1.69.0:compile which is a dependency of io.grpc:grpc-protobuf:jar:1.69.0:compile which is a dependency of com.couchbase.client:protostellar. but does not show protobuf-java as a dependency of proto-google-common-protos - I presume because it already has that from com.google.protobuf:protobuf-java:jar:4.29.2:compile)

[INFO] -----------------< com.couchbase.client:core-io-deps >------------------
[INFO] Building Couchbase JVM Core IO Dependencies 3.9.0
[INFO]   from pom.xml
[INFO] --------------------------------[ jar ]---------------------------------
[INFO]
[INFO] --- dependency:3.3.0:tree (default-cli) @ core-io-deps ---
[INFO] com.couchbase.client:core-io-deps:jar:3.9.0
[INFO] +- io.netty:netty-codec-http:jar:4.1.119.Final:compile
[INFO] |  +- io.netty:netty-common:jar:4.1.119.Final:compile
[INFO] |  +- io.netty:netty-buffer:jar:4.1.119.Final:compile
[INFO] |  +- io.netty:netty-transport:jar:4.1.119.Final:compile
[INFO] |  |  \- io.netty:netty-resoler:jar:4.1.119.Final:compile
[INFO] |  +- io.netty:netty-codec:jar:4.1.119.Final:compile
[INFO] |  \- io.netty:netty-handler:jar:4.1.119.Final:compile
[INFO] +- io.netty:netty-transport-classes-kqueue:jar:4.1.119.Final:compile
[INFO] |  \- io.netty:netty-transport-native-unix-common:jar:4.1.119.Final:compile
[INFO] +- io.netty:netty-transport-classes-epoll:jar:4.1.119.Final:compile
[INFO] +- io.netty:netty-tcnative-classes:jar:2.0.70.Final:compile
[INFO] +- org.jctools:jctools-core:jar:4.0.5:compile
[INFO] +- com.fasterxml.jackson.core:jackson-databind:jar:2.19.2:compile
[INFO] |  +- com.fasterxml.jackson.core:jackson-annotations:jar:2.19.2:compile
[INFO] |  \- com.fasterxml.jackson.core:jackson-core:jar:2.19.2:compile
[INFO] +- com.fasterxml.jackson.module:jackson-module-afterburner:jar:2.19.2:compile
[INFO] +- dnsjava:dnsjava:jar:3.6.0:compile
[INFO] +- org.iq80.snappy:snappy:jar:0.5:compile
[INFO] +- org.latencyutils:LatencyUtils:jar:2.0.3:compile
[INFO] +- org.hdrhistogram:HdrHistogram:jar:2.2.2:compile
[INFO] \- com.couchbase.client:protostellar:jar:9999.0-SNAPSHOT:compile
[INFO]    +- com.google.guava:guava:jar:33.4.0-jre:compile
[INFO]    |  \- com.google.guava:failureaccess:jar:1.0.2:compile
[INFO]    +- com.google.code.gson:gson:jar:2.13.1:compile
[INFO]    +- com.google.protobuf:protobuf-java:jar:4.29.2:compile
[INFO]    +- io.grpc:grpc-netty:jar:1.69.0:compile
[INFO]    |  +- io.grpc:grpc-api:jar:1.69.0:compile
[INFO]    |  +- io.netty:netty-codec-http2:jar:4.1.119.Final:compile
[INFO]    |  +- io.grpc:grpc-core:jar:1.69.0:runtime
[INFO]    |  |  \- io.grpc:grpc-context:jar:1.69.0:runtime
[INFO]    |  +- io.netty:netty-handler-proxy:jar:4.1.119.Final:runtime
[INFO]    |  |  \- io.netty:netty-codec-socks:jar:4.1.119.Final:runtime
[INFO]    |  +- io.perfmark:perfmark-api:jar:0.27.0:runtime
[INFO]    |  \- io.grpc:grpc-util:jar:1.69.0:runtime
[INFO]    +- io.grpc:grpc-protobuf:jar:1.69.0:compile
[INFO]    |  +- com.google.api.grpc:proto-google-common-protos:jar:2.48.0:compile
[INFO]    |  \- io.grpc:grpc-protobuf-lite:jar:1.69.0:runtime
[INFO]    \- io.grpc:grpc-stub:jar:1.69.0:compile
[INFO] ------------------------------------------------------------------------

Hi all, thank you for your replies.

Unfortunately, I cannot upload images here. But let me try to summarize its content.

I upgraded to the 3.9.0 version and the blackduck scan reports that inside myfolder/my-app.war there the jar WEB-INF/lib/core-io-3.9.0.jar that contains an outdated version of protobuf (3.25.5) inside the directory:

com/couchbase/client/core/deps/com/google/protobuf

Indeed, if I search in my solution for protobuf-java I can find this dependency:
<dependencies> <dependency> <groupId>com.google.protobuf</groupId> <artifactId>protobuf-java</artifactId> <version>3.25.5</version> <scope>compile</scope> <optional>false</optional> </dependency> </dependencies>

This dependency is found here:

.m2\repository\com\couchbase\client\core-io\3.9.0\core-io-3.9.0.jar!\META-INF\maven\com.google.api.grpc\proto-google-common-protos\pom.xml

Hope this could clarify more.

Thank you

1 Like

Yes. That’s a compile dependency.

that contains an outdated version of protobuf (3.25.5) inside the directory: com/couchbase/client/core/deps/com/google/protobuf

As near as I can figure - those classes are from 4.29.2

I wish I had something more convincing, but if you fetch the actual jars and inspect the classes, you’ll see that the ones from core-io match those from 4.29.2 (they are not exactly the same size due to being repackaged), but the dates match.

from your project…

mvn dependency:get -Dartifact=com.couchbase.client/core-io:3.9.0
mvn dependency:get -Dartifact=com.google.protobuf:protobuf-java:4.29.2
mvn dependency:get -Dartifact=com.google.protobuf:protobuf-java:3.25.5

jar -tvf ~/.m2/repository/com/couchbase/client/core-io/3.9.0/core-io-3.9.0.jar com/couchbase/client/core/deps/com/google/protobuf | tail -10

16889 Fri Jan 01 00:00:02 PST 2010 com/couchbase/client/core/deps/com/google/protobuf/compiler/PluginProtos$Version.class
667 Fri Jan 01 00:00:02 PST 2010 com/couchbase/client/core/deps/com/google/protobuf/compiler/PluginProtos$VersionOrBuilder.class
7154 Fri Jan 01 00:00:02 PST 2010 com/couchbase/client/core/deps/com/google/protobuf/compiler/PluginProtos.class

jar -tvf ~/.m2/repository/com/google/protobuf/protobuf-java/4.29.2/protobuf-java-4.29.2.jar com/google/protobuf | tail -10

13541 Fri Jan 01 00:00:02 PST 2010 com/google/protobuf/compiler/PluginProtos$Version.class
543 Fri Jan 01 00:00:02 PST 2010 com/google/protobuf/compiler/PluginProtos$VersionOrBuilder.class
6162 Fri Jan 01 00:00:02 PST 2010 com/google/protobuf/compiler/PluginProtos.class

% jar -tvf ~/.m2/repository/com/google/protobuf/protobuf-java/3.25.5/protobuf-java-3.25.5.jar com/google/protobuf | tail -10

13581 Fri Feb 01 00:00:02 PST 1985 com/google/protobuf/compiler/PluginProtos$Version.class
543 Fri Feb 01 00:00:02 PST 1985 com/google/protobuf/compiler/PluginProtos$VersionOrBuilder.class
5561 Fri Feb 01 00:00:02 PST 1985 com/google/protobuf/compiler/PluginProtos.class