
Suite de scripts automatisée pour détecter et corriger CVE-2025-46295 en remplaçant les JARs Apache Commons vulnérables dans les installations de FileMaker Server, avec prise en charge des modes dry-run, backup et rollback.
Le FileMaker Apache Commons JAR Replacer est une solution d'automatisation qui corrige CVE-2025-46295 en remplaçant les fichiers JAR Apache Commons vulnérables dans les installations de FileMaker Server. Au lieu de mettre à niveau l'ensemble du FileMaker Server, cette solution suit les directives officielles de Claris en remplaçant uniquement les fichiers JAR vulnérables commons-text et commons-lang3 par des versions mises à jour.
Pour la plupart des utilisateurs, téléchargez la dernière version plutôt que de compiler depuis les sources :
Allez sur la page Releases
Téléchargez le fichier approprié pour votre plateforme :
filemaker-jar-replacer-windows.zipfilemaker-jar-replacer-macos.tar.gzfilemaker-jar-replacer-ubuntu.tar.gzExtrayez et exécutez - Consultez les notes de version pour des instructions détaillées d'extraction et d'utilisation
Les fichiers JAR concernés ne sont installés que lorsque le moteur de publication Web (Web Publishing Engine) est activé pour la première fois.
Ce remplaceur de JAR fournit des scripts spécifiques à chaque plateforme pour :
replace-filemaker-jars-windows.ps1)replace-filemaker-jars-macos.sh)replace-filemaker-jars-ubuntu.sh)IMPORTANT : Avant d'apporter des modifications à votre FileMaker Server, exécutez le script avec l'option --dry-run pour vérifier si votre serveur est vulnérable et voir quelles modifications seraient apportées.
# Exécutez PowerShell en tant qu'administrateur
# Afficher l'aide et les options disponibles
.\replace-filemaker-jars-windows.ps1 -Help
# Vérifier si votre serveur est vulnérable (ÉTAPE RECOMMANDÉE EN PREMIER)
.\replace-filemaker-jars-windows.ps1 -DryRun
# Appliquer le correctif de sécurité (seulement après avoir examiné les résultats du dry-run)
.\replace-filemaker-jars-windows.ps1
# Exécutez avec les privilèges sudo
# Afficher l'aide et les options disponibles
sudo ./replace-filemaker-jars-macos.sh --help
# Vérifier si votre serveur est vulnérable (ÉTAPE RECOMMANDÉE EN PREMIER)
sudo ./replace-filemaker-jars-macos.sh --dry-run
# Appliquer le correctif de sécurité (seulement après avoir examiné les résultats du dry-run)
sudo ./replace-filemaker-jars-macos.sh
# Exécutez avec les privilèges sudo
# Afficher l'aide et les options disponibles
sudo ./replace-filemaker-jars-ubuntu.sh --help
# Vérifier si votre serveur est vulnérable (ÉTAPE RECOMMANDÉE EN PREMIER)
sudo ./replace-filemaker-jars-ubuntu.sh --dry-run
# Appliquer le correctif de sécurité (seulement après avoir examiné les résultats du dry-run)
sudo ./replace-filemaker-jars-ubuntu.sh
L'option --dry-run est le moyen le plus sûr de :
Exécutez toujours --dry-run d'abord pour comprendre ce que le script fera sur votre système.
filemaker-jar-replacer/
├── README.md # Ce fichier
├── replace-filemaker-jars-windows.ps1 # Script PowerShell Windows
├── replace-filemaker-jars-macos.sh # Script Bash macOS
├── replace-filemaker-jars-ubuntu.sh # Script Bash Ubuntu
├── scripts/
│ ├── windows/
│ │ └── modules/ # Modules PowerShell pour opérations JAR
│ ├── macos/
│ │ └── modules/ # Modules de fonctions Bash pour opérations JAR
│ ├── ubuntu/
│ │ └── modules/ # Modules de fonctions Bash pour opérations JAR
│ └── shared/ # Utilitaires partagés et modèles
├── config/
│ ├── logging-config.json # Configuration de la journalisation
│ └── jar-replacement-config.json # Configuration du remplacement JAR
├── tests/ # Suite de tests (BATS et Pester)
├── logs/ # Fichiers journaux (créés lors de l'exécution)
└── backups/ # Fichiers de sauvegarde JAR (créés lors de l'exécution)
Vous pouvez configurer le programme de mise à jour à l'aide de variables d'environnement :
# Identifiants FileMaker Server
export FILEMAKER_USERNAME="admin"
export FILEMAKER_PASSWORD="your_secure_password"
# Chemins personnalisés (optionnels)
export FILEMAKER_INSTALL_PATH="/custom/path/to/filemaker"
export BACKUP_DIRECTORY="/custom/backup/path"
Créez un fichier .env dans le répertoire du script :
# Fichier .env (doit avoir les permissions 600)
FILEMAKER_USERNAME=admin
FILEMAKER_PASSWORD=your_secure_password
BACKUP_DIRECTORY=/custom/backup/path
Important : Assurez-vous que le fichier .env a des permissions restrictives (600) pour la sécurité.
Si le script automatisé échoue, suivez ces étapes manuelles pour remplacer les fichiers JAR vulnérables :
# Utilisation de fmsadmin (recommandé)
& "C:\Program Files\FileMaker\FileMaker Server\Database Server\fmsadmin.exe" stop wpe -u admin -p password
# Ou via les services
Stop-Service "FileMaker Server Web Publishing Engine"
# Utilisation de fmsadmin (recommandé)
sudo "/Library/FileMaker Server/Database Server/bin/fmsadmin" stop wpe -u admin -p password
# Ou via launchctl
sudo launchctl stop com.filemaker.wpe
# Utilisation de fmsadmin (recommandé)
sudo "/opt/FileMaker/FileMaker Server/Database Server/bin/fmsadmin" stop wpe -u admin -p password
# Ou via 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/"
Téléchargez les fichiers JAR suivants depuis Apache Commons :
Vérifiez les sommes de contrôle par rapport aux sommes de contrôle officielles d'Apache Commons.
$jarPath = "C:\Program Files\FileMaker\FileMaker Server\Web Publishing\publishing-engine\jwpc-tomcat\webapps\ROOT\WEB-INF\lib"
# Supprimer les anciens fichiers JAR
Remove-Item "$jarPath\commons-text-*.jar"
Remove-Item "$jarPath\commons-lang3-*.jar"
# Copier les nouveaux fichiers JAR
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
# Supprimer les anciens fichiers JAR
sudo rm "$JAR_PATH"/commons-text-*.jar
sudo rm "$JAR_PATH"/commons-lang3-*.jar
# Copier les nouveaux fichiers JAR
sudo cp commons-text-1.11.0.jar "$JAR_PATH/"
sudo cp commons-lang3-3.18.0.jar "$JAR_PATH/"
# Définir les permissions appropriées
sudo chown fmserver:fmsadmin "$JAR_PATH"/commons-*.jar # Ajuster la propriété si nécessaire
sudo chmod 644 "$JAR_PATH"/commons-*.jar
# Utilisation de fmsadmin (recommandé)
& "C:\Program Files\FileMaker\FileMaker Server\Database Server\fmsadmin.exe" start wpe -u admin -p password
# Ou via les services
Start-Service "FileMaker Server Web Publishing Engine"
# Utilisation de fmsadmin (recommandé)
sudo "/Library/FileMaker Server/Database Server/bin/fmsadmin" start wpe -u admin -p password
# Ou via launchctl
sudo launchctl start com.filemaker.wpe
# Utilisation de fmsadmin (recommandé)
sudo "/opt/FileMaker/FileMaker Server/Database Server/bin/fmsadmin" start wpe -u admin -p password
# Ou via systemctl
sudo systemctl start filemaker-wpe
Si le script automatisé échoue, suivez ces étapes manuelles :
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.logCe projet comprend des suites de tests complètes pour toutes les plateformes afin de garantir la fiabilité et la sécurité.
Le projet utilise différents frameworks de test pour chaque plateforme :
macOS (avec Homebrew) :
brew install bats-core
Ubuntu/Debian :
# Installation via le gestionnaire de paquets
sudo apt update
sudo apt install bats
# Ou installer la dernière version depuis les sources
git clone https://github.com/bats-core/bats-core.git
cd bats-core
sudo ./install.sh /usr/local
Installation manuelle (tout système Unix-like) :
git clone https://github.com/bats-core/bats-core.git
cd bats-core
sudo ./install.sh /usr/local
Pester est préinstallé avec PowerShell 5.1+ et Windows PowerShell, mais vous pouvez mettre à jour vers la dernière version :
# Vérifier la version actuelle
Get-Module -Name Pester -ListAvailable
# Installer/Mettre à jour vers la dernière version (PowerShell 5.1+)
Install-Module -Name Pester -Force -SkipPublisherCheck
# Pour PowerShell Core (7+)
Install-Module -Name Pester -Scope CurrentUser
# Exécuter un fichier de test BATS spécifique (Linux/macOS)
bats tests/backup-creation.bats
bats tests/version-detection.bats
# Exécuter un fichier de test Pester spécifique (Windows)
Invoke-Pester tests/windows/Integration.Tests.ps1
Invoke-Pester tests/windows/Utilities.Tests.ps1
# Exécuter tous les tests BATS (Linux/macOS)
bats tests/*.bats
# Exécuter tous les tests Pester (Windows)
Invoke-Pester tests/windows/
La suite de tests comprend :
Les tests créent des environnements temporaires isolés et n'affectent pas votre système ou votre installation FileMaker. Cependant, certains tests peuvent nécessiter :
Ce remplaceur de JAR est fourni tel quel pour corriger CVE-2025-46295. Utilisez-le conformément à votre contrat de licence FileMaker Server et aux conditions de licence Apache Commons.