## https://sploitus.com/exploit?id=KITPLOIT:TOOLS-GITHUB-OSCERD-CVE-2026-66908
# CVE-2026-66908 — camel-platform-http-main JWT `iss`/`aud` nicht validiert
Ausführbarer Proof-of-Concept-Reproduktor für die Apache-Camel-Schwachstelle, bei der der **in camel-main eingebettete HTTP-Server** seinen JWT-Authentifikator allein aus einem Keystore erstellt, wenn weder `jwtIssuer` noch `jwtAudience` konfiguriert ist, sodass eingehende Token nur auf **Signatur und Ablauf geprüft werden** – die Ansprüche `iss` und `aud` werden nie validiert.
Laufzeit| Verzeichnis| Stack
---|---|---
**Camel Main** (Standalone)| `camel-main/`| camel-main **4.21.0** \+ camel-platform-http-main
> **Warum camel-main und nicht Camel Spring Boot / Camel Quarkus?** Die anfällige Klasse `JWTAuthenticationConfigurer` lebt in `camel-platform-http-main` — dem **in camel-main eingebetteten HTTP-Server** (`MainHttpServer`), der von eigenständigen camel-main-Anwendungen und `camel-jbang` verwendet wird. Dieser Server ist _nicht_ die Camel-Spring-Boot-Plattform-HTTP-Integration (servlet-basiert) und auch nicht die Camel-Quarkus-Integration (Quarkus/Vert.x-HTTP mit eigener Sicherheit), daher gibt es keinen getreuen Spring-Boot- oder Quarkus-Reproduktor für diesen spezifischen Fehler. Dieses Repository stellt daher einen eigenständigen **camel-main** -Reproduktor bereit, der den zutreffenden Host für den Fehler darstellt.
root@kitploit:~
cd camel-main
mvn clean package
docker compose up -d --build
curl -s http://localhost:8080/exploit
docker compose down
Expected output on an affected build:
root@kitploit:~
[1] GET /protected with NO token -> HTTP 401 (auth is enforced)
[2] GET /protected with token iss=https://attacker.example aud=some-unrelated-service -> HTTP 200 (ACCEPTED — iss/aud NOT validated)
[3] GET /protected with the same token but EXPIRED -> HTTP 401 (expiry IS checked)
>>> PROVEN: ... the iss and aud claims were never checked ... : true
## Zusammenfassung der Schwachstelle
Advisory: https://camel.apache.org/security/CVE-2026-66908.html
## Die Behebung
Ab 4.22.0 **verweigert der Server den Start** , wenn ein JWT-Keystore konfiguriert ist, aber weder `jwtIssuer` noch `jwtAudience` gesetzt ist, und benennt die fehlenden Eigenschaften. Ein Betreiber, der tatsächlich eine reine Signatur- und Ablaufvalidierung wünscht, muss dies explizit mit `camel.server.jwtAllowMissingIssuerAndAudience=true` zulassen (standardmäßig Fail-Closed):
root@kitploit:~
// fixed (JWTAuthenticationConfigurer.assertIssuerOrAudienceConfigured)
if (ObjectHelper.isEmpty(audience) && ObjectHelper.isEmpty(issuer)) {
throw new IllegalArgumentException(
"JWT authentication requires camel.server.jwtIssuer or camel.server.jwtAudience to be configured, ...");
}
## Haftungsausschluss
Dieses Repository wird zu Bildungs- und Verteidigungszwecken veröffentlicht: um Apache-Camel-Anwendern zu helfen, die Schwachstelle zu verstehen, zu prüfen, ob sie betroffen sind, und zu bestätigen, dass ein Upgrade sie behebt. Die Token werden lokal mit einem Wegwerf-Demo-Keystore erstellt, der im Projekt enthalten ist. Verwenden Sie dieses Material nicht gegen Systeme, die Sie nicht besitzen oder betreiben.