CVE-2026-40094
ŚrednieCVSS 4.3Prawdopodobieństwo exploitacji (EPSS)
Niskie ryzykoPercentyl 22 - wyżej niż 22% wszystkich znanych CVE
Streszczenie
W bibliotece nimiq-blockchain (wersje 1.3.0 i starsze) odkrycie sieciowe akceptuje podpisane aktualizacje PeerContact od niezaufanych peerów i przechowuje je w książce kontaktów, co może prowadzić do awarii książki adresowej. Atakujący może wysłać kontakt z pustą listą adresów, powodując panikę przy próbie dostępu do książki adresowej.
Ocena ryzyka
Atakujący może spowodować awarię węzła lub zadania RPC, co prowadzi do przerwania działania usługi (denial of service).
Rekomendacja
Zaktualizuj nimiq-blockchain do wersji 1.4.0 lub nowszej, która zawiera poprawkę.
Inne podatności w nimiq-blockchain
Zobacz wszystkie- CVE-2026-40092Wysokie
nimiq-blockchain przed wersją 1.4.0 zawiera podatność, w której złośliwy peer sieciowy może spowodować awarię pełnego węzła Nimiq poprzez opublikowanie spreparowanego rekordu Kademlia DHT. Rekord zawiera TaggedSigned<ValidatorRecord, KeyPair> z polem podpisu o długości innej niż 64 bajty, co powoduje panic przy wywołaniu unwrap() w implementacji Ed25519. Implementacja BLS poprawnie zwraca false, ale Ed25519 panikuje.
- CVE-2026-34066Średnie
W nimiq-blockchain przed wersją 1.3.0 funkcja HistoryStore::put_historic_txns używa assert! do egzekwowania niezmienników dotyczących HistoricTransaction.block_number. Podczas synchronizacji historii peer może wpłynąć na dane wejściowe przekazywane do Blockchain::push_history_sync, a zniekształcona lista historii może naruszyć te niezmienniki i wywołać panikę przed wykonaniem dalszych kontroli odrzucenia.
Oryginalny opis (angielski, źródło NVD)
nimiq-blockchain provides persistent block storage for Nimiq's Rust implementation. In versions 1.3.0 and prior, network-libp2p discovery accepts signed PeerContact updates from untrusted peers and stores them in a peer contact book, eventually leading to address book crash. A PeerContact can legally contain an empty addresses list (no intrinsic validation enforces non-empty). Later, PeerContactBook::known_peers builds an address book by taking addresses.first().expect("every peer should have at least one address"). If the attacker has inserted a signed peer contact with addresses=[], any call to get_address_book (RPC/web client) can panic and crash the node/RPC task depending on panic settings. This issue has been fixed in version 1.4.0.
Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS

