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
CVE-2026-84181 — Proof-of-concept eseguibile per Spring Boot e Quarkus che riproduce il bypass di autenticazione thread-bound-subject di Apache Camel camel-shiro, con controlli vulnerabili e corretti. | Kitploit
Strumenti/GitHubGitHub/oscerd/cve-2026-84181
Strumenti DifensiviAnalisi delle VulnerabilitàExploitSfruttamento di Applicazioni WebAutenticazioneApprendimento e Formazione
GitHuboscerd/cve-2026-84181

CVE-2026-84181

Proof-of-concept eseguibile per Spring Boot e Quarkus che riproduce il bypass di autenticazione thread-bound-subject di Apache Camel camel-shiro, con controlli vulnerabili e corretti.

Vedi Repository
31 giorno 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

CVE-2026-84181 — camel-shiro: bypass dell'autenticazione tramite un subject legato al thread

Reproduttore proof-of-concept eseguibile per la vulnerabilità di Apache Camel in cui il processore di sicurezza Shiro saltava la verifica delle credenziali quando il Subject Shiro già legato al thread corrente portava lo stesso principal dello scambio in ingresso. Poiché il thread che trasporta uno scambio Camel è prelevato da un pool e riutilizzato tra scambi, un subject lasciato legato da uno scambio autenticato precedente poteva soddisfare il controllo per uno scambio successivo che presentava nessuna credenziale valida propria — la password su quello scambio successivo non veniva mai verificata. L' attaccante non ha bisogno di altro che inviare una richiesta che nomina un principal attualmente in uso attivo.

RuntimeDirectoryStack
Camel Spring Bootcamel-spring-boot/Spring Boot 3.5.13 + camel-shiro 4.22.0 (affetto; corretto 4.22.1)
Camel Quarkuscamel-quarkus/Quarkus 3.29.0 + camel-quarkus-shiro (Camel 4.15.0, affetto; controllo corretto CQ 3.40.0 / Camel 4.22.1)

Entrambi i moduli dimostrano il comportamento affetto e quello corretto.

Cosa dimostra

Una route è protetta da una ShiroSecurityPolicy costruita con alwaysReauthenticate=false — la modalità documentata in cui il subject autenticato viene deliberatamente mantenuto legato al thread worker (in pool, riutilizzato) tra gli scambi. Il driver di exploit, all'interno di un singolo thread worker HTTP, esegue due scambi in ordine:

  1. una richiesta legittima da parte di ringo con la password corretta starr — si autentica e lascia il subject Shiro legato a questo thread (come farebbe una precedente richiesta autenticata in un servizio occupato);
  2. una richiesta dell'attaccante che nomina lo stesso utente ringo ma con una password errata not-starr, sullo stesso thread.
  • Affetto: il secondo scambio viene accettato senza verificare la sua password — cavalca il subject lasciato legato al thread dal passo 1 — e raggiunge la logica protetta. Bypass dell'autenticazione.
  • Corretto: le credenziali del secondo scambio vengono verificate autonomamente e questo viene rifiutato con una AuthenticationException, anche se lo stesso utente è ancora legato al thread.
# Camel Spring Boot
cd camel-spring-boot
mvn clean package
docker compose up -d --build
curl -s http://localhost:8080/exploit/attack     # affected: wrong password reaches protected logic; >>> PROVEN
docker compose down
# Patched control
mvn clean package -Dcamel.version=4.22.1
java -jar target/cve-2026-84181-shiro-auth-bypass-0.0.1-SNAPSHOT.jar &
curl -s http://localhost:8080/exploit/attack     # fixed: wrong password rejected; >>> Not exploited
# Camel Quarkus
cd camel-quarkus
mvn clean package
docker compose up -d --build
curl -s http://localhost:8080/exploit/attack     # affected (Camel 4.15.0): wrong password reaches protected logic
docker compose down
# Patched control: CQ 3.40.0 ships Camel 4.22.1
mvn clean package -Dcamel-quarkus.version=3.40.0 -Dquarkus.platform.version=3.40.0
java -jar target/quarkus-app/quarkus-run.jar &
curl -s http://localhost:8080/exploit/attack     # fixed: wrong password rejected

Riepilogo della vulnerabilità

ProprietàValore
Componentecamel-shiro (ShiroSecurityProcessor.authenticateUser)
CWECWE-287 (Autenticazione impropria)
GravitàMEDIA
Vettore di attaccoUna richiesta che indica un principal attualmente associato a un worker thread riutilizzato, priva di credenziali valide proprie
ImpattoBypass dell'autenticazione: una richiesta non autenticata viene accettata come un principal già associato; la sua password non viene mai verificata
Versioni interessateDalla 4.0.0 precedente alla 4.18.5, dalla 4.19.0 precedente alla 4.22.1
Versioni corrette4.18.5, 4.22.1, 4.23.0
JIRACAMEL-24439
RiconoscimentoClaude Security Scan Tool

Avviso: https://camel.apache.org/security/CVE-2026-84181.html

La correzione

ShiroSecurityProcessor.authenticateUser non salta più il login quando il subject associato al thread porta già lo stesso principal. Il codice precedente effettuava un cortocircuito su currentUser.isAuthenticated() && username.equals(currentUser.getPrincipal()); un nome utente corrispondente non dice nulla sulla password presentata con questo scambio. Il processor ora chiama currentUser.login(token) su ogni scambio, così le credenziali presentate vengono sempre verificate. alwaysReauthenticate controlla ancora la longevità rememberMe del subject, ma non determina più se la password viene verificata.

Mitigazione se non è possibile aggiornare

Assicurarsi che il subject Shiro venga rimosso dal thread al termine di ogni scambio (in modo che nessun subject possa essere ereditato da uno successivo) — ad esempio con un onCompletion/processor che chiama ThreadContext.unbindSubject() di Shiro — fino a quando non sarà possibile aggiornare.

Disclaimer

Questo repository è pubblicato per scopi educativi e difensivi: per aiutare gli utenti di Apache Camel a comprendere la vulnerabilità, verificare se sono interessati e confermare che l'aggiornamento la risolve. Gli utenti, le password e le chiavi qui presenti sono fixture locali inerti. Non utilizzare questo materiale contro sistemi di cui non si è proprietari o gestori.

Scarica lo strumento