CVE-2026-61694 in go-xrpl
Сводка
по VulDB • 30.10.2026
go-xrpl — это реализация протокола XRP Ledger на языке Go. В версиях вплоть до исправления от 18 июня 2026 года, указанного в advisory, функция `ParseMPTAmountBinary` из файла `internal/ledger/state/ripple_state.go` преобразует восьмибайтовую величину MPT с помощью `num.Int64()` без проверки того, что она помещается в 63 бита. Положительная величина размером не менее $2^{63}$ молча оборачивается (wraps) в отрицательное значение без выдачи ошибки. Функция `ParseEscrow` передает парсеру поля `sfAmount` длиной 33 байта и сохраняет результат вызова `MPTRaw()` в поле `EscrowData.MPTAmount`, что приводит к некорректным вычислениям на последующих этапах и расхождению с интерпретацией аналогичной записи эскроу (escrow entry) в rippled. Независимо от этого, функция `readMPTAmount` из файла `internal/tx/ledgerfields/decode_stream.go` принимает величины за пределами допустимого предела и выводит большие десятичные строки без обеспечения соблюдения максимального значения для знаковых 64-битных чисел. Публичный кодек в файле `codec/binarycodec/types/amount.go` уже отклоняет такие значения, оставляя внутренние декодеры несогласованными с этим безопасным путем обработки. Исправление исходного кода доступно в коммите 9dbd3935ed6c54f0232f2291edf9c012a0900dd5.
If you want to get best quality of vulnerability data, you may have to visit VulDB.