
Patch per Magento 2 per CVE-2022-24086, CVE-2022-24087. Corregge la vulnerabilità RCE e i bug correlati eseguendo un escaping profondo delle variabili dei template. Se non puoi aggiornare Magento o non puoi applicare le patch ufficiali, prova questa.
Patch di Magento 2 per CVE-2022-24086, CVE-2022-24087. Risolve la vulnerabilità RCE e i bug correlati eseguendo un escaping profondo delle variabili dei template. Se non puoi aggiornare Magento o non puoi applicare le patch ufficiali, prova questa.
La CVE-2022-24086 (con CVE-2022-24087) è stata scoperta all'inizio del 2022.
I negozi interessati presentano questa vulnerabilità di Remote Code Execution (RCE) senza workaround. Due patch isolate ufficiali sono state rilasciate a febbraio 2022.
Tuttavia, anche a fine 2024 continuiamo a ricevere richieste di consulenza su questo problema ed è stato identificato che i loro negozi compromessi erano stati sfruttati tramite questa vulnerabilità. Gli attacchi osservati sono stati eseguiti inserendo una stringa che contiene una template directive. Tipicamente sfruttando il processo di checkout, azioni in grado di attivare l'invio di email con campi controllabili dall'utente, ecc.
Abbiamo creato questa patch a causa di questo attacco diffuso e perché alcuni negozi hanno ancora difficoltà ad aggiornare a versioni non affette o ad applicare le 2 patch ufficiali.
Nel realizzare questa patch come estensione, abbiamo tenuto presente la compatibilità. È stata testata principalmente sulla serie Magento 2.4.
Sebbene la documentazione ufficiale affermi che "i metodi non possono più essere chiamati dalle variabili né tramite la direttiva var né quando sono usati come parametri", come abbiamo confermato, anche nell'ultima versione (2.4.7-p3) è ancora consentito chiamare il metodo "Getter" su Data Object e chiamare il metodo getUrl sull'oggetto Email Template (\Magento\Email\Model\AbstractTemplate).
Questa patch (estensione) mantiene anche le caratteristiche sopra descritte. Quindi {{var data_object.something}} e {{var data_object.getSomething()}} sono entrambi validi ed equivalenti.
Esempio di getUrl:
{{var this.getUrl($store,'route_id/controller/action',[_query:[param1:$obj.param1,param2:$obj.param2],_nosid:1])}}
In sintesi, dopo l'installazione di questa estensione:
\Magento\Framework\DataObject o una sua istanza figlia.\Magento\Framework\DataObject e le sue istanze figlie.getUrl funziona solo su this.Rimosso LegacyResolver per fermare la RCE.
Introdotta la "direttiva differita con firma" per il template figlio. Non siamo certi che apporti alcun miglioramento a livello di sicurezza.
Ha ancora un bug non risolto (#39353).
Usiamo un "escaping profondo delle variabili dei template" prima del processo di filtraggio dei template. LegacyResolver riceverà solo dati utente già sottoposti a escaping e quindi può essere conservato.
Magento 2.3 o 2.4
composer require wubinworks/module-template-filter-patch
Se ti piace questa estensione o se ti è stata utile, per favore lascia una ★star☆ su questo repository.
Potrebbero interessarti anche:
Magento 2 patch for CVE-2024-34102(aka Cosmic Sting)
Magento 2 Enhanced XML Security
Magento 2 Encryption Key Manager CLI
Magento 2 JWT Authentication Patch
Magento 2 Disable Customer Change Email Extension
Magento 2 Disable Customer Extension