Read the docs
TI-2026-83351 Aliases CVE-2026-61694

go-xrpl silently decodes large positive MPT amounts as negative

Priority MEDIUM 51CWE-190Published · Updated

Key facts

Attack vector
Network
Privileges required
None
User interaction
None
Attack complexity
High
Impact type
—
Confidentiality · integrity · availability
None · Low · None
Fix status
No fix listed

Attack profile from CVSS 3.1 · CNA. Fix status from CNA.

Summary

go-xrpl through 0.0.0-20260618134614-cb77d640ee26 is a Go implementation of the XRP Ledger protocol. ParseMPTAmountBinary does not check that an eight-byte MPT magnitude fits in 63 bits, so amounts of at least 2^63 wrap to negative values (CWE-190). A remote attacker without privileges or user interaction can cause wrong amounts to be decoded, with high attack complexity and low integrity impact.

Written with Claude Haiku 5.5 from the sources below · 2026-11-06

Description from the CNA

go-xrpl is a Go implementation of the XRP Ledger protocol. In versions through the June 18, 2026 revision identified by the advisory, `ParseMPTAmountBinary` in `internal/ledger/state/ripple_state.go` converts the eight-byte MPT magnitude using `num.Int64()` without checking that it fits in 63 bits. A positive magnitude of at least 2^63 silently wraps into a negative amount without an error. `ParseEscrow` passes 33-byte `sfAmount` fields to the parser and stores `MPTRaw()` in `EscrowData.MPTAmount`, causing incorrect downstream calculations and divergence from rippled's interpretation of the same escrow entry. Independently, `readMPTAmount` in `internal/tx/ledgerfields/decode_stream.go` accepts over-limit magnitudes and surfaces large decimal strings without enforcing the maximum signed 64-bit value. The public codec in codec/binarycodec/types/amount.go already rejects these values, leaving the internal decoders inconsistent with that safe path. A source fix is available in commit 9dbd3935ed6c54f0232f2291edf9c012a0900dd5.

Why it matters now

Exploitation Proof of concept CISA SSVC · not in CISA KEV
EPSS 0.00275 20th percentileScored 2026-11-07
Fix No fix listed No fixed version in the sources yet

SSVC decision points

CISA ADP · SSVC 2.0.3

Exploitation
Poc
Automatable
No
Technical impact
Partial

The decision (Track, Attend, Act) also depends on your mission and well-being impact; see CISA's SSVC guide.

Affected products

VendorProductAffected versionsFixed inStatusSource
LeJamongo-xrplup to 0.0.0-20260618134614-cb77d640ee26—No fix listedCNA
  • go-xrpl VendorLeJamon Affected up to 0.0.0-20260618134614-cb77d640ee26 Fixed in — No fix listed CNA

Remediation

The sources list no fixed version for go-xrpl. A source fix is available in commit 9dbd393.

Written with Claude Haiku 5.5 from the sources below · 2026-11-06

Timeline

  1. 2026-10-30 Threatist record created from CVE-2026-61694
  2. 2026-11-06 CISA SSVC decision points changed
  3. 2026-11-06 Priority changed: LOW → MEDIUM

References

Sources

This product uses the NVD API but is not endorsed or certified by the NVD. Sources and licences