
Suite di script automatizzati per rilevare e correggere CVE-2025-46295 sostituendo i JAR Apache Commons vulnerabili nelle installazioni di FileMaker Server con supporto per dry-run, backup e rollback.
Il sostituto dei JAR Apache Commons per FileMaker è una soluzione di automazione che affronta CVE-2025-46295 sostituendo i file JAR Apache Commons vulnerabili nelle installazioni di FileMaker Server. Invece di aggiornare l'intero FileMaker Server, questa soluzione segue le indicazioni ufficiali di Claris per sostituire solo i file JAR vulnerabili commons-text e commons-lang3 con versioni aggiornate.
Per la maggior parte degli utenti, scarica l'ultima release invece di compilare dal sorgente:
Vai alla pagina delle Release
Scarica il file appropriato per la tua piattaforma:
filemaker-jar-replacer-windows.zipfilemaker-jar-replacer-macos.tar.gzfilemaker-jar-replacer-ubuntu.tar.gzEstrai ed esegui - Consulta le note di release per istruzioni dettagliate su estrazione e utilizzo
I file JAR interessati vengono installati solo quando il Web Publishing Engine viene abilitato per la prima volta.
Questo sostituto dei JAR fornisce script specifici per piattaforma:
replace-filemaker-jars-windows.ps1)replace-filemaker-jars-macos.sh)replace-filemaker-jars-ubuntu.sh)IMPORTANTE: Prima di apportare qualsiasi modifica al tuo FileMaker Server, esegui lo script con l'opzione --dry-run per verificare se il tuo server è vulnerabile e vedere quali modifiche verrebbero apportate.
# Esegui PowerShell come amministratore
# Mostra la guida e le opzioni disponibili
.\replace-filemaker-jars-windows.ps1 -Help
# Controlla se il tuo server è vulnerabile (PRIMO PASSO CONSIGLIATO)
.\replace-filemaker-jars-windows.ps1 -DryRun
# Applica la correzione di sicurezza (solo dopo aver esaminato i risultati del dry-run)
.\replace-filemaker-jars-windows.ps1
# Esegui con privilegi sudo
# Mostra la guida e le opzioni disponibili
sudo ./replace-filemaker-jars-macos.sh --help
# Controlla se il tuo server è vulnerabile (PRIMO PASSO CONSIGLIATO)
sudo ./replace-filemaker-jars-macos.sh --dry-run
# Applica la correzione di sicurezza (solo dopo aver esaminato i risultati del dry-run)
sudo ./replace-filemaker-jars-macos.sh
# Esegui con privilegi sudo
# Mostra la guida e le opzioni disponibili
sudo ./replace-filemaker-jars-ubuntu.sh --help
# Controlla se il tuo server è vulnerabile (PRIMO PASSO CONSIGLIATO)
sudo ./replace-filemaker-jars-ubuntu.sh --dry-run
# Applica la correzione di sicurezza (solo dopo aver esaminato i risultati del dry-run)
sudo ./replace-filemaker-jars-ubuntu.sh
L'opzione --dry-run è il modo più sicuro per:
Esegui sempre prima --dry-run per capire cosa farà lo script sul tuo sistema.
filemaker-jar-replacer/
├── README.md # Questo file
├── replace-filemaker-jars-windows.ps1 # Script PowerShell per Windows
├── replace-filemaker-jars-macos.sh # Script Bash per macOS
├── replace-filemaker-jars-ubuntu.sh # Script Bash per Ubuntu
├── scripts/
│ ├── windows/
│ │ └── modules/ # Moduli PowerShell per le operazioni JAR
│ ├── macos/
│ │ └── modules/ # Moduli di funzioni Bash per le operazioni JAR
│ ├── ubuntu/
│ │ └── modules/ # Moduli di funzioni Bash per le operazioni JAR
│ └── shared/ # Utility e modelli condivisi
├── config/
│ ├── logging-config.json # Configurazione del logging
│ └── jar-replacement-config.json # Configurazione della sostituzione JAR
├── tests/ # Suite di test (BATS e Pester)
├── logs/ # File di log (creati durante l'esecuzione)
└── backups/ # File di backup JAR (creati durante l'esecuzione)
Puoi configurare l'updater utilizzando le variabili d'ambiente:
# Credenziali di FileMaker Server
export FILEMAKER_USERNAME="admin"
export FILEMAKER_PASSWORD="your_secure_password"
# Percorsi personalizzati (opzionali)
export FILEMAKER_INSTALL_PATH="/custom/path/to/filemaker"
export BACKUP_DIRECTORY="/custom/backup/path"
Crea un file .env nella directory dello script:
# File .env (deve avere permessi 600)
FILEMAKER_USERNAME=admin
FILEMAKER_PASSWORD=your_secure_password
BACKUP_DIRECTORY=/custom/backup/path
Importante: Assicurati che il file .env abbia permessi restrittivi (600) per motivi di sicurezza.
Se lo script automatico fallisce, segui questi passaggi manuali per sostituire i file JAR vulnerabili:
# Utilizzo di fmsadmin (consigliato)
& "C:\Program Files\FileMaker\FileMaker Server\Database Server\fmsadmin.exe" stop wpe -u admin -p password
# Oppure tramite i servizi
Stop-Service "FileMaker Server Web Publishing Engine"
# Utilizzo di fmsadmin (consigliato)
sudo "/Library/FileMaker Server/Database Server/bin/fmsadmin" stop wpe -u admin -p password
# Oppure tramite launchctl
sudo launchctl stop com.filemaker.wpe
# Utilizzo di fmsadmin (consigliato)
sudo "/opt/FileMaker/FileMaker Server/Database Server/bin/fmsadmin" stop wpe -u admin -p password
# Oppure tramite 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/"
Scarica i seguenti file JAR da Apache Commons:
Verifica i checksum rispetto ai checksum ufficiali di Apache Commons.
$jarPath = "C:\Program Files\FileMaker\FileMaker Server\Web Publishing\publishing-engine\jwpc-tomcat\webapps\ROOT\WEB-INF\lib"
# Rimuovi i vecchi file JAR
Remove-Item "$jarPath\commons-text-*.jar"
Remove-Item "$jarPath\commons-lang3-*.jar"
# Copia i nuovi file 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
# Rimuovi i vecchi file JAR
sudo rm "$JAR_PATH"/commons-text-*.jar
sudo rm "$JAR_PATH"/commons-lang3-*.jar
# Copia i nuovi file JAR
sudo cp commons-text-1.11.0.jar "$JAR_PATH/"
sudo cp commons-lang3-3.18.0.jar "$JAR_PATH/"
# Imposta i permessi corretti
sudo chown fmserver:fmsadmin "$JAR_PATH"/commons-*.jar # Regola la proprietà come necessario
sudo chmod 644 "$JAR_PATH"/commons-*.jar
# Utilizzo di fmsadmin (consigliato)
& "C:\Program Files\FileMaker\FileMaker Server\Database Server\fmsadmin.exe" start wpe -u admin -p password
# Oppure tramite i servizi
Start-Service "FileMaker Server Web Publishing Engine"
# Utilizzo di fmsadmin (consigliato)
sudo "/Library/FileMaker Server/Database Server/bin/fmsadmin" start wpe -u admin -p password
# Oppure tramite launchctl
sudo launchctl start com.filemaker.wpe
# Utilizzo di fmsadmin (consigliato)
sudo "/opt/FileMaker/FileMaker Server/Database Server/bin/fmsadmin" start wpe -u admin -p password
# Oppure tramite systemctl
sudo systemctl start filemaker-wpe
Se lo script automatico fallisce, segui questi passaggi manuali:
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.logQuesto progetto include suite di test complete per tutte le piattaforme per garantire affidabilità e sicurezza.
Il progetto utilizza framework di test diversi per ciascuna piattaforma:
macOS (usando Homebrew):
brew install bats-core
Ubuntu/Debian:
# Installa tramite il gestore dei pacchetti
sudo apt update
sudo apt install bats
# Oppure installa l'ultima versione dal sorgente
git clone https://github.com/bats-core/bats-core.git
cd bats-core
sudo ./install.sh /usr/local
Installazione manuale (qualsiasi sistema Unix-like):
git clone https://github.com/bats-core/bats-core.git
cd bats-core
sudo ./install.sh /usr/local
Pester è preinstallato con PowerShell 5.1+ e Windows PowerShell, ma potresti voler aggiornare all'ultima versione:
# Controlla la versione corrente
Get-Module -Name Pester -ListAvailable
# Installa/aggiorna all'ultima versione (PowerShell 5.1+)
Install-Module -Name Pester -Force -SkipPublisherCheck
# Per PowerShell Core (7+)
Install-Module -Name Pester -Scope CurrentUser
# Esegui uno specifico file di test BATS (Linux/macOS)
bats tests/backup-creation.bats
bats tests/version-detection.bats
# Esegui uno specifico file di test Pester (Windows)
Invoke-Pester tests/windows/Integration.Tests.ps1
Invoke-Pester tests/windows/Utilities.Tests.ps1
# Esegui tutti i test BATS (Linux/macOS)
bats tests/*.bats
# Esegui tutti i test Pester (Windows)
Invoke-Pester tests/windows/
La suite di test include:
I test creano ambienti temporanei isolati e non influiscono sul tuo sistema o sull'installazione di FileMaker. Tuttavia, alcuni test potrebbero richiedere:
Questo sostituto dei JAR è fornito così com'è per affrontare CVE-2025-46295. Utilizzalo in conformità con il contratto di licenza di FileMaker Server e i termini di licenza di Apache Commons.