Skip to content
KitploitKITPLOIT
StrumentiExploitsBlog
Log in
Invia
StrumentiExploitsBlog
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.

FeedContattoPrivacy© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
fastjson-check — Scanner CLI offline senza dipendenze che individua fastjson all'interno di JAR e fat-JAR di Spring Boot, segnala l'esposizione a CVE-2026-16723 e rileva le dipendenze shaded per il gating in CI. | Kitploit
Strumenti/GitHubGitHub/xiaoqimikko/fastjson-check
Scanner di VulnerabilitàAnalisi delle VulnerabilitàDevSecOpsSicurezza della Supply Chain
GitHubxiaoqimikko/fastjson-check

fastjson-check

Scanner CLI offline senza dipendenze che individua fastjson all'interno di JAR e fat-JAR di Spring Boot, segnala l'esposizione a CVE-2026-16723 e rileva le dipendenze shaded per il gating in CI.

Vedi Repository
7 giorni 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

fastjson-check

Release Downloads License Java

Un solo comando per scoprire se nella tua applicazione Java c'è fastjson, dove si nasconde e se è interessato da CVE-2026-16723.

Zero dipendenze · Completamente offline · Un singolo jar da 23KB · Supporta Java 8+

English | Download


Perché serve

Il 21 luglio 2026, il team ufficiale di fastjson ha reso pubblica CVE-2026-16723 (CVSS 9.0, esecuzione di codice da remoto):

  • Interessa fastjson 1.2.68 ~ 1.2.83
  • Sfruttabile con la configurazione predefinita — non serve abilitare AutoType, non servono gadget nel classpath, non serve autenticazione
  • L'avviso è comparso negli exploit in the wild nel giro di pochi giorni, principalmente contro deployment Spring Boot fat-JAR

⚠️ La patch ufficiale 1.2.84 è già stata rilasciata, ma quasi nessuno lo sa

Numerosi avvisi di sicurezza (comprese diverse testate di sicurezza in lingua inglese) continuano ancora oggi ad affermare che «la 1.x è EOL, non ci sarà mai una patch, l'unica strada è migrare a fastjson2». Questa affermazione non è più valida dal 2026-07-29. Puoi verificarlo tu stesso:

ProvaLink
Nel repository centrale Maven esiste com.alibaba:fastjson:1.2.84, jar caricato il 2026-07-29repo1
GitHub release 1.2.84, pubblicata il 2026-07-29T08:24:51Zrelease
Commit chiave fix: strengthen autoType type name validation and whitelist verification2026-07-29T07:02:55Z

La 1.2.83 è stata rilasciata a maggio 2022, dopodiché il ramo 1.x è rimasto senza commit per quattro anni — la 1.2.84 è stata pubblicata in via del tutto eccezionale proprio per questa vulnerabilità.

Il titolo della release non menziona la correzione di sicurezza: il titolo della 1.2.83 riportava «(correzione di sicurezza)», mentre la 1.2.84 dice solo «Rilascio versione 1.2.84». Ma il corpo del testo lo dice — contiene una sezione completa Security Fixes, che elenca puntualmente quattro rafforzamenti di AutoType, e è così fin dal giorno del rilascio (2026-07-29) (verificabile nell'archivio Wayback 20260729094935).

Quanto al perché, dopo il rilascio della patch, la maggior parte degli avvisi di sicurezza e degli scanner non si sia ancora adeguata, non sono riuscito a scoprirlo, quindi qui non faccio congetture.

📌 Correzione del 2026-08-14: qui era originariamente scritto «il testo non menziona affatto la sicurezza, perciò non è stato seguito». La prima parte, verificata con il corpo della release e con l'archivio Wayback dello stesso giorno, si è rivelata errata (solo il titolo non lo indicava), e di conseguenza anche la seconda parte perde fondamento ed è stata rimossa.

👉 Impatto concreto per gli utenti della 1.x: aggiornare alla 1.2.84 è la soluzione meno costosa (una minor release dello stesso ramo, di solito senza modifiche al codice), senza essere costretti a fare subito la migrazione di major version a fastjson2. Questo strumento fornisce consigli in tal senso.

⚠️ Il prerequisito è JDK 8 o superiore (verificato il 2026-10-14): le 274 class della 1.2.84 sono tutte bytecode Java 8 (major 52), mentre la 1.2.83 è Java 5 (major 49). Su JDK 7 (Zulu 7u352) javac emette solo un avviso con codice di uscita 0, ma a runtime lancia direttamente UnsupportedClassVersionError: com/alibaba/fastjson/JSON : Unsupported major.minor version 52.0. Inoltre: la costante JSON.VERSION nella 1.2.84 è ancora "1.2.83", quindi basarsi su di essa per determinare la versione porta a errori; questo strumento legge pom.properties e non ne è influenzato.

E il punto più problematico è questo:

fastjson è di solito una dipendenza transitiva — nessuno lo installa attivamente, arriva al seguito di altre librerie. Molti team non sanno nemmeno di usarlo.

mvn dependency:tree elenca le dipendenze, ma non è in grado di gestire due situazioni:

  1. Hai a disposizione solo un fat-JAR già pacchettizzato, senza codice sorgente né ambiente di build (lo scenario più comune nella gestione delle emergenze in produzione)
  2. fastjson è stato shade dentro il jar di un qualche SDK, e nell'albero delle dipendenze non è affatto visibile

Questo strumento è stato scritto proprio per queste due situazioni.

Avvio rapido

Scarica fastjson-check.jar da Releases, poi:

# 扫一个 jar(Spring Boot fat-JAR 会自动逐层展开)
java -jar fastjson-check.jar ./myapp.jar

# 扫一整个目录(递归查找所有 jar/war)
java -jar fastjson-check.jar /opt/apps

# 输出 JSON,接入流水线
java -jar fastjson-check.jar /opt/apps --json

Non richiede installazione, non richiede account, non richiede connessione a Internet, non carica alcun dato.

Esecuzione come plugin Maven (dalla 0.3.0)

Lo stesso artefatto è sia una CLI che un plugin Maven. Questo utilizzo non richiede di scaricare prima il jar:

# 在你的项目目录下直接跑,扫的是 Maven 解析后的依赖
mvn io.github.xiaoqimikko:fastjson-check:0.3.1:check

Oppure collegalo al ciclo di vita della build (fase verify):

<plugin>
  <groupId>io.github.xiaoqimikko</groupId>
  <artifactId>fastjson-check</artifactId>
  <version>0.3.1</version>
  <executions>
    <execution>
      <goals><goal>check</goal></goals>
    </execution>
  </executions>
</plugin>

Perché la modalità plugin è più precisa rispetto al far scansionare pom.xml alla CLI

Quando la CLI scansiona pom.xml legge del testo, ma nei progetti reali la versione di fastjson spesso non è in quel testo:

  • Scritta come proprietà: <version>${fastjson.version}</version>
  • Ereditata da <parent>, nel tuo pom non c'è questa riga
  • Il caso più comune: è una dipendenza transitiva portata da un'altra libreria, nel tuo pom fastjson non è mai menzionato

Il plugin riceve l'insieme delle dipendenze Maven dopo la risoluzione, e ogni dipendenza porta con sé il percorso reale del jar nel repository locale. Si segue quindi proprio la strada in cui questo strumento è più abile: scansionare com/alibaba/fastjson(2)/JSON.class nel jar reale, anziché fidarsi di ciò che è scritto nel pom.

⚠️ Ma i confini del riconoscimento non cambiano: la chiave di determinazione resta quel percorso di classe, quindi le dipendenze relocate / ripacchettizzate con nome del package modificato restano non riconoscibili (vedi «Cosa non è» qui sotto). Il plugin risolve «dove è scritta la versione», non «il nome del package è stato cambiato».

Parametri

ParametroPredefinitoDescrizione
-Dfastjson-check.failOnFoundfalseFa fallire la build quando viene rilevato CRITICAL / HIGH
-Dfastjson-check.pathnon impostatoNon analizza l'albero delle dipendenze, analizza invece questo percorso (directory / jar / war / fat-jar)
-Dfastjson-check.skipfalseSalta l'esecuzione

🔴 Per impostazione predefinita non fa fallire la build, ed è voluto, diversamente dalla semantica del codice di uscita della CLI: la riga di comando la digiti tu, e il codice di uscita 1 è proprio ciò che vuoi; il plugin invece è agganciato alla pipeline, e uno strumento di autoverifica non dovrebbe far diventare rossa la build quando non te lo aspetti. Per usarlo come gate CI, aggiungi esplicitamente -Dfastjson-check.failOnFound=true.

💡 Su Windows, se il report è illeggibile, riporta la console a GBK (chcp 936) — la codifica di output della modalità plugin è decisa da Maven, e gli interruttori --utf8 / --gbk della CLI qui non arrivano.

L'output è così

fastjson-check 0.1.0  —— fastjson 应急排查(离线,不外传任何数据)
Scarica lo strumento