
Automatisierte Skriptsammlung zur Erkennung und Behebung von CVE-2025-46295 durch Ersetzen anfälliger Apache Commons JARs in FileMaker Server-Installationen mit Dry-Run-, Backup- und Rollback-Unterstützung.
Der FileMaker Apache Commons JAR-Ersetzer ist eine Automatisierungslösung, die CVE-2025-46295 adressiert, indem sie verwundbare Apache Commons JAR-Dateien in FileMaker Server-Installationen ersetzt. Anstatt den gesamten FileMaker Server zu aktualisieren, folgt diese Lösung der offiziellen Claris-Anleitung, um nur die verwundbaren commons-text- und commons-lang3-JAR-Dateien durch aktualisierte Versionen zu ersetzen.
Für die meisten Benutzer: Laden Sie die neueste Version herunter, anstatt aus dem Quellcode zu bauen:
Gehen Sie zur Releases-Seite
Laden Sie die passende Datei für Ihre Plattform herunter:
filemaker-jar-replacer-windows.zipfilemaker-jar-replacer-macos.tar.gzfilemaker-jar-replacer-ubuntu.tar.gzExtrahieren und ausführen – Siehe die Versionshinweise für detaillierte Extraktions- und Nutzungsanweisungen
Die betroffenen JAR-Dateien werden nur installiert, wenn das Web Publishing Engine zum ersten Mal aktiviert wird.
Dieser JAR-Ersetzer bietet plattformspezifische Skripte für:
replace-filemaker-jars-windows.ps1)replace-filemaker-jars-macos.sh)replace-filemaker-jars-ubuntu.sh)WICHTIG: Bevor Sie Änderungen an Ihrem FileMaker Server vornehmen, führen Sie das Skript mit der Option --dry-run aus, um zu überprüfen, ob Ihr Server verwundbar ist und welche Änderungen vorgenommen würden.
# PowerShell als Administrator ausführen
# Hilfe und verfügbare Optionen anzeigen
.\replace-filemaker-jars-windows.ps1 -Help
# Überprüfen, ob Ihr Server verwundbar ist (EMPFOHLENER ERSTER SCHRITT)
.\replace-filemaker-jars-windows.ps1 -DryRun
# Sicherheitsfix anwenden (nur nach Überprüfung der Trockenlauf-Ergebnisse)
.\replace-filemaker-jars-windows.ps1
# Mit sudo-Rechten ausführen
# Hilfe und verfügbare Optionen anzeigen
sudo ./replace-filemaker-jars-macos.sh --help
# Überprüfen, ob Ihr Server verwundbar ist (EMPFOHLENER ERSTER SCHRITT)
sudo ./replace-filemaker-jars-macos.sh --dry-run
# Sicherheitsfix anwenden (nur nach Überprüfung der Trockenlauf-Ergebnisse)
sudo ./replace-filemaker-jars-macos.sh
# Mit sudo-Rechten ausführen
# Hilfe und verfügbare Optionen anzeigen
sudo ./replace-filemaker-jars-ubuntu.sh --help
# Überprüfen, ob Ihr Server verwundbar ist (EMPFOHLENER ERSTER SCHRITT)
sudo ./replace-filemaker-jars-ubuntu.sh --dry-run
# Sicherheitsfix anwenden (nur nach Überprüfung der Trockenlauf-Ergebnisse)
sudo ./replace-filemaker-jars-ubuntu.sh
Die Option --dry-run ist der sicherste Weg, um:
Führen Sie immer zuerst --dry-run aus, um zu verstehen, was das Skript auf Ihrem System tun wird.
filemaker-jar-replacer/
├── README.md # Diese Datei
├── replace-filemaker-jars-windows.ps1 # Windows PowerShell-Skript
├── replace-filemaker-jars-macos.sh # macOS Bash-Skript
├── replace-filemaker-jars-ubuntu.sh # Ubuntu Bash-Skript
├── scripts/
│ ├── windows/
│ │ └── modules/ # PowerShell-Module für JAR-Operationen
│ ├── macos/
│ │ └── modules/ # Bash-Funktionsmodule für JAR-Operationen
│ ├── ubuntu/
│ │ └── modules/ # Bash-Funktionsmodule für JAR-Operationen
│ └── shared/ # Gemeinsame Hilfsprogramme und Vorlagen
├── config/
│ ├── logging-config.json # Protokollierungskonfiguration
│ └── jar-replacement-config.json # JAR-Ersetzungskonfiguration
├── tests/ # Testsuite (BATS und Pester)
├── logs/ # Protokolldateien (während der Ausführung erstellt)
└── backups/ # JAR-Sicherungsdateien (während der Ausführung erstellt)
Sie können den Updater mit Umgebungsvariablen konfigurieren:
# FileMaker Server-Anmeldedaten
export FILEMAKER_USERNAME="admin"
export FILEMAKER_PASSWORD="your_secure_password"
# Benutzerdefinierte Pfade (optional)
export FILEMAKER_INSTALL_PATH="/custom/path/to/filemaker"
export BACKUP_DIRECTORY="/custom/backup/path"
Erstellen Sie eine .env-Datei im Skriptverzeichnis:
# .env-Datei (muss Berechtigung 600 haben)
FILEMAKER_USERNAME=admin
FILEMAKER_PASSWORD=your_secure_password
BACKUP_DIRECTORY=/custom/backup/path
Wichtig: Stellen Sie sicher, dass die .env-Datei restriktive Berechtigungen (600) aus Sicherheitsgründen hat.
Wenn das automatisierte Skript fehlschlägt, führen Sie die folgenden manuellen Schritte aus, um die verwundbaren JAR-Dateien zu ersetzen:
# Verwendung von fmsadmin (empfohlen)
& "C:\Program Files\FileMaker\FileMaker Server\Database Server\fmsadmin.exe" stop wpe -u admin -p password
# Oder mittels Dienste
Stop-Service "FileMaker Server Web Publishing Engine"
# Verwendung von fmsadmin (empfohlen)
sudo "/Library/FileMaker Server/Database Server/bin/fmsadmin" stop wpe -u admin -p password
# Oder mittels launchctl
sudo launchctl stop com.filemaker.wpe
# Verwendung von fmsadmin (empfohlen)
sudo "/opt/FileMaker/FileMaker Server/Database Server/bin/fmsadmin" stop wpe -u admin -p password
# Oder mittels systemctl
sudo systemctl stop filemaker-wpe
$jarPath = "C:\Program Files\FileMaker\FileMaker Server\Web Publishing\publishing-engine\jwpc-tomcat\webapps\ROOT\WEB-INF\lib"
$backupPath = "C:\Temp\jar-backup-$(Get-Date -Format 'yyyyMMdd-HHmmss')"
New-Item -ItemType Directory -Path $backupPath
Copy-Item "$jarPath\commons-text-*.jar" $backupPath
Copy-Item "$jarPath\commons-lang3-*.jar" $backupPath
JAR_PATH="/Library/FileMaker Server/Web Publishing/publishing-engine/jwpc-tomcat/webapps/ROOT/WEB-INF/lib" # macOS
# JAR_PATH="/opt/FileMaker/FileMaker Server/Web Publishing/publishing-engine/jwpc-tomcat/webapps/ROOT/WEB-INF/lib" # Ubuntu
BACKUP_PATH="/tmp/jar-backup-$(date +%Y%m%d-%H%M%S)"
mkdir -p "$BACKUP_PATH"
cp "$JAR_PATH"/commons-text-*.jar "$BACKUP_PATH/"
cp "$JAR_PATH"/commons-lang3-*.jar "$BACKUP_PATH/"
Laden Sie die folgenden JAR-Dateien von Apache Commons herunter:
Überprüfen Sie die Prüfsummen mit den offiziellen Apache Commons-Prüfsummen.
$jarPath = "C:\Program Files\FileMaker\FileMaker Server\Web Publishing\publishing-engine\jwpc-tomcat\webapps\ROOT\WEB-INF\lib"
# Alte JAR-Dateien entfernen
Remove-Item "$jarPath\commons-text-*.jar"
Remove-Item "$jarPath\commons-lang3-*.jar"
# Neue JAR-Dateien kopieren
Copy-Item "commons-text-1.11.0.jar" $jarPath
Copy-Item "commons-lang3-3.18.0.jar" $jarPath
JAR_PATH="/Library/FileMaker Server/Web Publishing/publishing-engine/jwpc-tomcat/webapps/ROOT/WEB-INF/lib" # macOS
# JAR_PATH="/opt/FileMaker/FileMaker Server/Web Publishing/publishing-engine/jwpc-tomcat/webapps/ROOT/WEB-INF/lib" # Ubuntu
# Alte JAR-Dateien entfernen
sudo rm "$JAR_PATH"/commons-text-*.jar
sudo rm "$JAR_PATH"/commons-lang3-*.jar
# Neue JAR-Dateien kopieren
sudo cp commons-text-1.11.0.jar "$JAR_PATH/"
sudo cp commons-lang3-3.18.0.jar "$JAR_PATH/"
# Korrekte Berechtigungen setzen
sudo chown fmserver:fmsadmin "$JAR_PATH"/commons-*.jar # Besitzer ggf. anpassen
sudo chmod 644 "$JAR_PATH"/commons-*.jar
# Verwendung von fmsadmin (empfohlen)
& "C:\Program Files\FileMaker\FileMaker Server\Database Server\fmsadmin.exe" start wpe -u admin -p password
# Oder mittels Dienste
Start-Service "FileMaker Server Web Publishing Engine"
# Verwendung von fmsadmin (empfohlen)
sudo "/Library/FileMaker Server/Database Server/bin/fmsadmin" start wpe -u admin -p password
# Oder mittels launchctl
sudo launchctl start com.filemaker.wpe
# Verwendung von fmsadmin (empfohlen)
sudo "/opt/FileMaker/FileMaker Server/Database Server/bin/fmsadmin" start wpe -u admin -p password
# Oder mittels systemctl
sudo systemctl start filemaker-wpe
Wenn das automatisierte Skript fehlschlägt, führen Sie die folgenden manuellen Schritte aus:
net stop "FileMaker Server"
sudo launchctl stop com.filemaker.fms
sudo service fmshelper stop
net start "FileMaker Server"
sudo launchctl start com.filemaker.fms
sudo service fmshelper start
logs\filemaker-jar-replacer-windows.loglogs/filemaker-jar-replacer-macos.loglogs/filemaker-jar-replacer-ubuntu.logDieses Projekt enthält umfassende Testsuites für alle Plattformen, um Zuverlässigkeit und Sicherheit zu gewährleisten.
Das Projekt verwendet verschiedene Test-Frameworks für jede Plattform:
macOS (mit Homebrew):
brew install bats-core
Ubuntu/Debian:
# Installation über den Paketmanager
sudo apt update
sudo apt install bats
# Oder die neueste Version aus dem Quellcode installieren
git clone https://github.com/bats-core/bats-core.git
cd bats-core
sudo ./install.sh /usr/local
Manuelle Installation (jedes Unix-ähnliche System):
git clone https://github.com/bats-core/bats-core.git
cd bats-core
sudo ./install.sh /usr/local
Pester ist in PowerShell 5.1+ und Windows PowerShell vorinstalliert, aber Sie möchten möglicherweise auf die neueste Version aktualisieren:
# Aktuelle Version überprüfen
Get-Module -Name Pester -ListAvailable
# Installieren/Aktualisieren auf die neueste Version (PowerShell 5.1+)
Install-Module -Name Pester -Force -SkipPublisherCheck
# Für PowerShell Core (7+)
Install-Module -Name Pester -Scope CurrentUser
# Bestimmte BATS-Testdatei ausführen (Linux/macOS)
bats tests/backup-creation.bats
bats tests/version-detection.bats
# Bestimmte Pester-Testdatei ausführen (Windows)
Invoke-Pester tests/windows/Integration.Tests.ps1
Invoke-Pester tests/windows/Utilities.Tests.ps1
# Alle BATS-Tests ausführen (Linux/macOS)
bats tests/*.bats
# Alle Pester-Tests ausführen (Windows)
Invoke-Pester tests/windows/
Die Testsuite umfasst:
Tests erstellen isolierte temporäre Umgebungen und haben keine Auswirkungen auf Ihr System oder Ihre FileMaker-Installation. Einige Tests erfordern jedoch möglicherweise:
Dieser JAR-Ersetzer wird wie besehen zur Behebung von CVE-2025-46295 bereitgestellt. Verwenden Sie es gemäß Ihrem FileMaker Server-Lizenzvertrag und den Lizenzbedingungen von Apache Commons.