Dear all,

I'm reaching out to discuss an ongoing issue in Pulsar related to 
CVE-2023-32732, which necessitates upgrading gRPC in Pulsar. Although this CVE 
isn't critical, it's flagged by CVE scanners, and addressing it requires 
careful coordination of upgrades for gRPC and Protobuf libraries in both Pulsar 
and Bookkeeper.

Currently, we face a challenge due to a strong dependency on gRPC and Protobuf 
library versions: upgrades must first occur in Bookkeeper and then in Pulsar to 
maintain compatibility.
On the Pulsar side, the primary issues stem from Protobuf version upgrades in 
addition to the gRPC incompatibility with the Bookkeeper StateStore client.

In June I made an attempt to upgrade grpc and protobuf in both Pulsar and 
Bookkeeper:
https://github.com/apache/pulsar/pull/20602 (this was never merged due to 
failing tests)
https://github.com/apache/bookkeeper/pull/3992 (this was merged, but it had to 
be roll backed)
https://github.com/apache/bookkeeper/pull/4000 (closed as invalid solution)

In Bookkeeper, we had cherry-picked the upgrade to branch-4.16 and that had to 
be downgraded
with https://github.com/apache/bookkeeper/pull/4001, because of compatibility 
issues.

A discovery during these changes was the compatibility policy of protobuf 
(https://protobuf.dev/support/cross-version-runtime-guarantee/), which states 
that cross-version runtime support isn't guaranteed. I have also understood 
that grpc has a similar policy. This policy poses a challenge, as it 
necessitates the use of identical grpc and protobuf versions across both Pulsar 
and Bookkeeper.

To address this, one potential solution could be shading grpc & protobuf in the 
bookkeeper client that exposes these dependencies. This might resolve the 
compatibility issue in the bookkeeper client libraries.

I welcome your thoughts and suggestions on this matter.

Best regards,

Lari

Reply via email to