Skip to content

Bumped protobuf-javalite to 3.25.9 for CVE-2024-7254 - #1002

Open
adrian-niculescu wants to merge 1 commit into
livekit:mainfrom
adrian-niculescu:bump-protobuf-javalite-3.25.5
Open

Bumped protobuf-javalite to 3.25.9 for CVE-2024-7254#1002
adrian-niculescu wants to merge 1 commit into
livekit:mainfrom
adrian-niculescu:bump-protobuf-javalite-3.25.5

Conversation

@adrian-niculescu

@adrian-niculescu adrian-niculescu commented Aug 16, 2026

Copy link
Copy Markdown
Contributor

Fixes #1001.

protobuf-javalite 3.22.0 is affected by GHSA-735f-pc8j-v9w8 / CVE-2024-7254, fixed in 3.25.5. The parser recurses without bound on deeply nested groups and unknown fields and throws StackOverflowError. RTCEngine.onMessage calls LivekitModels.DataPacket.parseFrom on the data channel bytes, so a remote participant controls the input, and the published POM declares the dependency at runtime scope so it lands on every consuming app's runtime classpath.

This goes to 3.25.9, the latest release on that line, rather than stopping at the 3.25.5 the advisory names. I can take it to 4.x instead if you prefer, though that renumbering also brings the gencode runtime version check, so it wants protoc moved along with it.

Only the runtime pin moves. protobuf stays at 3.22.0: it selects protoc and the protobuf-java jar that descriptorProtoSource unzips descriptor.proto out of. Neither reaches a consumer classpath, and 3.22.0 gencode on a 3.25.9 runtime is the supported direction.

./gradlew assemble test passes, including the DataPacket.parseFrom round trips in RTCEngineMockE2ETest and RoomOutgoingDataStreamMockE2ETest, which are what would surface a gencode/runtime mismatch. The generated POM now declares protobuf-javalite 3.25.9 at runtime scope.

@changeset-bot

changeset-bot Bot commented Aug 16, 2026

Copy link
Copy Markdown

🦋 Changeset detected

Latest commit: 1b7413c

The changes in this PR will be included in the next version bump.

This PR includes changesets to release 1 package
Name Type
client-sdk-android Patch

Not sure what this means? Click here to learn what changesets are.

Click here if you're a maintainer who wants to add another changeset to this PR

@devin-ai-integration devin-ai-integration Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

✅ Devin Review: No Issues Found

Devin Review analyzed this PR and found no bugs or issues to report.

Open in Devin Review

The parser in protobuf-javalite before 3.25.5 recurses without bound on
deeply nested groups and unknown fields, throwing StackOverflowError. The
SDK parses data channel payloads with LivekitModels.DataPacket.parseFrom
in RTCEngine.onMessage, so the input is remote participant controlled.
The dependency is also declared at runtime scope in the published POM, so
it reaches the runtime classpath of every consuming app. 3.25.9 is the
latest release on that line.

Only the runtime pin moves. protobuf stays at 3.22.0: it selects protoc
and the protobuf-java jar that descriptorProtoSource unzips
descriptor.proto out of, neither of which reaches a consumer classpath,
and 3.22.0 gencode on a 3.25.9 runtime is the supported direction.
@adrian-niculescu
adrian-niculescu force-pushed the bump-protobuf-javalite-3.25.5 branch from ac8e547 to 1b7413c Compare August 16, 2026 20:05
@adrian-niculescu adrian-niculescu changed the title Bumped protobuf-javalite to 3.25.5 for CVE-2024-7254 Bumped protobuf-javalite to 3.25.9 for CVE-2024-7254 Aug 16, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

protobuf-javalite 3.22.0 is affected by CVE-2024-7254

1 participant