# CVE-2026-63126: Wire protobuf decoder integer overflow denial of service

Source: https://junglewise.ai/threats/cve-2026-63126-wire-protobuf-decoder-integer-overflow-denial-of-service  
Publisher: Junglewise Threat Intelligence, https://junglewise.ai/threats  
Published: 2026-09-16. Updated: 2026-09-25  
License: CC BY 4.0 with a link back

CVE-2026-63126 · Severity: high · CVSS 7.5 · Published 2026-09-16

Wire is a protobuf serialization library used by applications to decode structured data. When decoding malformed protobuf messages with oversized length fields, Wire's decoders fail with uncaught runtime exceptions (crashes) rather than normal error handling, allowing attackers to crash services by sending crafted protobuf payloads. The vulnerability affects both Kotlin and Swift versions when processing attacker-controlled protobuf bytes.

Technologies: [com.squareup.wire:wire-runtime (Maven)](https://junglewise.ai/threats/technologies/com-squareup-wire-wire-runtime). Vendors: [Maven](https://junglewise.ai/threats/vendors/maven).

## Quick answers

**Is CVE-2026-63126 exploited in the wild?** No. Junglewise Threat Intelligence has no report of CVE-2026-63126 being exploited in the wild.

**How severe is CVE-2026-63126?** High severity, with a CVSS score of 7.5, published 16 September 2026.

**Which products and versions are affected?** com.squareup.wire:wire-runtime (Maven) ECOSYSTEM:introduced=0,fixed=6.4.5.

**Is there a fix for CVE-2026-63126?** Yes. com.squareup.wire:wire-runtime (Maven): upgrade to 6.4.5 or later. Junglewise finds every place you run it, drafts the upgrade and applies it once you approve.

**How is CVE-2026-63126 attacked?** It is attacked over the network, in a software library.

**Am I affected by CVE-2026-63126?** Check whether you run com.squareup.wire:wire-runtime (Maven) at an affected version. Junglewise does that check for you around the clock: connect your code, cloud and domains, and it matches new vulnerabilities like this one against what you actually run and tells you when one reaches you.

## How to fix

- com.squareup.wire:wire-runtime (Maven): upgrade to 6.4.5 or later

  ```sh
  # set com.squareup.wire:wire-runtime to 6.4.5 in your pom.xml or build.gradle
  ```


## Technical details

Wire's protobuf decoders mix untrusted length decoding, validation, and cursor advancement in the wrong order. In Kotlin's ByteArrayProtoReader32.internalNextLengthDelimited(), an attacker-controlled varint length is read into a signed 32-bit Int. The original code rejected only negative lengths (< 0 check), but a length of 2147483647 passes this check and then overflows when added to the current position: pos + length wraps around to a negative limit. This invalid limit bypasses the subsequent if (limit > pushedLimit) guard and propagates to downstream string, bytes, skip, and scalar-read operations as an invalid range, triggering unchecked exceptions like IllegalArgumentException ("startIndex > endIndex") or ArrayIndexOutOfBoundsException. Swift's ReadBuffer.readVarint() dereferences pointer.pointee before validating that a byte exists, enabling out-of-bounds reads. Nested-message and packed-repeated decoders compute end pointers before proving the buffer contains the requested bytes. Size-delimited decoders convert untrusted UInt64 sizes to Int without overflow checking, risking traps on platforms where the value is unrepresentable. The fix enforces a uniform invariant: every decoded byte count must be non-negative and must fit within the current logical message boundary before any cursor, pointer, allocation, or slice is advanced. Patches: Kotlin (6.4.5, 7.0.0-alpha04), Swift runtime hardened in PR #3635.

## Affected products

- Square Wire 6.4.4 and earlier; 7.0.0-alpha01 to 7.0.0-alpha03

## Identifiers

- CVE-2026-63126
- GHSA-9rm7-3qhh-h2mc

## Timeline

- 2026-09-17: disclosed
- 2026-07-14: advisory: CVE-2026-63126 published
- 2026-09-17: patched: Patched in Wire 6.4.5 and 7.0.0-alpha04 via commit 25ebcabb9ab7f12d1d77af75ecbc51726fddc015 (PR #3635)

## References

- [https://api.github.com/users/thientd](https://api.github.com/users/thientd)
- [https://github.com/thientd](https://github.com/thientd)
- [https://api.github.com/users/thientd/gists%7B/gist_id%7D](https://api.github.com/users/thientd/gists%7B/gist_id%7D)
- [https://api.github.com/users/thientd/repos](https://api.github.com/users/thientd/repos)
- [https://avatars.githubusercontent.com/u/3240571?v=4](https://avatars.githubusercontent.com/u/3240571?v=4)
- [https://api.github.com/users/thientd/events%7B/privacy%7D](https://api.github.com/users/thientd/events%7B/privacy%7D)

## Related threats

- [Square Wire denial of service in wire-runtime skipGroup](https://junglewise.ai/threats/cve-2026-45799-square-wire-denial-of-service-in-wire-runtime-skipgroup)
- [Wire has Uncontrolled Recursion on Nested Groups](https://junglewise.ai/threats/cve-2024-58103-wire-has-uncontrolled-recursion-on-nested-groups)
