CVE-2026-34061
ŚrednieCVSS 4.9Prawdopodobieństwo exploitacji (EPSS)
Niskie ryzykoPercentyl 9 - wyżej niż 9% wszystkich znanych CVE
Streszczenie
nimiq/core-rs-albatross przed wersją 1.3.0 zawiera podatność, w której wybrany walidator-proposer może wysłać blok makro wyborczy, którego header.interlink nie zgadza się z kanonicznym następnym interlinkiem. Uczciwi walidatorzy akceptują tę propozycję, ponieważ funkcja verify_macro_block_proposal() nie sprawdza wiązania interlink dla bloków wyborczych. Ten sam sfinalizowany blok jest później odrzucany przez verify_block() z błędem InvalidInterlink, ale dzieje się to po podjęciu decyzji przez Tendermint, co może prowadzić do problemów z konsensusem.
Ocena ryzyka
Ryzyko polega na potencjalnym zakłóceniu konsensusu sieci, co może prowadzić do rozwidlenia łańcucha lub utraty środków.
Rekomendacja
Zaleca się natychmiastową aktualizację do wersji 1.3.0, która zawiera poprawkę usuwającą tę podatność.
Inne podatności w nimiq/core-rs-albatross
Zobacz wszystkie- CVE-2026-28402Wysokie
W wersjach przed 1.2.2 biblioteka nimiq/core-rs-albatross zawiera podatność, która pozwala złośliwemu lub skompromitowanemu walidatorowi na opublikowanie propozycji makro bloku z niezgodnym `header.body_root`. To może prowadzić do awarii walidatorów z powodu niezgodności weryfikacji.
- CVE-2026-33184Wysokie
W nimiq/core-rs-albatross (implementacja protokołu Nimiq Proof-of-Stake w Rust) przed wersją 1.3.0, procedura handshake akceptuje od peera limit równy 0 i przechowuje go bez zmian. W ścieżce HandshakeAck limit 0 powoduje zwrócenie zerowych kontaktów, co wygląda nieszkodliwie. Później, w stanie Established, obliczenie self.peer_list_limit.unwrap() jako usize - 1 przy limicie 0 powoduje zawinięcie do usize::MAX, co prowadzi do paniki przy próbie alokacji pamięci.
Oryginalny opis (angielski, źródło NVD)
nimiq/core-rs-albatross is a Rust implementation of the Nimiq Proof-of-Stake protocol based on the Albatross consensus algorithm. Prior to version 1.3.0, an elected validator proposer can send an election macro block whose header.interlink does not match the canonical next interlink. Honest validators accept that proposal in verify_macro_block_proposal() because the proposal path validates header shape, successor relation, proposer, body root, and state, but never checks the interlink binding for election blocks. The same finalized block is later rejected by verify_block() during push with InvalidInterlink. Because validators prevote and precommit the malformed header hash itself, the failure happens after Tendermint decides the block, not before voting. This issue has been patched in version 1.3.0.
Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS

