go-ipld-prime — это реализация интерфейсов спецификации межпланетных связанных данных (IPLD), реализация кодека IPLD для CBOR и JSON с батарейным питанием, а также инструменты для основных операций с объектами IPLD. Данные кодирования, содержащие тип Bytes Node, передадут токен Bytes кодировщику JSON, который запаникует, поскольку не ожидает получения токенов Bytes. Такое кодирование следует рассматривать как ошибку, поскольку обычный JSON не может кодировать байты.
Это влияет только на использование кодека json. `dag-json` не затрагивается. Использование json в качестве декодера не пострадает. Эта проблема исправлена в версии 0.19.0.
В качестве обходного пути можно предпочесть кодек dag-json, который способен кодировать байты.
Показать оригинальное описание (EN)
go-ipld-prime is an implementation of the InterPlanetary Linked Data (IPLD) spec interfaces, a batteries-included codec implementations of IPLD for CBOR and JSON, and tooling for basic operations on IPLD objects. Encoding data which contains a Bytes kind Node will pass a Bytes token to the JSON encoder which will panic as it doesn't expect to receive Bytes tokens. Such an encode should be treated as an error, as plain JSON should not be able to encode Bytes. This only impacts uses of the `json` codec. `dag-json` is not impacted. Use of `json` as a decoder is not impacted. This issue is fixed in v0.19.0. As a workaround, one may prefer the `dag-json` codec, which has the ability to encode bytes.
Характеристики атаки
Последствия
Строка CVSS v3.1
Тип уязвимости (CWE)
Уязвимые продукты 1
| Конфигурация | От (включительно) | До (исключительно) |
|---|---|---|
|
Protocol Go-Ipld-Prime
cpe:2.3:a:protocol:go-ipld-prime:*:*:*:*:*:go:*:*
|
— |
0.19.0
|