
مجموعة نصوص آلية لاكتشاف ومعالجة CVE-2025-46295 عن طريق استبدال ملفات JAR الخاصة بـ Apache Commons المعرضة للخطر في تثبيتات FileMaker Server مع دعم للتشغيل التجريبي والنسخ الاحتياطي والتراجع.
يُعد مستبدل ملفات JAR الخاصة بـ Apache Commons في FileMaker حلاً آلياً يعالج CVE-2025-46295 عن طريق استبدال ملفات JAR المعرّضة للخطر الخاصة بـ Apache Commons في تثبيتات FileMaker Server. فبدلاً من ترقية FileMaker Server بالكامل، يتبع هذا الحل الإرشادات الرسمية من Claris لاستبدال ملفات commons-text و commons-lang3 المعرّضة للخطر فقط بنسخ محدّثة.
بالنسبة لمعظم المستخدمين، قم بتنزيل أحدث إصدار (release) بدلاً من البناء من المصدر:
انتقل إلى صفحة الإصدارات
قم بتنزيل الملف المناسب لمنصتك:
filemaker-jar-replacer-windows.zipfilemaker-jar-replacer-macos.tar.gzfilemaker-jar-replacer-ubuntu.tar.gzقم بفك الضغط والتشغيل - راجع ملاحظات الإصدار للحصول على تعليمات تفصيلية لفك الضغط والاستخدام
يتم تثبيت ملفات JAR المتأثرة فقط عند تمكين Web Publishing Engine لأول مرة.
يوفر هذا المستبدل لملفات JAR نصوصاً برمجية خاصة بكل منصة:
replace-filemaker-jars-windows.ps1)replace-filemaker-jars-macos.sh)replace-filemaker-jars-ubuntu.sh)مهم: قبل إجراء أي تغييرات على FileMaker Server لديك، شغّل النص البرمجي مع خيار --dry-run للتحقق مما إذا كان خادمك معرّضاً للخطر ومعرفة التغييرات التي سيتم إجراؤها.
# Run PowerShell as Administrator
# Show help and available options
.\replace-filemaker-jars-windows.ps1 -Help
# Check if your server is vulnerable (RECOMMENDED FIRST STEP)
.\replace-filemaker-jars-windows.ps1 -DryRun
# Apply the security fix (only after reviewing dry-run results)
.\replace-filemaker-jars-windows.ps1
# Run with sudo privileges
# Show help and available options
sudo ./replace-filemaker-jars-macos.sh --help
# Check if your server is vulnerable (RECOMMENDED FIRST STEP)
sudo ./replace-filemaker-jars-macos.sh --dry-run
# Apply the security fix (only after reviewing dry-run results)
sudo ./replace-filemaker-jars-macos.sh
# Run with sudo privileges
# Show help and available options
sudo ./replace-filemaker-jars-ubuntu.sh --help
# Check if your server is vulnerable (RECOMMENDED FIRST STEP)
sudo ./replace-filemaker-jars-ubuntu.sh --dry-run
# Apply the security fix (only after reviewing dry-run results)
sudo ./replace-filemaker-jars-ubuntu.sh
يُعد خيار --dry-run الطريقة الأكثر أماناً من أجل:
قم دائماً بتشغيل --dry-run أولاً لفهم ما سيفعله النص البرمجي على نظامك.
filemaker-jar-replacer/
├── README.md # This file
├── replace-filemaker-jars-windows.ps1 # Windows PowerShell script
├── replace-filemaker-jars-macos.sh # macOS Bash script
├── replace-filemaker-jars-ubuntu.sh # Ubuntu Bash script
├── scripts/
│ ├── windows/
│ │ └── modules/ # PowerShell modules for JAR operations
│ ├── macos/
│ │ └── modules/ # Bash function modules for JAR operations
│ ├── ubuntu/
│ │ └── modules/ # Bash function modules for JAR operations
│ └── shared/ # Shared utilities and templates
├── config/
│ ├── logging-config.json # Logging configuration
│ └── jar-replacement-config.json # JAR replacement configuration
├── tests/ # Test suite (BATS and Pester)
├── logs/ # Log files (created during execution)
└── backups/ # JAR backup files (created during execution)
يمكنك إعداد المحدِّث باستخدام متغيرات البيئة:
# FileMaker Server credentials
export FILEMAKER_USERNAME="admin"
export FILEMAKER_PASSWORD="your_secure_password"
# Custom paths (optional)
export FILEMAKER_INSTALL_PATH="/custom/path/to/filemaker"
export BACKUP_DIRECTORY="/custom/backup/path"
أنشئ ملف .env في دليل النص البرمجي:
# .env file (must have 600 permissions)
FILEMAKER_USERNAME=admin
FILEMAKER_PASSWORD=your_secure_password
BACKUP_DIRECTORY=/custom/backup/path
مهم: تأكد من أن ملف .env لديه صلاحيات مقيدة (600) لأغراض الأمان.
إذا فشل النص البرمجي الآلي، اتبع هذه الخطوات اليدوية لاستبدال ملفات JAR المعرّضة للخطر:
# Using fmsadmin (recommended)
& "C:\Program Files\FileMaker\FileMaker Server\Database Server\fmsadmin.exe" stop wpe -u admin -p password
# Or using services
Stop-Service "FileMaker Server Web Publishing Engine"
# Using fmsadmin (recommended)
sudo "/Library/FileMaker Server/Database Server/bin/fmsadmin" stop wpe -u admin -p password
# Or using launchctl
sudo launchctl stop com.filemaker.wpe
# Using fmsadmin (recommended)
sudo "/opt/FileMaker/FileMaker Server/Database Server/bin/fmsadmin" stop wpe -u admin -p password
# Or using 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/"
قم بتنزيل ملفات JAR التالية من Apache Commons:
تحقق من مجاميع التحقق (checksums) مقابل مجاميع Apache Commons الرسمية.
$jarPath = "C:\Program Files\FileMaker\FileMaker Server\Web Publishing\publishing-engine\jwpc-tomcat\webapps\ROOT\WEB-INF\lib"
# Remove old JAR files
Remove-Item "$jarPath\commons-text-*.jar"
Remove-Item "$jarPath\commons-lang3-*.jar"
# Copy new JAR files
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
# Remove old JAR files
sudo rm "$JAR_PATH"/commons-text-*.jar
sudo rm "$JAR_PATH"/commons-lang3-*.jar
# Copy new JAR files
sudo cp commons-text-1.11.0.jar "$JAR_PATH/"
sudo cp commons-lang3-3.18.0.jar "$JAR_PATH/"
# Set proper permissions
sudo chown fmserver:fmsadmin "$JAR_PATH"/commons-*.jar # Adjust ownership as needed
sudo chmod 644 "$JAR_PATH"/commons-*.jar
# Using fmsadmin (recommended)
& "C:\Program Files\FileMaker\FileMaker Server\Database Server\fmsadmin.exe" start wpe -u admin -p password
# Or using services
Start-Service "FileMaker Server Web Publishing Engine"
# Using fmsadmin (recommended)
sudo "/Library/FileMaker Server/Database Server/bin/fmsadmin" start wpe -u admin -p password
# Or using launchctl
sudo launchctl start com.filemaker.wpe
# Using fmsadmin (recommended)
sudo "/opt/FileMaker/FileMaker Server/Database Server/bin/fmsadmin" start wpe -u admin -p password
# Or using systemctl
sudo systemctl start filemaker-wpe
إذا فشل النص البرمجي الآلي، اتبع هذه الخطوات اليدوية:
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.logيتضمن هذا المشروع مجموعات اختبار شاملة لجميع المنصات لضمان الموثوقية والأمان.
يستخدم المشروع أطر اختبار مختلفة لكل منصة:
macOS (باستخدام Homebrew):
brew install bats-core
Ubuntu/Debian:
# Install via package manager
sudo apt update
sudo apt install bats
# Or install latest version from source
git clone https://github.com/bats-core/bats-core.git
cd bats-core
sudo ./install.sh /usr/local
التثبيت اليدوي (أي نظام شبيه بيونكس):
git clone https://github.com/bats-core/bats-core.git
cd bats-core
sudo ./install.sh /usr/local
يأتي Pester مثبتاً مسبقاً مع PowerShell 5.1+ و Windows PowerShell، لكن قد ترغب في التحديث إلى أحدث إصدار:
# Check current version
Get-Module -Name Pester -ListAvailable
# Install/Update to latest version (PowerShell 5.1+)
Install-Module -Name Pester -Force -SkipPublisherCheck
# For PowerShell Core (7+)
Install-Module -Name Pester -Scope CurrentUser
# Run specific BATS test file (Linux/macOS)
bats tests/backup-creation.bats
bats tests/version-detection.bats
# Run specific Pester test file (Windows)
Invoke-Pester tests/windows/Integration.Tests.ps1
Invoke-Pester tests/windows/Utilities.Tests.ps1
# Run all BATS tests (Linux/macOS)
bats tests/*.bats
# Run all Pester tests (Windows)
Invoke-Pester tests/windows/
تتضمن مجموعة الاختبارات:
تنشئ الاختبارات بيئات مؤقتة معزولة ولا تؤثر على نظامك أو تثبيت FileMaker لديك. ومع ذلك، قد تتطلب بعض الاختبارات:
يتم توفير هذا المستبدل لملفات JAR كما هو لمعالجة CVE-2025-46295. استخدمه وفقاً لاتفاقية ترخيص FileMaker Server الخاصة بك وشروط ترخيص Apache Commons.