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
kafka-connect-filestream-win — Kafka Connect 4.3.1 - Alta - Residuo di classpath della classe FileStream su Windows - lettura/scrittura di file non autenticata | Kitploit
Strumenti/GitHubGitHub/abraxas/kafka-connect-filestream-win
Analisi delle VulnerabilitàExploitSfruttamento di Applicazioni WebRaccolta InformazioniVirtualizzazione per la SicurezzaPenetration TestingConfigurazione ErrataLab e Pratica
GitHubabraxas/kafka-connect-filestream-win

kafka-connect-filestream-win

Kafka Connect 4.3.1 - Alta - Residuo di classpath della classe FileStream su Windows - lettura/scrittura di file non autenticata

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

Abraxas Labs - kafka-connect-filestream-win

abraxaslabs.tech  ·  github.com/abraxas  ·  @abraxas_null  ·  [email protected]  ·  kafka-connect-filestream-win

kafka-connect-filestream-win

Apache Kafka Connect 4.3.1 (26b251a) - Apache Software Foundation

KAFKA-13748 ha rimosso FileStream dal CLASSPATH di Connect su Unix, così che il REST non autenticato non potesse aprire file locali. Il launcher Windows non ha mai ricevuto quell'esclusione. Il tarball continua a includere connect-file in libs/. kafka-run-class.bat concatena ogni jar presente lì dentro.

Una POST /connectors non autenticata su un worker avviato su Windows legge e aggiunge file che l'UID di Connect può toccare.

IDnessuna CVE al momento
CWECWE-552, CWE-1188
CVSSHigh: 9.1 CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:N
ProdottoApache Kafka Connect
Affetto4.3.1 (26b251a); Windows bin/windows/kafka-run-class.bat. Lo .sh Unix esclude già connect-file.
AuthConnect REST non autenticato (default listeners=http://:8083, nessun rest.extension.classes)
LicenzaGNU Affero GPL v3.0
Labsolo 127.0.0.1

Cosa può fare un attaccante

Punta un browser o curl verso Connect REST su un worker avviato con i file .bat Windows forniti. Crea un source FileStream. Il worker apre qualunque percorso tu metta in file e produce i byte su un topic Kafka. Crea un sink FileStream. Il worker crea o aggiunge qualunque percorso tu metta in file. Non esiste alcuna allowlist.

Il launcher Unix elimina già connect-file.*.jar. Lo stesso JSON contro il connect-distributed.sh stock restituisce un 400: connettore sconosciuto. Il Docker apache/kafka predefinito è il broker Linux. Questo residuo è il CLASSPATH di Windows.

Come l'ho trovato

Ho letto prima la lista delle CVE di Kafka: JAAS Jndi/Ldap, allowlist URL OAUTHBEARER, DefaultJwtValidator, ConfigProvider, la JIRA pubblica di FileStream. Il kafka-run-class.sh Unix ha ancora l'esclusione:

regex="(-(test|test-sources|src|scaladoc|javadoc)\.jar|jar.asc|connect-file.*\.jar)$"

Anche cc_pkg omette file. Poi ho aperto la copia Windows:

for %%p in (api runtime file json tools) do (
	for %%i in ("%BASE_DIR%\connect\%%p\build\libs\connect-%%p*.jar") do (
		call :concat "%%i"
	)
)
rem Classpath addition for release
for %%i in ("%BASE_DIR%\libs\*") do (
	call :concat "%%i"
)

build.gradle copia ancora connect-file in libs/. La documentazione dice che FileStream non è nel CLASSPATH predefinito. Quella frase è vera per lo .sh.

Doyensec ha descritto questa classe nel 2022. KAFKA-13748 / PR 11908 è stata la correzione per Unix. Il .bat non è mai stato aggiornato.

Vicoli ciechi già registrati: Wine; eseguire il .bat su macOS; considerare plugin.path come la falla (è vuoto su entrambi i worker); sostenere che il Docker Linux sia questo bug; prendere un 201 su Unix come SUCCESS. Teatro: una reverse shell. L'oracolo è il 400 su Unix più una riga testimone nel file sink.

Lab

cd lab
./run.sh

Il REST Unix 127.0.0.1:18083 è il connect-distributed.sh stock. Il Windows-sim 127.0.0.1:18084 è libs/* non filtrato, il loop libs\* del .bat di release. Non Wine. Il broker è apache/kafka:4.3.1 sulla rete compose. Associalo al loopback.

unix-filestream=absent unix-post=400
win-filestream=present win-source=201 win-sink=201 pwned=yes
SUCCESS kafka-connect-filestream-win ... KAFKA-CONNECT-FILESTREAM-WIN-WITNESS

La correzione

Dai a kafka-run-class.bat la stessa esclusione di connect-file che lo .sh ha già. Rimuovi file dal loop gradle-from-source for %%p in (api runtime file json tools). Continua a distribuire il jar per chi imposta plugin.path di proposito.

Riferimenti

  • github.com/apache/kafka tag 4.3.1 (26b251a451ce941d3d7a55e6487bcb7f16b5ad48)
  • bin/windows/kafka-run-class.bat · bin/kafka-run-class.sh
  • FileStreamSourceTask.java · FileStreamSinkTask.java
  • KAFKA-13748 · PR 11908
  • Doyensec 2022 Kafka Connect FileStream advisory
Scarica lo strumento