CVE-2026-79984
Apache Camel: camel-mina-sftp risolveva il percorso remoto di un file sottoposto a polling a partire dal nome riportato nel listato della directory del server senza vincolarlo alla directory oggetto del polling, per cui una voce del listato contenente segmenti di traversal poteva essere spostata al di fuori
- Pubblicato
- 19 ott 2026
- Aggiornato
- 20 ott 2026
- Assegnazione CNA
- apache
- Evidenza osservata
- 17 ott 2026
CVSS primario
cvelist · CVSS 3.1
CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:NRiepilogo
Vulnerabilità di limitazione impropria di un pathname a una directory limitata ('Path Traversal') nel componente Apache Camel Mina SFTP. Questo problema riguarda Apache Camel: dalla 4.18.0 precedente alla 4.18.5, dalla 4.19.0 precedente alla 4.22.1. I consumer remote-file di Camel eseguono il polling di una directory su un server remoto e costruiscono il percorso remoto assoluto di ciascun file concatenando la directory configurata con il nome del file riportato nel listing della directory del server. Tale concatenazione (FtpUtils.absoluteFilePath e GenericFileConsumer) non applicava alcuna normalizzazione lessicale né alcun controllo che il risultato rimanesse all'interno della directory oggetto del polling, e il percorso risultante diventava l'operando per ogni successiva operazione remota sul file: recupero (FtpOperations.retrieveFile / SftpOperations, raggiunto da GenericFileConsumer dove il nome da recuperare è preso letteralmente da GenericFile.getAbsoluteFilePath), cancellazione quando delete=true (GenericFileDeleteProcessStrategy) e rinomina quando sono configurati move, preMove, moveFailed o readLock=rename (GenericFileProcessStrategySupport e GenericFileRenameExclusiveReadLockStrategy). Né isValidFile né isMatched eseguivano alcun controllo di contenimento. Una voce del listing che non è un singolo segmento di percorso veniva quindi risolta in un percorso esterno alla directory di polling configurata, causando la lettura, la cancellazione o la rinomina di file al di fuori di essa da parte di Camel utilizzando le credenziali dell'endpoint stesso. Un nome nel listing non è un dato controllato dalla route. Esso è fornito dal server remoto, e il canale di controllo FTP non dispone di alcuna protezione dell'integrità, quindi un attaccante on-path può riscrivere una risposta LIST senza possedere alcuna credenziale; un server compromesso, malevolo o multi-tenant, oppure un server basato su un filesystem virtuale, può emettere direttamente un tale nome. Il recupero è raggiungibile in una configurazione predefinita del consumer, poiché i consumer remoti scaricano ogni file elencato; la cancellazione e la rinomina richiedono inoltre una delle opzioni di disposizione sopra indicate, tutte comuni. L'evasione dalla directory che Camel era configurato per monitorare è incondizionata, mentre l'evasione dal confine dell'account del server stesso dipende inoltre dal fatto che quel server confini l'account. L'opzione jailStartingDirectory, documentata come limitante di Camel alla directory di partenza e abilitata per impostazione predefinita, governava le scritture del producer e, a seguito del lavoro sul contenimento di localWorkDirectory, i download dei consumer verso la directory di lavoro locale - ma non vincolava questo operando remoto, quindi il suo nome e la sua descrizione rivendicavano un confine che qui non era applicato. Lo stesso punto di ingresso era già stato riconosciuto sul lato locale: il percorso di download di localWorkDirectory era stato vincolato affinché un nome di file remoto contenente segmenti di directory padre non potesse risolversi al di fuori della directory di lavoro locale. L'operando remoto era la metà rimanente di quella superficie. Questo artefatto fornisce lo schema mina-sftp, un'implementazione SFTP alternativa il cui consumer deriva dalla stessa classe base RemoteFileConsumer e quindi ereditava la stessa risoluzione non vincolata. Eseguire l'aggiornamento ad Apache Camel 4.23.0, che corregge il problema. Gli utenti sul ramo delle release 4.22.x dovrebbero aggiornare alla 4.22.1. Gli utenti sul ramo delle release LTS 4.18.x dovrebbero aggiornare alla 4.18.5. Il ramo 4.14.x ha raggiunto la fine del ciclo di vita e non riceve questa correzione; gli utenti su di esso dovrebbero passare a un ramo di release supportato.
Utilizzo responsabile
Utilizza le informazioni sulla vulnerabilità solo sui sistemi che possiedi o che sei autorizzato a testare. Kitploit si collega ai metadati della ricerca pubblica e non memorizza codici exploit o payload dannosi.