Skip to content
KitploitKITPLOIT
StrumentiBlog
Invia
StrumentiBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
Strumenti/GitHubGitHub/thelonelycoder/mojarra-2.2.13-patched
Analisi delle VulnerabilitàSicurezza della Supply ChainApprendimento e FormazioneRisorse Curate
GitHubthelonelycoder/mojarra-2.2.13-patched

mojarra-2.2.13-patched

Backport del fix di sicurezza CVE-2020-6950 a Mojarra 2.2.13, che fornisce un JAR jsf-impl patchato con modifiche minime e verificabili per applicazioni legacy.

Vedi Repository
12h 40m faNon ancora revisionato

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi

Mojarra 2.2.13 – Backport di CVE-2020-6950

Questo repository contiene un backport riproducibile della correzione per CVE-2020-6950 su Mojarra 2.2.13.

Esiste principalmente per scopi di tracciabilità e per la manutenzione di applicazioni legacy che, per motivi di compatibilità, non possono essere semplicemente aggiornate a una versione più recente di JSF/Mojarra.

Crediti e fonti upstream

Mojarra

Mojarra è l'implementazione di riferimento di JavaServer Faces (JSF), originariamente sviluppata come parte dell'ecosistema GlassFish/Java EE e ora mantenuta come progetto Eclipse Mojarra.

Il codice sorgente di Mojarra contenuto in questo repository non è opera mia. Tutti i crediti e i diritti d'autore rimangono agli autori e contributori originali di Mojarra.

Progetto upstream attuale:

  • Eclipse Mojarra: https://github.com/eclipse-ee4j/mojarra
  • Pagina del progetto Eclipse: https://projects.eclipse.org/projects/ee4j.mojarra

Gli artefatti Mojarra 2.2.13 non modificati utilizzati come base per questo lavoro sono stati ottenuti da Maven Central.

Patch CVE-2020-6950

La correzione di sicurezza qui utilizzata non è stata sviluppata da me.

Il backport per Mojarra 2.2.13 è stato ottenuto dal pacchetto Mojarra di openEuler, dove CVE-2020-6950.patch viene applicato a Mojarra 2.2.13.

Sorgente del pacchetto openEuler:

  • https://gitee.com/src-openeuler/mojarra

La patch originale è stata conservata affinché l'origine e la natura esatta della modifica di sicurezza rimangano tracciabili.

I miei ringraziamenti vanno agli sviluppatori upstream di Mojarra e ai manutentori e contributori di openEuler che hanno fornito e pubblicato la patch di sicurezza backportata.

Perché esiste questo repository

Mi sono imbattuto in un'applicazione legacy che dipende ancora da Mojarra 2.2.13 ed era affetta da CVE-2020-6950.

L'aggiornamento dell'intera implementazione JSF non era un'opzione pratica a breve termine perché l'applicazione e il suo framework circostante sono software legacy con vincoli di compatibilità significativi.

Allo stesso tempo, volevo che la modifica di sicurezza fosse:

  • basata su una patch upstream/vendor pubblicamente disponibile,
  • minima,
  • revisionabile,
  • riproducibile,
  • e tracciabile fino all'implementazione originale di Mojarra 2.2.13.

Per questo motivo ho ricompilato io stesso le classi interessate piuttosto che distribuire un binario modificato non spiegato.

Questo repository quindi non rappresenta un'implementazione indipendente della correzione di sicurezza. Documenta e impacchetta una correzione pubblicata esistente per l'uso con Mojarra 2.2.13.

Cosa è stato modificato

La patch openEuler per CVE-2020-6950 modifica tre classi di Mojarra:

root@kitploit:~
com/sun/faces/application/resource/ClasspathResourceHelper.java
com/sun/faces/application/resource/ResourceManager.java
com/sun/faces/application/resource/WebappResourceHelper.java

La patch aggiunge la validazione del nome del contratto di risorsa utilizzando:

root@kitploit:~
ResourceManager.nameContainsForbiddenSequence(...)

Solo queste tre classi vengono sostituite nel JAR jsf-impl-2.2.13 patchato.

È stato eseguito un confronto tra il JAR originale e quello patchato, entrambi estratti, per verificare che nessun altro file differisca.

Approccio di compilazione

I sorgenti originali di Mojarra 2.2.13 sono stati utilizzati insieme alla patch CVE pubblicata da openEuler.

Poiché ricostruire il completo ambiente di compilazione storico di Mojarra 2.2.13 e le sue vecchie dipendenze di build avrebbe aggiunto complessità inutile e reso il risultato più difficile da verificare, sono state ricompilate solo le tre classi interessate.

Sono state compilate con OpenJDK 8 utilizzando:

root@kitploit:~
-source 1.5 -target 1.5

I file di classe risultanti sono stati verificati per avere:

root@kitploit:~
major version: 49

che corrisponde alla versione bytecode delle classi originali di Mojarra 2.2.13.

I tre file di classe risultanti sono stati quindi inseriti in una copia per il resto invariata del jsf-impl-2.2.13.jar originale.

Verifica

Il JAR risultante è stato estratto e confrontato con l'originale.

Solo questi file differiscono:

root@kitploit:~
ClasspathResourceHelper.class
ResourceManager.class
WebappResourceHelper.class

Il bytecode risultante è stato inoltre ispezionato con javap per verificare che entrambe le classi helper delle risorse contengano la chiamata prevista a:

root@kitploit:~
ResourceManager.nameContainsForbiddenSequence(...)

Tutte e tre le classi sostitutive sono state anche verificate per mantenere la major version 49 dei file di classe Java.

Artefatto di distribuzione

Per le applicazioni che attualmente utilizzano le librerie Mojarra separate:

root@kitploit:~
jsf-api-2.2.13.jar
jsf-impl-2.2.13.jar

la sostituzione pertinente prodotta da questo progetto è:

root@kitploit:~
jsf-impl-2.2.13-patched.jar

Il nome del file JAR di per sé non è significativo per il class loader Java. Il suffisso -patched è mantenuto intenzionalmente affinché gli amministratori possano distinguere immediatamente l'implementazione modificata da quella originale.

Non distribuire simultaneamente il JAR jsf-impl originale e quello patchato.

Una procedura di distribuzione sicura consiste nel eseguire prima un backup dell'applicazione esistente, rimuovere il jsf-impl-2.2.13.jar originale, distribuire jsf-impl-2.2.13-patched.jar, riavviare l'applicazione/contenitore e verificare sia il normale funzionamento dell'applicazione sia il problema di sicurezza affrontato da CVE-2020-6950.

Ambito e disclaimer

Questo repository è inteso come un backport di compatibilità/sicurezza strettamente mirato per installazioni legacy di Mojarra 2.2.13.

Non è un fork di Mojarra, non è una nuova release di Mojarra e non è affiliato o approvato da Eclipse Foundation, Oracle, GlassFish o openEuler.

Dove possibile, l'aggiornamento a un'implementazione JSF/Jakarta Faces attualmente mantenuta è preferibile al mantenimento di una vecchia release di Mojarra con patch di sicurezza individuali.

Questo repository affronta la specifica CVE descritta sopra. Non deve essere interpretato come un rendere Mojarra 2.2.13 generalmente sicuro, aggiornato, mantenuto o supportato.

Gli utenti rimangono responsabili del test dell'artefatto patchato nel proprio ambiente prima di distribuirlo in produzione.

Licenza

Il codice sorgente e i binari originali di Mojarra rimangono soggetti alle rispettive licenze upstream e agli avvisi di copyright.

Mojarra 2.2.13 è stato distribuito con i termini di doppia licenza GPL v2 / CDDL applicabili a quella release, inclusa l'eccezione Classpath GPL dove indicata negli header dei sorgenti originali.

Il file di licenza originale di Mojarra è incluso invariato in:

root@kitploit:~
packager/legal/LICENSE.txt

Gli header di copyright e licenza originali nei file sorgente di Mojarra sono stati mantenuti.

La patch fornita da openEuler rimane attribuibile ai rispettivi autori e al progetto sorgente.

Nessuna proprietà del codice originale di Mojarra o della correzione CVE è rivendicata da questo repository.

Scarica lo strumento