CVE-2026-45799CWE-129

CVE-2026-45799

High · published July 18, 2026

CVSS v3.1
7.5
EPSS
1%
Percentile
53.7
In the wild
Unconfirmed
What it is

Wire provides gRPC and protocol buffers for Android, Kotlin, Swift, and Java. Prior to 6.3.0 and 7.0.0-alpha03, ByteArrayProtoReader32.skipGroup() and ProtoReader.skipGroup() in wire-runtime do not validate that a LENGTH_DELIMITED field length is non-negative before skip(), allowing a crafted protobuf varint encoding -128 as a signed Int to make skip(-128) move the internal position negative and make the next readByte() throw ArrayIndexOutOfBoundsException instead of the documented IOException or ProtocolException, which can crash services using ProtoAdapter.decode(byte[]) on untrusted payloads. This issue is fixed in versions 6.3.0 and 7.0.0-alpha03.

The record
Technical detail
CVSS v3.1
7.5 · HIGH
Vector
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
CVSS v4.0
Not supplied
EPSS
0.00728 · 53.7th percentile
Weakness
CWE-129 · Improper Validation of Array Index
Published
2026-07-18T00:17Z
Affected products (3)
ProductVersionsFixed in
squareup/wire< 6.3.06.3.0
squareup/wireall versions—
squareup/wireall versions—
References (8)
EPSS history
Timeline
  • 17 JUL 19:49Z
    Wire: skipGroup() missing negative-length check allows 10-byte payload to crash any Wire-decoding service
    cvelistv5