
Riproduttore PoC per CVE-2026-53913 (Apache Camel camel-keycloak): KeycloakSecurityPolicy fallisce in modalità fail-open nella configurazione di base: senza ruoli/autorizzazioni richiesti, il token non viene mai verificato, quindi qualsiasi token bearer forgiato o casuale aggira l'autenticazione (RCE non autenticata). Corretto in 4.18.3/4.21.0.
Reproducer proof-of-concept eseguibili per la medesima vulnerabilità Apache Camel, uno per runtime:
| Runtime | Directory | Stack |
|---|---|---|
| Camel Spring Boot | camel-spring-boot/ | Spring Boot 3.2.0 + camel-spring-boot 4.18.2 |
| Camel Quarkus | camel-quarkus/ | Quarkus 3.36.0 + Camel Quarkus 3.36.0 (include Camel 4.20.0) |
Entrambe sono versioni interessate (corrette in 4.18.3 / 4.21.0) e dimostrano il medesimo difetto:
KeycloakSecurityPolicy, nella sua "Basic Setup" documentata, senza ruoli/autorizzazioni richiesti, non verifica mai il
token presentato — il token viene sottoposto solo a un controllo di non nullità. Qualsiasi valore bearer spurio o contraffatto raggiunge la
rotta protetta e, quando tale rotta inoltra verso un sink di esecuzione di codice, il risultato è un'esecuzione remota di codice
non autenticata (CWE-287 / CWE-306 / CWE-636). È il problema più grave del lotto 2026. (La variante Spring Boot
pilota il componente exec; la variante Quarkus pilota un processore equivalente.)
Ogni sottodirectory è un progetto autonomo con il proprio Dockerfile, docker-compose.yml e README. In
breve, per entrambi:
cd camel-spring-boot # or: cd camel-quarkus
mvn clean package
docker compose up -d --build
curl -s http://localhost:8080/exploit/attack
docker compose down
Avviso: https://camel.apache.org/security/CVE-2026-53913.html
Questi reproducer sono forniti solo per ricerca sulla sicurezza e test autorizzati, per una vulnerabilità divulgata pubblicamente e corretta. Non utilizzarli contro sistemi senza un permesso esplicito.
| Property | Value |
|---|
| Component | camel-keycloak (Spring Boot: camel-keycloak-starter; Quarkus: camel-quarkus-keycloak) |
| CWE | CWE-287 (Improper Authentication) / CWE-306 (Missing Authentication) / CWE-636 (Not Failing Securely) |
| Impact | Bypass pre-autenticazione; RCE non autenticata quando la rotta protetta inoltra verso un sink di esecuzione di codice |
| Affected Versions | Dalla 4.15.0 prima della 4.18.3, dalla 4.19.0 prima della 4.21.0 |
| Fixed Versions | 4.18.3, 4.21.0 |
| JIRA | CAMEL-23738 (PR apache/camel#23958) |
| Credit | Lidor Ben Shitrit (Novee Security) |