Skip to main content

Square Wire CVE-2026-63126

| EUVDEUVD-2026-80937 HIGH
Integer Overflow or Wraparound (CWE-190)
2026-09-16 GitHub_M GHSA-9rm7-3qhh-h2mc
7.5
CVSS 3.1 · Vendor: GitHub_M
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Reach endpoint decoding untrusted protobuf
  2. Delivery
    Craft message with oversized length varint
  3. Exploit
    Length wraps cursor past logical boundary
  4. Execution
    Escape negative-length check
  5. Persist
    Trigger trap or huge allocation
  6. Impact
    Denial of service

Vulnerability Assessment

Weakness
CWE
ASVS 5.0
V15 - Secure Coding and Architecture Integer overflow checks
MITRE ATT&CK

1 technique across 1 tactic: Execution

The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up.

Exploitation Conditions

Exploitation requires that the target application uses Square Wire (< 6.4.5, or the 7.0.0 pre-release line before 7.0.0-alpha04) to decode protobuf bytes that an attacker can influence - specifically via Kotlin ProtoAdapter.decode(ByteArray/ByteString) (ByteArrayProtoReader32.internalNextLengthDelimited), or the Swift ProtoDecoder.decodeSizeDelimited / ProtoReader / ReadBuffer.readVarint paths. The malformed input is a length-delimited field whose positive oversized length varint wraps the cursor to a negative limit. No authentication or user interaction is needed (PR:N/UI:N). The practical limiting factor is reachability: the attacker must be able to deliver crafted protobuf bytes to a decode call, so risk is highest for network services parsing untrusted messages and lower for apps that only decode trusted/local data. Impact is confined to availability (crash/allocation exhaustion); no data exposure or code execution.

Impact

The CVSS 3.1 vector (AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H, base 7.5) is internally consistent with the description: a low-complexity, unauthenticated, remote issue with availability-only impact and no confidentiality, integrity, or code-execution consequences (explicitly stated by the vendor). No EPSS score, no CISA KEV listing, and no public exploit code were provided, so all three exploitation-likelihood signals are absent or negative. The AV:N rating is conditional on how Wire is embedded: it is a protobuf/gRPC parsing library, so network reachability depends on the host application actually decoding attacker-supplied protobuf bytes over the wire (a common but not universal deployment). The realistic priority is moderate-to-low: this is a genuine DoS in a widely-used library, easy to trigger where reachable, but bounded to availability with no evidence of active exploitation. Treat it as a dependency-hygiene patch rather than an emergency; teams parsing untrusted protobuf from network peers should prioritize higher. CWE-190 (integer overflow) matches the described pos+length wraparound to a negative limit.

Exploit ScenarioDerived

An attacker sends a crafted protobuf message with a positive oversized length-delimited field to a service or app that decodes it via Wire (e.g. ProtoAdapter.decode in Kotlin or ProtoDecoder.decodeSizeDelimited in Swift). The oversized length wraps the cursor to a negative limit, escaping the negative-length check, causing an unchecked exception/trap, out-of-bounds behavior, or an enormous allocation that crashes or exhausts the process. No public weaponized exploit is identified, though the fix PR ships test vectors (e.g. UInt64.max size varint) that demonstrate the malformed inputs.

This Week Schedule remediation this week. Why: HIGH severity (CVSS 7.0-8.9).
Patch available 0.7% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – Sep 16, 2026

Denial of service in Square Wire (the gRPC/protobuf runtime for Kotlin, Java, Swift, and Android) affects all releases before 6.4.5 and the 7.0.0 pre-release line before 7.0.0-alpha04, where attacker-supplied protobuf bytes containing an oversized length-delimited field can crash or exhaust memory in the decoder. The flaw is remotely reachable and unauthenticated (CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H, base 7.5), with impact limited strictly to availability - the vendor states there is no confidentiality, integrity, or code-execution consequence. Exploitation requires that a target service actually decodes untrusted Wire protobuf messages; no public exploit code was identified at time of analysis and the issue does not appear in CISA KEV, so risk is concentrated in network-facing endpoints that parse arbitrary protobuf payloads.

RemediationAI

Vendor-released patch: upgrade to Square Wire 6.4.5 (stable line) or 7.0.0-alpha04 (7.0.0 pre-release line), per the advisory at https://github.com/square/wire/security/advisories/GHSA-9rm7-3qhh-h2mc and the releases at https://github.com/square/wire/releases/tag/6.4.5 and https://github.com/square/wire/releases/tag/7.0.0-alpha04; the code changes are in PR https://github.com/square/wire/pull/3635 (commits 082d5d83cec57ef68f1dd7d3e3d1d641c1fb670f and 25ebcabb9ab7f12d1d77af75ecbc51726fddc015). If upgrading is not immediately possible, apply compensating controls at the message boundary rather than inside the decoder: enforce an explicit maximum message size on the transport or gRPC layer (max inbound message length) and reject any frame whose declared length-delimited size exceeds the actual remaining payload - this prevents the wrapped cursor from ever being reachable, at the cost of capping legitimate large messages and requiring configuration changes on every ingress path. Additionally, wrap all decode() calls in exception/error handling and isolate decoding in a separate process or worker pool so that unchecked exceptions, traps, or allocation spikes degrade only that worker rather than the host service; the trade-off is added process-management complexity and modest latency overhead. Do not rely on decoding only trusted data as a mitigation for network-exposed services, since the entire issue is reachability-dependent and any externally influenced protobuf input is sufficient to trigger it.

Affected VersionsENISA

Wire < 6.4.5
Wire 7.0.0-alpha01, < 7.0.0-alpha04

Affected Packages

maven com.squareup.wire:wire-runtime fix: 6.4.5, 7.0.0-alpha04
euvd wire fix: 6.4.5
euvd wire_7_0_0_alpha01 fix: 7.0.0-alpha04

Source: OSV (Open Source Vulnerabilities)

Affects your stack

Affects 3 packages in maven, euvd

Checking this CVE against your own stacks and servers is part of the Basic plan and up.

Technical ContextAI · show details

Wire implements protocol buffers and gRPC bindings across Kotlin/Java, Swift, and Android, and the defect is a classic integer-overflow-to-bounds-check-bypass (CWE-190) in the low-level length-delimited read path. In the Kotlin runtime, ProtoAdapter.decode(ByteArray) and ProtoAdapter.decode(ByteString) route through ByteArrayProtoReader32.internalNextLengthDelimited(), where a positive oversized length value can wrap the computed pos + length cursor past integer range into a negative limit, evading the existing negative-length guard. The same class of defect appears in sibling paths: ProtoReader, ReadBuffer.readVarint(), ReadBuffer.verifyAdditional(count:), packed-repeated and nested-message decoding, and Swift's ProtoDecoder.decodeSizeDelimited(_:from:), which could perform pointer arithmetic, reserve capacity, or convert a size that is unrepresentable in the target integer width before ever proving the requested bytes are present in the buffer. The upstream fix hardens this by replacing raw pointer arithmetic with a throwing endPointer(count:) helper that computes remaining bytes (end - pointer), asserts count >= 0, remainingCount >= 0, and count <= remainingCount, and by validating that varint sizes are exactly representable (Int(exactly:)) before any advance, read, or allocation. The affected package is tracked as cpe:2.3:a:square:wire:*:*:*:*:*:*:*:*.

Know when Wire gets its next vulnerability

  • Watch products and get an email when something new is published
  • Check this CVE against your own stack and servers
  • Exploit and PoC references, threat intelligence from 22 sources

No credit card · 7-day full trial

Severity by source

Vendor (GitHub_M) PRIMARY 7.5 HIGH
AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
vuln.today AI 7.5 HIGH

Unauthenticated low-complexity decode of attacker-supplied protobuf yields availability-only impact; AV:N assumes network-reachable decoding, C/I:N per vendor's DoS-only finding.

3.1 AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
4.0 AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N

Primary rating from Vendor (GitHub_M).

CVSS VectorVendor: GitHub_M

Attack Vector
Network
Attack Complexity
Low
Privileges Required
None
User Interaction
None
Scope
Unchanged
Confidentiality
None
Integrity
None
Availability
High

Lifecycle Timeline

2
Patch available
Sep 16, 2026 - 19:19 EUVD
CVE Published
Sep 16, 2026 - 18:13 cve.org
HIGH 7.5

DescriptionCVE.org

Wire provides gRPC and protocol buffers for Android, Kotlin, Swift, and Java. Prior to 6.4.5 and 7.0.0-alpha04, Wire protobuf readers do not consistently validate attacker-controlled lengths against the current logical message boundary before advancing cursors, pointers, limits, slices, or allocations. In Kotlin, ProtoAdapter.decode(ByteArray) and ProtoAdapter.decode(ByteString) use ByteArrayProtoReader32.internalNextLengthDelimited(), where a positive oversized length can wrap pos + length to a negative limit and escape the existing negative-length check. Related ProtoReader, ReadBuffer.readVarint(), ReadBuffer.verifyAdditional(count:), packed-repeated, nested-message, and ProtoDecoder.decodeSizeDelimited(_:from:) paths can cross logical boundaries, perform pointer arithmetic, reserve capacity, or convert an unrepresentable size before proving the requested bytes exist. An attacker who supplies malformed protobuf bytes can cause unchecked exceptions, traps, out-of-bounds behavior, or excessive allocation, resulting in denial of service without known confidentiality, integrity, or code-execution impact. This issue is fixed in versions 6.4.5 and 7.0.0-alpha04.

Blast Radius

ecosystem impact
† from your stack dependencies † transitive graph · vuln.today resolves 4-path depth
  • 3 maven packages depend on com.squareup.wire:wire-runtime (2 direct, 1 indirect)

Ecosystem-wide dependent count for version 7.0.0-alpha01.

Technical POC Analysis

CWE-190 (integer overflow / wraparound).

Full technical POC analysis - root cause, step-by-step exploitation and patch breakdown - is part of the Pro and Business plans.

Executive ViewAI

Why It Matters

A denial-of-service flaw in Square Wire - the gRPC/protobuf runtime embedded in Kotlin, Java, Swift, and Android services - allows unauthenticated network traffic to crash or exhaust memory in any service that decodes untrusted Wire protobuf messages. The vendor confirms the impact is confined to availability, with no data exposure, tampering, or code-execution consequence. Leadership should care because customer- or partner-facing endpoints built on this library can be knocked offline by malformed payloads, even though no public exploit code or active exploitation has been identified at this time.

Business Impact: High
Compensating Controls

Vendor-released patch: upgrade to Square Wire 6.4.5, or 7.0.0-alpha04 on the 7.0.0 pre-release line. Until upgrades are complete, enforce maximum request and message sizes plus rate limits at the network edge, cap memory and set restart policies on decoding services, and avoid decoding protobuf from untrusted sources where feasible.

Threat Intelligence Overview

EPSS Score
0.7%
Top 49% exploitable
Prevalence
Medium
popular Square protobuf/gRPC library for Android/Kotlin/Swift/Java, but library-embedded not ubiquitous infra
Threat Intel
1
1 source
Exploit
POC
Public exploit code exists
Data Quality
6 sources
Confidence: High
EUVD NVD CVE.org EPSS Vulnrichment GHSA GitHub

How this decision was reached

The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.

SignalValue
Severity HIGH
CISA KEV No
Public POC Yes
EPSS 0.7%
Patch available Yes
Active threat No
Deciding rule
HIGH severity (CVSS 7.0-8.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision
Scheduled
Exploitation
Poc
System Exposure· derived
Open
Automatable
Yes
Human Impact
High
Technical Impact
Partial

Priority Score

59
Low Medium High Critical
KEV: 0
EPSS: +1
CVSS: +38
PoC: +20
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

Integer overflow occurs when an arithmetic operation produces a result that exceeds the maximum value a given integer type can store.

Denial of Service attacks render applications or systems unavailable by overwhelming resources or triggering failure conditions.

More in Wire

View all
CVE-2020-27853 CRITICAL POC
9.8 Oct 27

Wire before 2020-10-16 allows remote attackers to cause a denial of service (application crash) or possibly execute arbi

CVE-2021-21382 CRITICAL POC
9.6 Jun 11

Restund is an open source NAT traversal server. Rated critical severity (CVSS 9.6), this vulnerability is remotely explo

CVE-2021-29508 CRITICAL POC
9.1 May 11

Due to how Wire handles type information in its serialization format, malicious payloads can be passed to a deserializer

CVE-2020-15258 HIGH POC
8.0 Oct 16

In Wire before 3.20.x, `shell.openExternal` was used without checking the URL. Rated high severity (CVSS 8.0), this vuln

CVE-2018-8909 HIGH POC
7.5 Mar 22

The Wire application before 2018-03-07 for Android allows attackers to write to pathnames outside of the downloads direc

CVE-2021-32683 MEDIUM POC
6.1 Jun 15

wire-webapp is the web version of Wire, an open-source messenger. Rated medium severity (CVSS 6.1), this vulnerability i

CVE-2021-41100 CRITICAL
9.8 Oct 04

Wire-server is the backing server for the open source wire secure messaging application. Rated critical severity (CVSS 9

CVE-2021-41093 CRITICAL
9.8 Oct 04

Wire is an open source secure messenger. Rated critical severity (CVSS 9.8), this vulnerability is remotely exploitable,

CVE-2023-48221 HIGH
8.8 Nov 20

wire-avs provides Audio, Visual, and Signaling (AVS) functionality sure the secure messaging software Wire. Rated high s

CVE-2022-43673 MEDIUM POC
4.7 Nov 18

Wire through 3.22.3993 on Windows advertises deletion of sent messages; nonetheless, all messages can be retrieved (for

CVE-2022-31122 HIGH
8.1 Oct 18

Wire is an encrypted communication and collaboration platform. Rated high severity (CVSS 8.1), this vulnerability is rem

CVE-2022-23610 HIGH
8.1 Mar 16

wire-server provides back end services for Wire, an open source messenger. Rated high severity (CVSS 8.1), this vulnerab

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy