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
shiro-check — Rileva i moduli e le versioni di Apache Shiro effettivamente installati, stabilendo una per una quali delle 26 CVE ufficiali ricadono davvero su di te. Valutazione per «CVE × modulo», un singolo JAR a zero dipendenze. CVE-2026-49268 | Kitploit
Strumenti/GitHubGitHub/xiaoqimikko/shiro-check
Analisi StaticaScanner di VulnerabilitàAnalisi delle VulnerabilitàDevSecOpsSicurezza della Supply Chain
GitHubxiaoqimikko/shiro-check

shiro-check

Rileva i moduli e le versioni di Apache Shiro effettivamente installati, stabilendo una per una quali delle 26 CVE ufficiali ricadono davvero su di te. Valutazione per «CVE × modulo», un singolo JAR a zero dipendenze. CVE-2026-49268

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

shiro-check

Identifica i moduli e le versioni di Apache Shiro effettivamente installati e determina, una per una, quali delle 26 CVE ufficiali ti riguardano davvero.

Un singolo jar senza dipendenze, nessuna connessione di rete, non legge il tuo pom — scansiona direttamente gli artefatti di build (jar / war / fat jar / directory).

root@kitploit:~
java -jar shiro-check.jar --utf8 your-app.jar

Perché non basta "dare un'occhiata al numero di versione"

Le CVE di Shiro non sono legate a "Shiro", ma a moduli specifici. Lo stesso identificativo segue regole diverse su moduli diversi:

CVEModuli interessatiSolo chi usa shiro-core
CVE-2020-17510shiro-springNon colpito
CVE-2020-17523shiro-web / shiro-spring / shiro-spring-boot-starterNon colpito
CVE-2023-34478shiro-webNon colpito
CVE-2026-56091shiro-guiceNon colpito

Delle 26 CVE ufficiali, 13 non coinvolgono affatto shiro-core. Ridurle alla frase "Shiro < 1.7.1 ha una falla" significa fare al posto dell'utente un giudizio che spetta a lui — e sbagliarlo.

La granularità di valutazione di questo strumento è CVE × modulo: 26 CVE si espandono in 37 regole, che coprono 7 moduli.

Tre cose che il matching per coordinate non vede

1. 5 voci non arrivano mai agli alert di Dependabot

Dependabot abbina le GitHub advisory in base alle coordinate delle dipendenze. 5 delle 26 voci non corrispondono:

Ma shiro-root è il POM padre con packaging=pom — su Maven Central non esiste un jar corrispondente (HTTP 404), nessun progetto dipende da esso, quindi il matching per coordinate non può mai trovarlo.

ℹ️ unreviewed è uno stato normale del flusso di GitHub (importato automaticamente da NVD, con i pacchetti interessati non ancora annotati manualmente); anche il matching per coordinate è una scelta ragionevole. Qui si constata solo il fatto che "non arriva agli alert", non che qualcuno abbia sbagliato.

2. Nell'uber jar si nascondono altri moduli

shiro-all è un uber jar che impacchetta più moduli. Nella pratica, shiro-all-1.3.2.jar contiene al suo interno 6 file META-INF/maven/org.apache.shiro/<modulo>/pom.properties:

root@kitploit:~
shiro-all  shiro-core  shiro-web  shiro-spring  shiro-ehcache  shiro-quartz

In pratica, un progetto che nel pom dichiara solo shiro-all ha un solo nome a livello di coordinate (delle 26 CVE, solo CVE-2016-6802 è agganciata a questa coordinata), ma nel jar ci sono davvero il codice di tre moduli: core, web e spring.

Scansionare l'artefatto reale permette di vedere attraverso questo strato. In un test con shiro-all-1.3.2.jar, lo strumento ha segnalato 20 voci su 3 moduli.

3. Per 3 voci la versione di fix ufficiale non è disponibile su Maven Central

Il first_patched_version di 3 advisory è 3.0.0-alpha-2, ma questa versione non è mai stata pubblicata su Maven Central (il team ha pubblicato direttamente la versione stabile 3.0.0). Non puoi aggiornare seguendo quella versione — lo strumento lo segnala e sostituisce il suggerimento di upgrade con una versione realmente disponibile.

L'esito non significa «sei colpito»

"Hit" = il modulo è presente E la versione rientra nell'intervallo ufficiale delle versioni affette. Non equivale a "già sfruttato" o "necessariamente sfruttabile".

La maggior parte delle 26 voci richiede una configurazione specifica per essere valida, quindi lo strumento le elenca separatamente:

  • 🔴 Affetto con configurazione predefinita — da gestire per primi (es. CVE-2026-43827 session fixation)
  • ⚠️ Richiede condizioni specifiche — le condizioni sono elencate per ciascuna voce; se non sono soddisfatte, non si è colpiti

Esempi di condizioni (riportate parola per parola dalla descrizione ufficiale, senza estrapolazioni):

root@kitploit:~
CVE-2026-49268  仅当使用 DefaultLdapRealm(用户名未转义即拼进 LDAP DN)
CVE-2023-22602  仅当与 Spring Boot 2.6+ 一起使用,且未把
                spring.mvc.pathmatch.matching-strategy 设回 ant_path_matcher
CVE-2026-23903  仅当静态文件放在大小写不敏感的文件系统上(如 macOS 默认设置),
                且 Shiro 里只配了小写的 filter 路径;只影响静态文件

🔴 Lo strumento non analizza la tua configurazione. Shiro può essere configurato in shiro.ini, application.yml o nel codice Java; una conclusione derivata dall'analisi sarebbe più pericolosa della mancata analisi. Le condizioni sono elencate in chiaro e sta a te valutare — è una scelta deliberata, non pigrizia.

Utilizzo

root@kitploit:~
# 扫一个 jar / war
java -jar shiro-check.jar your-app.jar

# 扫整个目录(递归)
java -jar shiro-check.jar /path/to/libs

# 连「不适用」的条目也列出来
java -jar shiro-check.jar --all your-app.jar

# Windows 控制台中文乱码时
java -jar shiro-check.jar --utf8 your-app.jar

Capacità di riconoscimento: jar normale · Spring Boot fat jar (BOOT-INF/lib/) · WAR tradizionale (WEB-INF/lib/) · uber jar (shiro-all, con i moduli interni esplosi) · jar rinominati (in base a pom.properties) · archivi malformati che usano backslash nei percorsi.

Richiede JDK 17+. Zero dipendenze a runtime.

Da dove viene la tabella di valutazione

Nessuna riga scritta a mano. tools/gen_rules.py genera tutto da due fonti primarie:

FonteCosa fornisce
shiro.apache.org/security-reports.htmlelenco completo delle voci, testo originale delle descrizioni, testo originale delle condizioni di attivazione
GitHub Advisory APIcoordinate dei moduli interessati, intervalli di versione strutturati, valutazione della gravità

Il processo di generazione include 12 asserzioni; se una qualsiasi non è soddisfatta, si interrompe senza scrivere il file (per evitare che "un errore di parsing produca una tabella vuota mentre i test restano tutti verdi"):

  • Completezza: il conteggio delle CVE deve coincidere tra gli h3 del corpo e gli anchor del sommario
  • Tracciabilità: per gli intervalli di versione compilati a mano, la stringa di versione deve comparire parola per parola nel testo ufficiale
  • Verifica empirica: l'attribuzione dei moduli deve essere confermata dalle posizioni delle classi in un jar reale (non è accettato "ricordo che questa è di web")
  • Fattibilità: ogni versione di fix viene verificata su Maven Central; quelle non disponibili vengono segnalate
  • Affermazioni: il numero di voci cieche per Dependabot, le differenze tra moduli e i moduli contenuti nell'uber jar devono continuare a reggere

Prima della pubblicazione c'è anche tools/recheck_before_publish.py, che ricontrolla le argomentazioni portanti con una seconda metodologia indipendente (non importa lo script di generazione e non legge il suo output — riusare la stessa logica di parsing significherebbe riprodurre anche i bug).

Limitazioni

  • Copre solo le 26 voci presenti nella pagina ufficiale security-reports; non include problemi non divulgati o integrazioni di terze parti
  • Gli intervalli di versione provengono dalle fonti ufficiali e da GitHub; in caso di eventuali discrepanze, fa fede l'intervallo strutturato sulle coordinate del modulo
  • Non analizza la configurazione, quindi per le voci condizionali devi valutare tu se sono soddisfatte
  • La tabella di valutazione è uno snapshot al momento della generazione; GitHub può trasformare unreviewed in reviewed in qualsiasi momento

Inglese

shiro-check scansiona i tuoi artefatti di build (jar / war / fat jar / directory) per individuare quali moduli di Apache Shiro spedisci davvero, quindi valuta tutte le 26 CVE ufficiali rispetto alla tua combinazione esatta di modulo + versione.

Perché esiste: le CVE di Shiro sono legate ai moduli, non a "Shiro". 13 delle 26 non toccano mai shiro-core. Lo strumento lavora con granularità CVE × modulo (37 regole, 7 moduli).

Tre cose che il matching basato sulle coordinate non può vedere:

  1. 5 voci non arrivano mai agli alert di Dependabot — 3 advisory sono ancora unreviewed con un elenco di pacchetti interessati vuoto; 2 sono agganciate solo a org.apache.shiro:shiro-root, che è un POM padre con packaging=pom e nessun jar su Maven Central (HTTP 404), quindi nessun progetto dipende da esso.
  2. shiro-all è un uber jar — shiro-all-1.3.2.jar contiene 6 voci pom.properties (core, web, spring, ehcache, quartz + se stesso). Il tuo pom mostra una sola coordinata; il jar contiene codice per tre moduli.
  3. 3 advisory indicano 3.0.0-alpha-2 come fix, una versione mai pubblicata su Maven Central. Lo strumento le segnala e suggerisce una versione a cui puoi realmente aggiornare.

Un "hit" significa modulo presente E versione all'interno dell'intervallo ufficiale delle versioni affette. Non significa sfruttabile — la maggior parte delle voci richiede una configurazione specifica, che lo strumento elenca parola per parola dall'advisory ufficiale. Non analizza volutamente la tua configurazione.

root@kitploit:~
java -jar shiro-check.jar [--all] [--utf8] <jar | war | directory> ...

Richiede JDK 17+. Nessuna dipendenza a runtime. La tabella delle regole è generata da due fonti primarie con 12 asserzioni che interrompono il processo in caso di errore; vedi tools/gen_rules.py.

Licenza

Apache License 2.0

Scarica lo strumento
VocePerché non corrisponde
CVE-2026-56091 (bypass dell'autenticazione in shiro-guice, high)l'advisory è ancora unreviewed, l'elenco dei pacchetti interessati è vuoto
CVE-2026-56130 (cookie RememberMe che non scade mai)Idem
CVE-2014-0074 (bypass con password vuota in LDAP)Idem
CVE-2023-22602 (bypass dell'autenticazione su Spring Boot 2.6+, high)l'advisory è agganciata solo a org.apache.shiro:shiro-root
CVE-2010-3863Idem