Il 15 luglio 2026 TrendAI Zero Day Initiative ha reso pubblica la vulnerabilità ZDI-26-422 che interessa Samsung rlottie, libreria open source per il rendering di animazioni Lottie. La falla, identificata come CVE-2026-15551 con punteggio CVSS 5.5 secondo il CVE Record ufficiale, consente l'esecuzione di codice remoto nel contesto del processo corrente attraverso un file animato Lottie appositamente costruito. Samsung aveva già corretto il bug il 3 luglio 2026; la disclosure coordinata è avvenuta il 15 luglio 2026.
- La vulnerabilità CVE-2026-15551 interessa la funzione
gray_hline()di Samsung rlottie e permette RCE tramite file Lottie animato malevolo, con interazione utente richiesta - La root cause è un numeric truncation da int a short 16-bit nel campo
SW_FT_Span.y, ereditato da codice FreeType upstream non adeguatamente adattato da Samsung - Il CVE Record ufficiale assegna CVSS 3.1 score 5.5 (MEDIUM) con vettore AV:L/AC:H/PR:L/UI:R/S:U/C:L/I:L/A:H; una fonte ZDI collegata riporta 7.8 per lo stesso identificativo ZDI-CAN-30236
- La patch ufficiale è stata mergeata il 3 luglio 2026, con disclosure coordinata il 15 luglio 2026 dopo 19 giorni dal report iniziale al vendor
Come funziona la falla: numeric truncation in gray_hline()
Il meccanismo della vulnerabilità nasce da un adattamento incompleto di codice legacy. La libreria rlottie di Samsung eredita dal progetto FreeType il modulo ftgrays.c, responsabile del rastering anti-aliased. Nel codice originale FreeType, la struttura FT_Span non contiene un campo y: la coordinata di scanline è gestita separatamente come intero a 32 bit. Samsung ha introdotto nella struttura SW_FT_Span un campo y di tipo short a 16 bit, ma non ha ridimensionato il clamp di validazione.
Il clamp ereditato utilizza INT_MAX come bound superiore. Su un sistema dove int è 32 bit, questo valore supera ampiamente la capacità di un short 16-bit (32767). Quando gray_hline() elabora coordinate Y malformate in un file Lottie con dimensioni canvas native, il controllo INT_MAX risulta inefficace: il valore passa la validazione ma viene poi troncato durante l'assegnazione al campo short y. Questo narrowing produce coordinate negative o wraparound che causano scrittura fuori dai limiti del buffer heap durante il rendering.
La patch ufficiale, descritta nel pull request GitHub #595, modifica il clamp sostituendo INT_MAX con SHRT_MAX: «SW_FT_Span.y is a 16-bit short, so limit our coordinates appropriately». La correzione è stata mergeata nel repository Samsung il 3 luglio 2026 dal commit f487eff.
«rlottie added a short y to the span struct without adapting the clamp, so the INT_MAX bound never prevented the (short) narrowing at the store site» — GitHub PR #595, mmaciola
Superficie d'attacco: chi integra rlottie
Samsung rlottie è una libreria di rendering C++ per animazioni Lottie, formato JSON-based nato da After Effects e divenuto standard de facto per micro-animazioni in interfaccia. La sua natura open source e la licenza permissiva ne hanno favorito l'adozione in ecosistemi mobili, desktop e web. Il dossier non elenca versioni o prodotti specifici affetti oltre alla libreria stessa, né documenta implementazioni terze vulnerabili.
Il vettore di attacco richiede che l'utente apra o visualizzi un file Lottie animato appositamente costruito. Il CVSS ufficiale specifica AV:L (attack vector local) e UI:R (user interaction required), con AC:H (attack complexity high). La citazione ufficiale ZDI precisa che «interaction with the rlottie library is required to exploit this vulnerability but attack vectors may vary depending on the implementation». La fonte non specifica quali implementazioni siano vulnerabili né dettagli su vettori particolari.
Discrepanza nei punteggi: 5.5 contro 7.8
Il dossier riporta una discrepanza nei punteggi CVSS che merita esplicitazione. Il CVE Record ufficiale cve.org per CVE-2026-15551 assegna score 5.5 con severity MEDIUM, vettore CVSS:3.1/AV:L/AC:H/PR:L/UI:R/S:U/C:L/I:L/A:H. Nella tabella degli advisory ZDI pubblicati, ZDI-CAN-30236 — lo stesso identificativo collegato a ZDI-26-422 — riporta CVSS 7.8. Il dossier non chiarisce se il 7.8 si riferisca a una metrica diversa, a una valutazione preliminare ZDI o a una versione della libreria con parametri ambientali modificati. Il 5.5 del CVE Record ufficiale è il riferimento normativo per la classificazione di severità.
Timeline e coordinazione della disclosure
La sequenza temporale documenta una disclosure responsabile. Il ricercatore Michael DePlante (@izobashi) ha riportato la vulnerabilità a Samsung il 26 giugno 2026. Il vendor ha prodotto e mergeato la correzione il 3 luglio 2026 — 7 giorni dopo il report — e la ZDI ha pubblicato l'advisory coordinato il 15 luglio 2026. Il lasso di 12 giorni tra patch e disclosure rappresenta il periodo standard per la distribuzione coordinata.
Il tempo totale di 19 giorni tra segnalazione iniziale e pubblicazione pubblica rientra nei parametri di una disclosure coordinata efficace. La rapidità della correzione da parte di Samsung — 7 giorni — indica priorità elevata assegnata alla falla, nonostante il punteggio CVSS ufficiale di 5.5.
Cosa fare adesso
Gli sviluppatori che utilizzano rlottie come dipendenza diretta devono verificare la presenza dei commit correttivi f487eff e bf689b72 nel proprio albero sorgente. Se la libreria è inclusa come sottoprogetto o dipendenza transitiva, l'aggiornamento alla revisione contenente questi commit risolve la vulnerabilità. Il CVE Record ufficiale indica la versione non affetta a partire dal commit bf689b72b8482c5ea674235854bd11b6d1b42588.
Per i team che non possono aggiornare immediatamente, la mitigazione passa attraverso la validazione preliminare delle dimensioni canvas native nei file Lottie in ingresso. Il CVE Record specifica che il trigger è legato a «native canvas size» nel contesto del parsing; un controllo di coerenza sulle coordinate Y prima del passaggio a gray_hline() può bloccare il percorso vulnerabile. Questa validazione deve essere implementata a livello di wrapper o di pipeline di ingestione, prima che il file raggiunga il renderer rlottie.
Le informazioni sono state verificate sulle fonti citate: advisory ZDI-26-422, CVE Record CVE-2026-15551, e pull request GitHub #595 del repository Samsung/rlottie.
Le informazioni sono state verificate sulle fonti citate e aggiornate al momento della pubblicazione.
Fonti
- http://www.zerodayinitiative.com/advisories/ZDI-26-422/
- http://www.zerodayinitiative.com/advisories/published/
- https://www.cve.org/CVERecord?id=CVE-2026-15551
- https://github.com/Samsung/rlottie/pull/595
- http://www.zerodayinitiative.com/advisories/upcoming/