Skip to content
OpenAdvisories
High · 7.5 CVE-2026-61695 EUVD-2026-85559GHSA-86wm-r4c5-2rc9

Wire Swift runtime: negative LENGTH_DELIMITED length in skipGroup() crashes any protobuf-decoding service

Published Sep 23, 2026 · Updated Sep 29, 2026 · Assigned by GitHub_M

Description

Wire provides gRPC and protocol buffers for Android, Kotlin, Swift, and Java. Prior to 6.4.1 and 7.0.0-alpha04, Wire's Swift runtime ProtoReader.skipGroup(expectedEndTag:unknownFieldsWriter:) accepts a negative length for a LENGTH_DELIMITED field inside an unknown START_GROUP field. ProtoReader.readData() forwards the negative count to ReadBuffer.readData(count:), whose upper-bound-only check permits the value to reach Foundation Data(bytes:count:) and trigger an unrecoverable process trap instead of a catchable ProtoDecoder.Error. Any Swift process decoding untrusted protobuf bytes can be crashed without authentication, user interaction, or knowledge of the target schema. This issue is fixed in versions 6.4.1 and 7.0.0-alpha04.

Affected products

VendorProductAffectedFixed
square wire < 6.4.1, >= 7.0.0-alpha01, < 7.0.0-alpha04 —

Affected packages

EcosystemPackageAffectedFixedRecord
SwiftURL github.com/square/wire < 6.4.1 6.4.1 GHSA-86wm-r4c5-2rc9

References