CVE-2026-88255
ŚrednieCVSS 6.3Prawdopodobieństwo exploitacji (EPSS)
Niskie ryzykoPercentyl 33 - wyżej niż 33% wszystkich znanych CVE
Streszczenie
W ZenHive mpp przed wersją 0.16.2, nieprawidłowa walidacja równoważności w danych wejściowych pozwala nieuwierzytelnionemu zdalnemu klientowi przejść bramę duplikatów Tempo dwukrotnie z jednym podpisanym transakcją. MPP.Methods.Tempo rezerwuje slot deduplikacji na podstawie hex dostarczonego przez wywołującego, a nie kanonicznej formy transakcji, co pozwala na dwa różne klucze rezerwacji dla tej samej transakcji (np. v=27 i v=0). W rezultacie oba przechodzą rezerwację i trafiają do ścieżki broadcast, a węzeł może zwrócić drugi ważny Payment-Receipt za jedną płatność on-chain.
Ocena ryzyka
Atakujący może uzyskać wiele potwierdzeń płatności za jedną transakcję, co może prowadzić do oszustw finansowych lub naruszenia integralności systemu płatności.
Rekomendacja
Zaktualizuj mpp do wersji 0.16.2 lub nowszej. Monitoruj transakcje pod kątem duplikatów i rozważ dodatkowe mechanizmy walidacji kanonicznej formy transakcji.
Inne podatności w mpp
Zobacz wszystkie- CVE-2026-89186Średnie
W ZenHive mpp przed wersją 0.16.2, użycie pamięci podręcznej zawierającej wrażliwe informacje pozwala współdzielonej pamięci podręcznej HTTP przechowywać płatną odpowiedź i serwować ją klientom, którzy nie zapłacili. MPP.Plug.verify_credential ustawia nagłówki payment-receipt i cache-control: private, ale aplikacja montująca może je nadpisać, np. ustawiając cache-control: public, co pozwala CDN lub reverse proxy na przechowywanie płatnej odpowiedzi i serwowanie jej niepłacącym klientom. Dodatkowo, nie-2xx odpowiedzi mogą nadal zawierać Payment-Receipt.
- CVE-2026-59695Wysokie
Podatność w bibliotece ZenHive mpp pozwala nieuwierzytelnionemu zdalnemu atakującemu na wyczerpanie portfela opłacającego opłaty w jednym żądaniu poprzez podanie dowolnie wysokiej ceny gazu. Biblioteka nie waliduje pól max_fee_per_gas i max_priority_fee_per_gas przed podpisaniem transakcji, co prowadzi do obciążenia portfela serwera zawyżonymi kosztami.
- CVE-2026-59694Wysokie
Podatność w bibliotece mpp (ZenHive) pozwala nieuwierzytelnionemu klientowi na zawyżenie kosztów gazu płaconych przez fee-payera poprzez dodanie dużej liczby wpisów do listy dostępu EIP-2930. Serwer podpisuje transakcję bez walidacji długości ani zawartości listy, co prowadzi do wielokrotnego wzrostu kosztów gazu.
- CVE-2026-59252Wysokie
Podatność w bibliotece mpp (ZenHive) pozwala nieuwierzytelnionemu zdalnemu klientowi na drenowanie portfela opłacającego opłaty (fee-payer) poprzez wysyłanie transakcji EVM z celowo zaniżonym limitem gazu. Powoduje to, że serwer współpodpisuje i rozgłasza transakcję, która kończy się niepowodzeniem z powodu braku gazu, ale portfel opłacający jest obciążany kosztami spalonego gazu, podczas gdy atakujący nie ponosi kosztów. W rezultacie dochodzi do odmowy usługi dla legalnych klientów, ponieważ portfel opłacający wyczerpuje środki.
Oryginalny opis (angielski, źródło NVD)
Improper Validation of Unsafe Equivalence in Input in ZenHive mpp allows an unauthenticated remote client to pass the Tempo duplicate-submission gate twice with one signed transaction. MPP.Methods.Tempo reserves the pre-broadcast dedup slot on the caller-supplied hex in reserve_hash_atomic/2, keyed through store_key/1 on tx.raw rather than on a canonical form of the transaction. The deserializer stores the caller's hex verbatim and accepts both recovery-id encodings, so one signed transaction submitted once with v=27 and once with v=0 yields two distinct reserve keys, and both pass the reserve and reach the broadcast path. The plug-level credential replay store is deliberately carved out for tempo in lib/mpp/replay.ex, leaving this reserve as the only gate, and the post-broadcast mark writes the canonical hash key that the raw-keyed reserve never reads. What the duplicate submission yields depends on the node: a nonce-reuse rejection fails closed, while a node that answers with the canonical hash for an already-known transaction returns a second valid Payment-Receipt for a single on-chain payment. This issue affects mpp: from 0.2.0 before 0.16.2.
Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS

