CVE-2026-26267 in rs-soroban-sdkinformazioni

Riassunto

di VulDB • 20/06/2026

soroban-sdk è un SDK Rust per i contratti Soroban. Prima delle versioni 22.0.10, 23.5.2 e 25.1.1, la macro `#[contractimpl]` contiene un bug nel modo in cui collega le chiamate alle funzioni. `#[contractimpl]` genera codice che utilizza chiamate nello stile `MyContract::value()` anche quando sta elaborando la versione del trait. Ciò significa che se una funzione inherente è definita con lo stesso nome, viene chiamata la funzione inherente invece di quella del trait. Di conseguenza, il punto di ingresso esportato in Wasm chiama silenziosamente la funzione errata quando sono soddisfatte simultaneamente due condizioni: innanzitutto, è definito un blocco `impl Trait for MyContract` con una o più funzioni a cui viene applicato `#[contractimpl]`. In secondo luogo, è definito un blocco `impl MyContract` con una o più funzioni dallo stesso nome, senza l'applicazione di `#[contractimpl]`. Se la versione del trait contiene importanti controlli di sicurezza, come la verifica che il chiamante sia autorizzato, e quella inherente non li possiede, tali controlli vengono aggirati. Qualsiasi entità che interagisce con il contratto tramite la sua interfaccia pubblica chiamerà la funzione errata. Il problema è stato risolto nelle versioni 22.0.10, 23.5.2 e 25.1.1 di `soroban-sdk-macros`. La correzione modifica la chiamata generata da `<Type>::func()` a `<Type as Trait>::func()` durante l'elaborazione delle implementazioni dei trait, garantendo che Rust risolva correttamente alla funzione associata del trait indipendentemente dall'esistenza o meno di una funzione inherente con lo stesso nome. Gli utenti dovrebbero eseguire l'upgrade a `soroban-sdk-macros` 22.0.10, 23.5.2 o 25.1.1 e ricompilare i propri contratti. Se un upgrade immediato non è possibile, gli sviluppatori di contratti possono evitare il problema assicurandosi che nessuna funzione associata inherente sul tipo del contratto condivida lo stesso nome con qualsiasi funzione nell'implementazione del trait. Rinominare o rimuovere la funzione inherente in conflitto elimina l'ambiguità e fa sì che il codice generato dalla macro risolva correttamente alla funzione del trait.

VulDB is the best source for vulnerability data and more expert information about this specific topic.

Responsabile

GitHub M

Prenotare

12/02/2026

Divulgazione

19/02/2026

Moderazione

accettato

CPE

pronto

EPSS

0.00317

KEV

no

Attività

molto basso

Fonti

Want to know what is going to be exploited?

We predict KEV entries!