
semplice applicazione con una vulnerabilità (irraggiungibile!) CVE-2022-45688
Il progetto contiene una dipendenza json.org con CVE-2022-45688.
Il progetto invoca sì la classe vulnerabile, ma i dati di input vengono sanificati (con un semplice metodo che conta i caratteri <, stimando quindi la profondità massima dell'albero DOM da generare e imponendo la precondizione che questa deve essere inferiore a 1000)
e la vulnerabilità non può quindi essere sfruttata per un attacco DoS.
Sia le analisi di composizione del software basate sui metadati sia quelle basate sul callgraph produrranno un falso positivo. Per rilevare con precisione se l'applicazione è vulnerabile, è necessaria un'analisi inter-procedurale di dataflow / taint più sofisticata.
Nota che esiste un test proof-of-vulnerability che dimostra la vulnerabilità; questo test (e quindi la build con mvn test)
fallisce. Vedi https://github.com/scabench/jsonorg-tp1 per capire come funziona il test.
Ci sono diversi script sh per eseguire diverse analisi; i report dei risultati si trovano in scan-results.
Il pom.xml ha un plugin per generare una SBOM in formato CycloneDX.
Per farlo, esegui mvn cyclonedx:makePackageBom; la SBOM si trova in
target/ in formato json e xml.