libp2p-rust — официальный язык Rust. Реализация сетевого стека libp2p. До версии 0.17.1 сервер libp2p-rendezvous не имел ограничений на количество пространств имен, которые может зарегистрировать один узел.
Злоумышленник может просто продолжать регистрировать уникальные пространства имен в цикле, и сервер с радостью принимает каждое из них, выделяя память для каждой регистрации без какого-либо обратного вызова. Продолжайте делать это достаточно долго (или с несколькими узлами sybil), и серверный процесс будет уничтожен OOM. Эта уязвимость исправлена в версии 0.17.1.
Показать оригинальное описание (EN)
libp2p-rust is the official rust language Implementation of the libp2p networking stack. Prior to 0.17.1, libp2p-rendezvous server has no limit on how many namespaces a single peer can register. A malicious peer can just keep registering unique namespaces in a loop and the server happily accepts every single one allocating memory for each registration with no pushback. Keep doing this long enough (or with multiple sybil peers) and the server process gets OOM killed. This vulnerability is fixed in 0.17.1.
Характеристики атаки
Последствия
Строка CVSS v3.1