Skip to content
GoogleGHSA-mqrp-j8r8-j8px

Envoy: ALTS Bug

MediumPublished Nov 29, 2023

### Summary The ALTS transport socket extension enables Envoys running on GCP to establish ALTS connections. If a client attempts to simultaneously establish more than 2 ALTS connections to the Envoy, the Envoy will hang (becoming unusable) and/or crash. ### Severity Moderate - If there are any users of the ALTS transport socket extension in Envoy, then this bug poses a critical risk to these users because any peer can crash the Envoy after establishing a handful of TCP connections to the Envoy. However, because the bug effectively makes the ALTS transport socket extension unusable in relatively common use cases, we suspect that the ALTS transport socket extension has little-to-no usage. ### Proof of Concept - Start an Envoy on a GCP VM. The Envoy must listen on some port and have the ALTS transport socket extension enabled for that listener. The [handshaker_service](https://github.com/envoyproxy/envoy/blob/b3f7692226cc960f73619ddbc0b7148e21e25eae/api/envoy/extensions/transport_sockets/alts/v3/alts.proto#L27) string in the extension must be set to “metadata.google.internal:8080”. - From a GCP VM (could be the same one), attempt to establish more than 2 ALTS connections to the En...

GitHub advisory

Affected versions

PackageAffectedFixed in
ALTS
Product
< https://github.com/envoyproxy/envoy/pull/29803https://github.com/envoyproxy/envoy/pull/29803
Details and references

### Summary The ALTS transport socket extension enables Envoys running on GCP to establish ALTS connections. If a client attempts to simultaneously establish more than 2 ALTS connections to the Envoy, the Envoy will hang (becoming unusable) and/or crash. ### Severity Moderate - If there are any users of the ALTS transport socket extension in Envoy, then this bug poses a critical risk to these users because any peer can crash the Envoy after establishing a handful of TCP connections to the Envoy. However, because the bug effectively makes the ALTS transport socket extension unusable in relatively common use cases, we suspect that the ALTS transport socket extension has little-to-no usage. ### Proof of Concept - Start an Envoy on a GCP VM. The Envoy must listen on some port and have the ALTS transport socket extension enabled for that listener. The [handshaker_service](https://github.com/envoyproxy/envoy/blob/b3f7692226cc960f73619ddbc0b7148e21e25eae/api/envoy/extensions/transport_sockets/alts/v3/alts.proto#L27) string in the extension must be set to “metadata.google.internal:8080”. - From a GCP VM (could be the same one), attempt to establish more than 2 ALTS connections to the Envoy concurrently. The Envoy will hang or crash, and no more than 2 of the ALTS connections will succeed. ### Further Analysis We have built a fix, which is a major rewrite of the ALTS transport socket extension. ### Timeline **Date reported**: 08/17/2023 **Date fixed**: **Date disclosed**: 11/15/2023

Severity from
GitHub (reviewed advisory)

More Google advisories

All Google
Advisory
*This advisory is also published as [RUSTSEC-2023-0074]
LowDec 14, 2023
Microsoft Edge: Arbitrary Perms
MediumDec 14, 2023
Oracle VM VirtualBox: Integer Overflow Leading To Out-Of-Bounds Read in virtioNetR3CtrlMac
HighNov 16, 2023
Oracle VM VirtualBox: Intra-Object Out-Of-Bounds Write in virtioNetR3CtrlMultiQueue
HighNov 16, 2023
Oracle VM VirtualBox: Intra-Object Out-Of-Bounds Write in virtioNetR3CtrlVlan
HighNov 16, 2023
Java: DoS Vulnerability in JSON-JAVA
HighNov 14, 2023

Critical advisories by email

Wednesdays: the week’s critical and high advisories in the AI and data stack, with the fixed versions. Only in weeks that have some.

Double opt-in. Unsubscribe any time.