Request for support for Protobuf Java 4.x.x (specifically 4.32.1) in TensorFlow Java
Please make sure that this is a feature request. As per our GitHub Policy, we only address code/doc bugs, performance issues, feature requests and build/installation issues on GitHub. tag:feature_template
Hi Everyone 👋
I have a project where I am using a java/python hybrid of Tensorflow in a Machine Learning. My project was based on
System information
- TensorFlow version (you are using): 1.2.0-SNAPSHOT
- Are you willing to contribute it (Yes/No): No
Describe the feature and the current behavior/state.
In my project, I am working with a hybrid TensorFlow setup using both Python and Java. The Python side uses TensorFlow 2.15 and protobuf 3.20.3, while the Java side uses TensorFlow 0.5.0 and protobuf 3.21.7. Due to a security vulnerability (CVE-2025-4565), I need to update the Python protobuf from 3.20.3 to 4.25.8. After upgrading, I encountered an intermittent issue stemming from descriptor changes between protobuf versions 3.x.x and 4.x.x. TensorFlow Python supports protobuf 4.25.8, but TensorFlow Java (1.2.0-SNAPSHOT) only supports protobuf Java 3.21.9. Given that protobuf Java has since been updated (to version 4.32.1 as of this writing), I would like to request official support for protobuf Java 4.x.x, particularly 4.32.1, in TensorFlow Java to ensure compatibility with the updated Python side of my project.
Will this change the current api? How?
Yes, this change will require updating the dependencies in the TensorFlow Java ecosystem to include protobuf Java 4.x.x support. This update may involve changes to how descriptors and certain functions are handled, so users may need to adjust their code to accommodate those changes.
Who will benefit with this feature?
- Developers using TensorFlow in hybrid Python/Java environments.
- Developers who need to update to the latest protobuf versions for security (CVE-2025-4565) or compatibility with other libraries.
- Users facing compatibility issues due to mismatched versions of protobuf between Python and Java.
Any Other info.
The issue is critical as it directly impacts security and cross-platform compatibility. It would be beneficial if this update could be rolled into a future release of TensorFlow Java, or at least made available in a stable branch for users who rely on protobuf Java 4.x.x.
What kind of issue are you hitting with protobuf compatibility between Java and Python? They should both be able to read protobufs using their respective versions, and that CVE only affects protobuf-python.
What kind of issue are you hitting with protobuf compatibility between Java and Python? They should both be able to read protobufs using their respective versions, and that CVE only affects protobuf-python.
I am having intermittent issue I have one service where all the requests converges and the calls from certain API are failing with gRPC errors, I did some research and it believe its because of the descriptor changes from 3.x -> 4.x in both python and java protobuf versions. So to update python protobuf I'll have to update the java protobuf as well
Ok. If you're generating code with protobuf 4.x in Python and protobuf 3.x in Java that should work just fine, but we can look at updating it. We typically use the version that is in the TF bazel buildscript, but it's had to diverge in the past.
Thank you @Craigacp for such a quick response. I have tried it out and it works intermittently. I think there is some issue lying beneath the proto hood, If we can upgrade it that'll be really helpful. Thanks again for looking into it