{"id":"CVE-2026-61694","aliases":[],"cve":{"records":[{"id":"CVE-2026-61694","source":"GitHub_M","state":"PUBLISHED","reasons":[],"replacements":[],"disputed":false,"unsupportedWhenAssigned":false,"reserved":"2026-07-10T18:36:58.850Z","published":"2026-10-30T19:55:05.539Z","modified":"2026-10-30T19:55:05.539Z"}],"publishers":[{"name":"GitHub_M","role":"CNA","organizationId":"a0819718-46f1-4df5-94e2-005712e83aaa","modified":"2026-10-30T19:55:05.539Z"}],"references":[{"url":"https://github.com/LeJamon/go-xrpl/security/advisories/GHSA-j5cw-qr86-mmv7","tags":["x_refsource_CONFIRM"],"source":"GitHub_M"},{"url":"https://github.com/LeJamon/go-xrpl/pull/1093","tags":["x_refsource_MISC"],"source":"GitHub_M"},{"url":"https://github.com/LeJamon/go-xrpl/commit/9dbd3935ed6c54f0232f2291edf9c012a0900dd5","tags":["x_refsource_MISC"],"source":"GitHub_M"}],"weaknesses":[{"id":"CWE-190","description":"CWE-190: Integer Overflow or Wraparound","source":"GitHub_M"}],"applicability":[],"prioritization":[]},"title":"go-xrpl: ParseMPTAmountBinary: positive MPT amount silently decoded as negative (int64 wrap)","titleSource":"GitHub_M","descriptionSource":"GitHub_M","description":"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.","score":3.7,"severity":"low","published":"2026-10-30T19:55:05.539Z","modified":"2026-10-30T19:55:05.539Z","withdrawn":false,"knownExploited":false,"affected":[],"products":[{"vendor":"LeJamon","name":"go-xrpl","platforms":[],"versions":[{"version":"<= 0.0.0-20260618134614-cb77d640ee26","status":"affected"}],"cpes":[],"source":"GitHub_M","url":"https://www.cve.org/CVERecord?id=CVE-2026-61694"}],"remediation":[],"references":["https://github.com/LeJamon/go-xrpl/security/advisories/GHSA-j5cw-qr86-mmv7","https://github.com/LeJamon/go-xrpl/pull/1093","https://github.com/LeJamon/go-xrpl/commit/9dbd3935ed6c54f0232f2291edf9c012a0900dd5"],"sources":[{"name":"CVE","id":"CVE-2026-61694","modified":"2026-10-30T19:55:05.539Z","url":"https://www.cve.org/CVERecord?id=CVE-2026-61694"}],"assessments":[{"source":"GitHub_M","vector":"CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:L/A:N","score":3.7}],"sourceAffected":[],"observedAt":"2026-10-30T21:08:48.409Z","kev":{"status":"not-listed","checkedAt":"2026-10-31T11:25:31.829Z"},"coverage":[{"source":"NVD","status":"not-checked"},{"source":"GHSA","status":"not-checked"},{"source":"EUVD","status":"not-checked"},{"source":"EPSS","status":"not-checked"}],"evidence":[],"aiSummary":{"text":"go-xrpl versions through 0.0.0-20260618134614-cb77d640ee26 have an integer overflow weakness in ParseMPTAmountBinary, silently decoding large positive MPT amounts as negative. This affects downstream calculations. Local access is required.","model":"@cf/meta/llama-3.3-70b-instruct-fp8-fast","generatedAt":"2026-10-31T05:21:10.275Z","sources":[{"name":"CVE","url":"https://www.cve.org/CVERecord?id=CVE-2026-61694"}]}}