Repository navigation
Update libwebrtc to 150.7871.04 (drop compromised eMudhra roots) - #1043
Merged
Merged
Conversation
150.7871.04 drops the AAA Certificate Services root from libwebrtc's compiled-in TURN/TLS trust anchors (rtc_base/ssl_roots.h), so certificates issued by the compromised eMudhra intermediates that are cross-signed by it are rejected. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01BsJ5Refi6x7GqXMqH4gJ4i
🦋 Changeset detectedLatest commit: fe3cf0b The changes in this PR will be included in the next version bump. This PR includes changesets to release 1 package
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 |
Contributor
Author
|
The fix is the release itself. Once webrtc-sdk/webrtc-build#83 merges and Generated by Claude Code |
Contributor
|
Dependency diff: -\--- io.github.webrtc-sdk:android-prefixed:150.7871.01
+\--- io.github.webrtc-sdk:android-prefixed:150.7871.04 FAILED |
Contributor
|
Diffuse output: AARJAR |
erikhortsch
marked this pull request as ready for review
October 23, 2026 07:27
erikhortsch
requested review from
MaxHeimbrock,
davidliu and
xianshijing-lk
as code owners
October 23, 2026 07:27
davidliu
approved these changes
Oct 23, 2026
Open
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What changed
gradle/libs.versions.toml:webrtc(io.github.webrtc-sdk:android-prefixed)150.7871.01→150.7871.04. This is the only pin in the repo..changeset/webrtc-150-7871-04-emudhra-roots.md: patch changeset forclient-sdk-android.Why
On 2026-10-20 the keys of eight eMudhra intermediate CAs were disclosed as compromised. These intermediates are cross-signed by
AAA Certificate Services. libwebrtc checks TURN/TLS server certificates against its own compiled-in roots (rtc_base/ssl_roots.h). In 150.7871.01 that list still contains AAA, so a TURN/TLS server that presents a certificate from one of these intermediates is accepted. All 7 AAA-cross-signed test chains from the disclosure passopenssl verifyagainst the .01 roots, and none pass against the refreshed roots.150.7871.04 includes webrtc-sdk/webrtc
fd5c784("Update ssl_roots.h (#317)", a cherry-pick of upstream webrtc-review 510080), which removes AAA from that list. It was built from webrtc-sdk/webrtc-build#83 and is on Maven Central.Other changes in .04 (Android-relevant, since .01)
network_security_confighad adomain-config. Apps with such a config could fail TURN/TLS against servers that only the OS store trusts, and this fix resolves that.AES_CM_128_HMAC_SHA1_80switch onCryptoOptions(SVC Codec support #304)key_sizetoKeyProviderOptions(128 default, 256 opt-in) (Resume remote participant video when app going background to foreground #302)raw_key/derived_keyleaking viaLS_INFO(RoomEvent.ActiveSpeakersChange Speakers list not right #311)AddTransceiverwithINVALID_STATEon a closed PeerConnection (Fix: Sometimes, the reconnection logic can hang on a flaky internet connection. #301)prewarmRecordingruns after a failed recorder init (Window Switch like Whatsapp (Small window to Big and Big to small) #288)API compatibility
CI builds against the published 150.7871.04. Diffuse shows one method change in the bundled WebRTC classes, and no other differences in the SDK AAR.
JavaAudioDeviceModule.prewarmRecording(AudioProcessingOptions)(030ad13): the return type changes fromvoidtoboolean.AudioRecordPrewarmer.kt:49ignores the result, so source is unaffected. The method ships inside the same AAR the SDK depends on, so there is no binary mismatch for apps.FrameCryptorFactory.createFrameCryptorKeyProvider(a545de4): the existing 8-argument overload is kept and calls a new 9-argument overload (..., int keySize) withkeySize = 128. The SDK calls the 8-argument form (KeyProvider.kt:58), so E2EE keeps 128-bit keys.CryptoOptions(5d83551): addsBuilder.setEnableAes128Sha1_80CryptoCipher(defaulttrue) and a getter. The SDK only copies an existingCryptoOptions(PeerConnectionExt.kt:61), so this is purely additive for us.Generated by Claude Code