CVE-2026-44505
ŚrednieCVSS 5.3Prawdopodobieństwo exploitacji (EPSS)
Niskie ryzykoPercentyl 22 - wyżej niż 22% wszystkich znanych CVE
Streszczenie
Nimiq przed wersją 1.4.0 zawiera podatność w obsłudze zapytań DHT GET w komponencie network-libp2p. Gdy węzeł zwraca znaleziony rekord, a weryfikacja DHT kończy się błędem, funkcja handle_dht_get kończy działanie bez finalizacji oneshot i bez czyszczenia stanu zapytania, co prowadzi do zawieszenia wywołania Network::dht_get na czas nieokreślony.
Ocena ryzyka
Atakujący może spowodować zawieszenie się węzła sieci, co prowadzi do przerwania komunikacji i potencjalnej utraty dostępności usługi.
Rekomendacja
Zaleca się aktualizację Nimiq do wersji 1.4.0 lub nowszej.
Inne podatności w Nimiq
Zobacz wszystkie- CVE-2026-46369Wysokie
Nimiq to implementacja protokołu Proof-of-Stake w języku Rust oparta na algorytmie konsensusu Albatross. Do wersji 1.5.0 magazyn ważności używa ścisłego porównania dolnej granicy, które wygasa przechowywaną transakcję zbyt wcześnie względem Transaction::is_valid_at, co pozwala zdalnemu atakującemu na powtórzenie tej samej podpisanej transakcji w oknie bloków blocks_per_batch minus jeden i spowodowanie podwójnej aktualizacji salda nadawcy i odbiorcy. Problem naprawiono w wersji 1.5.1.
- CVE-2026-46545Wysokie
Podatność na atak DoS w Nimiq (implementacja Rust protokołu Proof-of-Stake) przed wersją 1.5.0 pozwala zdalnemu, nieuwierzytelnionemu atakującemu na crashnięcie węzła synchronizującego stan przez funkcję MerkleRadixTrie::put_chunk.
- CVE-2026-46543Średnie
W Nimiq przed wersją 1.5.0, zdalny peer może spowodować awarię dowolnego pełnego węzła, wysyłając wiadomość RequestBatchSet zawierającą skrót bloku genezy. Procedura obsługi wywołuje get_epoch_chunks, która iteruje wstecz przez bloki makro, a po osiągnięciu numeru bloku genezy następuje panika.
- CVE-2026-46542Średnie
W Nimiq (Rust implementation of Nimiq Proof-of-Stake protocol) przed wersją 1.4.0 istnieje podatność na odmowę usługi w kodzie delinearizacji Ed25519 multisig. Nieprawidłowy klucz publiczny może spowodować panikę i awarię procesu. Problem został naprawiony w wersji 1.4.0.
- CVE-2026-46541Wysokie
Podatność w implementacji Nimiq w języku Rust przed wersją 1.4.0 powoduje, że w funkcji handle_dht_get() akumulator DhtResults jest inicjalizowany tylko po pomyślnej weryfikacji pierwszego rekordu DHT. Jeśli pierwszy rekord pochodzi od złośliwego węzła i nie przejdzie weryfikacji, wszystkie kolejne poprawne rekordy są odrzucane.
- CVE-2026-46540Średnie
Nimiq (implementacja Rust) przed wersją 1.4.0 ma błąd w LightBlockchain::rebranch() – przy przejściu na łańcuch z blokiem makro nie aktualizuje wskaźników macro_head, election_head ani current_validators. Powoduje to nieprawidłową weryfikację kolejnych bloków i zatrzymanie postępu lekkiego klienta.
- CVE-2026-46539Średnie
W implementacji Nimiq przed wersją 1.4.0 występuje błąd logiczny w funkcji BlockInclusionProof::is_block_proven, która zwraca true bez weryfikacji kryptograficznej, gdy lista hopów jest pusta. Atakujący może sfałszować nagłówek MacroBlock dla określonej pozycji epoki i zostać zaakceptowany jako udowodniony.
Oryginalny opis (angielski, źródło NVD)
Nimiq is a Rust implementation of the Nimiq Proof-of-Stake protocol based on the Albatross consensus algorithm. network-libp2p handles kad get-record query progress in handle_dht_get (network-libp2p/src/swarm.rs). Prior to version 1.4.0, when a peer returns a FoundRecord, the code verifies the record via dht_verifier.verify(&record.record). On verifier error, handle_dht_get logs and returns early without completing the oneshot used by Network::dht_get, and without cleaning up per-query bookkeeping. Later query progress can hit the "DHT inconsistent state" path and also return without cleanup. Because Network::dht_get awaits the oneshot without a timeout, the caller future can hang indefinitely. This issue has been patched in version 1.4.0.

