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.
Published: 2026-09-23
Score: 7.5 High
EPSS: n/a
KEV: No
Impact: Denial of Service
Action: Patch
AI Analysis

Impact

Wire provides protocol buffer support for several platforms, and its Swift runtime includes a decoding function that can be sent a negative length for a LENGTH_DELIMITED field. When the decoder processes such a value, the length is forwarded to a Foundation routine that accepts the negative count and the process terminates unrecoverably. This results in a crash of any Swift process that decodes untrusted protocol buffer data, providing an attacker with an efficient denial‑of‑service vector. The flaw does not require authentication or user interaction, and the crash cannot be recovered through the normal error handling path.

Affected Systems

The issue affects the Wire library distributed by Square under the product name Wire Swift runtime. All versions before 6.4.1 and before 7.0.0‑alpha04 are impacted, including prior releases used in gRPC implementations for Android, Kotlin, Swift, and Java. The flaw is not present in the patched releases 6.4.1 and 7.0.0‑alpha04 or later.

Risk and Exploitability

The CVSS score of 7.5 indicates a high severity, and although EPSS data is not available, the lack of authentication requirements and the ability to trigger a crash from any malformed input make this a practical denial‑of‑service risk. The vulnerability is not listed in CISA’s KEV catalog, but the lack of mitigation in the runtime means it remains exploitable in all affected deployments. An attacker can exploit this by sending protocol buffer messages with a negative length field to any service or application that uses the vulnerable Wire runtime to decode incoming data.

Generated by OpenCVE AI on September 23, 2026 at 20:53 UTC.

Remediation

No vendor fix or workaround currently provided.

OpenCVE Recommended Actions

  • Upgrade the Wire Swift runtime to version 6.4.1 or later, or to 7.0.0‑alpha04 or newer.
  • Ensure all components that depend on Wire, such as gRPC or other protocol‑buffer‑based services, are updated to a patched release before redeployment.
  • Where immediate update is not possible, add a validation layer to reject or sanitize protocol‑buffer data that contains negative length fields before feeding it to the decoder.

Generated by OpenCVE AI on September 23, 2026 at 20:53 UTC.

Tracking

Sign in to view the affected projects.

Advisories
Source ID Title
Github GHSA Github GHSA GHSA-86wm-r4c5-2rc9 Wire Swift runtime: negative LENGTH_DELIMITED length in skipGroup() crashes any protobuf-decoding service
History

Wed, 23 Sep 2026 22:00:00 +0000

Type Values Removed Values Added
First Time appeared Square
Square wire
Vendors & Products Square
Square wire

Wed, 23 Sep 2026 19:00:00 +0000

Type Values Removed Values Added
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.
Title Wire Swift runtime: negative LENGTH_DELIMITED length in skipGroup() crashes any protobuf-decoding service
Weaknesses CWE-129
References
Metrics cvssV3_1

{'score': 7.5, 'vector': 'CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H'}


cve-icon MITRE

Status: PUBLISHED

Assigner: GitHub_M

Published:

Updated: 2026-09-23T18:44:11.336Z

Reserved: 2026-07-10T18:36:58.850Z

Link: CVE-2026-61695

cve-icon Vulnrichment

No data.

cve-icon NVD

Status : Received

Published: 2026-09-23T19:17:32.810

Modified: 2026-09-23T19:17:32.810

Link: CVE-2026-61695

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-09-23T21:45:02Z

Weaknesses
  • CWE-129

    Improper Validation of Array Index