CVE-2026-45799

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.
Configurations

Configuration 1 (hide)

OR cpe:2.3:a:squareup:wire:*:*:*:*:*:*:*:*
cpe:2.3:a:squareup:wire:7.0.0:alpha01:*:*:*:*:*:*
cpe:2.3:a:squareup:wire:7.0.0:alpha02:*:*:*:*:*:*

History

24 Oct 2026, 20:10

Type Values Removed Values Added
Summary
  • (es) Wire proporciona gRPC y búferes de protocolo para Android, Kotlin, Swift y Java. Antes de las versiones 6.3.0 y 7.0.0-alpha03, ByteArrayProtoReader32.skipGroup() y ProtoReader.skipGroup() en wire-runtime no validan que la longitud de un campo LENGTH_DELIMITED sea no negativa antes de skip(), permitiendo que una codificación varint de protobuf manipulada que representa -128 como un Int con signo haga que skip(-128) mueva la posición interna a un valor negativo y haga que la siguiente llamada a readByte() lance una ArrayIndexOutOfBoundsException en lugar de la IOException o ProtocolException documentada, lo que puede provocar la caída de servicios que utilizan ProtoAdapter.decode(byte[]) con cargas útiles no confiables. Este problema está solucionado en las versiones 6.3.0 y 7.0.0-alpha03.

Information

Published : 2026-07-17 20:17

Updated : 2026-10-24 20:10


NVD link : CVE-2026-45799

Mitre link : CVE-2026-45799

CVE.ORG link : CVE-2026-45799


JSON object : View

Products Affected

squareup

  • wire
CWE
CWE-129

Improper Validation of Array Index