
FileMaker Server 설치에서 취약한 Apache Commons JAR을 dry-run, 백업 및 롤백 지원을 통해 교체하여 CVE-2025-46295를 탐지 및 수정하는 자동화된 스크립트 모음.
FileMaker Apache Commons JAR 대체기는 CVE-2025-46295를 해결하기 위해 FileMaker Server 설치에서 취약한 Apache Commons JAR 파일을 교체하는 자동화 솔루션입니다. 전체 FileMaker Server를 업그레이드하는 대신, 이 솔루션은 공식 Claris 지침에 따라 취약한 commons-text 및 commons-lang3 JAR 파일만 업데이트된 버전으로 교체합니다.
대부분의 사용자는 소스에서 빌드하는 대신 최신 릴리스를 다운로드하십시오:
Releases 페이지로 이동
플랫폼에 맞는 적절한 파일 다운로드:
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 옵션으로 스크립트를 실행하여 서버가 취약한지 확인하고 어떤 변경이 이루어질지 확인하십시오.
# 관리자 권한으로 PowerShell 실행
# 도움말 및 사용 가능한 옵션 표시
.\replace-filemaker-jars-windows.ps1 -Help
# 서버가 취약한지 확인 (권장 첫 단계)
.\replace-filemaker-jars-windows.ps1 -DryRun
# 보안 수정 적용 (dry-run 결과 검토 후에만)
.\replace-filemaker-jars-windows.ps1
# sudo 권한으로 실행
# 도움말 및 사용 가능한 옵션 표시
sudo ./replace-filemaker-jars-macos.sh --help
# 서버가 취약한지 확인 (권장 첫 단계)
sudo ./replace-filemaker-jars-macos.sh --dry-run
# 보안 수정 적용 (dry-run 결과 검토 후에만)
sudo ./replace-filemaker-jars-macos.sh
# sudo 권한으로 실행
# 도움말 및 사용 가능한 옵션 표시
sudo ./replace-filemaker-jars-ubuntu.sh --help
# 서버가 취약한지 확인 (권장 첫 단계)
sudo ./replace-filemaker-jars-ubuntu.sh --dry-run
# 보안 수정 적용 (dry-run 결과 검토 후에만)
sudo ./replace-filemaker-jars-ubuntu.sh
--dry-run 옵션은 가장 안전한 방법입니다:
항상 --dry-run을 먼저 실행하여 스크립트가 시스템에서 수행할 작업을 이해하십시오.
filemaker-jar-replacer/
├── README.md # 이 파일
├── replace-filemaker-jars-windows.ps1 # Windows PowerShell 스크립트
├── replace-filemaker-jars-macos.sh # macOS Bash 스크립트
├── replace-filemaker-jars-ubuntu.sh # Ubuntu Bash 스크립트
├── scripts/
│ ├── windows/
│ │ └── modules/ # JAR 작업을 위한 PowerShell 모듈
│ ├── macos/
│ │ └── modules/ # JAR 작업을 위한 Bash 함수 모듈
│ ├── ubuntu/
│ │ └── modules/ # JAR 작업을 위한 Bash 함수 모듈
│ └── shared/ # 공유 유틸리티 및 템플릿
├── config/
│ ├── logging-config.json # 로깅 설정
│ └── jar-replacement-config.json # JAR 교체 설정
├── tests/ # 테스트 스위트 (BATS 및 Pester)
├── logs/ # 로그 파일 (실행 중 생성됨)
└── backups/ # JAR 백업 파일 (실행 중 생성됨)
환경 변수를 사용하여 업데이터를 구성할 수 있습니다:
# FileMaker Server 자격 증명
export FILEMAKER_USERNAME="admin"
export FILEMAKER_PASSWORD="your_secure_password"
# 사용자 지정 경로 (선택 사항)
export FILEMAKER_INSTALL_PATH="/custom/path/to/filemaker"
export BACKUP_DIRECTORY="/custom/backup/path"
스크립트 디렉토리에 .env 파일을 생성합니다:
# .env 파일 (600 권한 필수)
FILEMAKER_USERNAME=admin
FILEMAKER_PASSWORD=your_secure_password
BACKUP_DIRECTORY=/custom/backup/path
중요: 보안을 위해 .env 파일에 제한적인 권한(600)을 설정하십시오.
자동 스크립트가 실패할 경우 다음 수동 단계에 따라 취약한 JAR 파일을 교체하십시오:
# fmsadmin 사용 (권장)
& "C:\Program Files\FileMaker\FileMaker Server\Database Server\fmsadmin.exe" stop wpe -u admin -p password
# 또는 서비스 사용
Stop-Service "FileMaker Server Web Publishing Engine"
# fmsadmin 사용 (권장)
sudo "/Library/FileMaker Server/Database Server/bin/fmsadmin" stop wpe -u admin -p password
# 또는 launchctl 사용
sudo launchctl stop com.filemaker.wpe
# fmsadmin 사용 (권장)
sudo "/opt/FileMaker/FileMaker Server/Database Server/bin/fmsadmin" stop wpe -u admin -p password
# 또는 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/"
Apache Commons에서 다음 JAR 파일을 다운로드하십시오:
공식 Apache Commons 체크섬과 비교하여 확인하십시오.
$jarPath = "C:\Program Files\FileMaker\FileMaker Server\Web Publishing\publishing-engine\jwpc-tomcat\webapps\ROOT\WEB-INF\lib"
# 이전 JAR 파일 제거
Remove-Item "$jarPath\commons-text-*.jar"
Remove-Item "$jarPath\commons-lang3-*.jar"
# 새 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
# 이전 JAR 파일 제거
sudo rm "$JAR_PATH"/commons-text-*.jar
sudo rm "$JAR_PATH"/commons-lang3-*.jar
# 새 JAR 파일 복사
sudo cp commons-text-1.11.0.jar "$JAR_PATH/"
sudo cp commons-lang3-3.18.0.jar "$JAR_PATH/"
# 적절한 권한 설정
sudo chown fmserver:fmsadmin "$JAR_PATH"/commons-*.jar # 필요에 따라 소유권 조정
sudo chmod 644 "$JAR_PATH"/commons-*.jar
# fmsadmin 사용 (권장)
& "C:\Program Files\FileMaker\FileMaker Server\Database Server\fmsadmin.exe" start wpe -u admin -p password
# 또는 서비스 사용
Start-Service "FileMaker Server Web Publishing Engine"
# fmsadmin 사용 (권장)
sudo "/Library/FileMaker Server/Database Server/bin/fmsadmin" start wpe -u admin -p password
# 또는 launchctl 사용
sudo launchctl start com.filemaker.wpe
# fmsadmin 사용 (권장)
sudo "/opt/FileMaker/FileMaker Server/Database Server/bin/fmsadmin" start wpe -u admin -p password
# 또는 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:
# 패키지 관리자를 통해 설치
sudo apt update
sudo apt install bats
# 또는 소스에서 최신 버전 설치
git clone https://github.com/bats-core/bats-core.git
cd bats-core
sudo ./install.sh /usr/local
수동 설치 (모든 Unix 계열 시스템):
git clone https://github.com/bats-core/bats-core.git
cd bats-core
sudo ./install.sh /usr/local
Pester는 PowerShell 5.1+ 및 Windows PowerShell에 사전 설치되어 있지만 최신 버전으로 업데이트할 수 있습니다:
# 현재 버전 확인
Get-Module -Name Pester -ListAvailable
# 최신 버전 설치/업데이트 (PowerShell 5.1+)
Install-Module -Name Pester -Force -SkipPublisherCheck
# PowerShell Core (7+)
Install-Module -Name Pester -Scope CurrentUser
# 특정 BATS 테스트 파일 실행 (Linux/macOS)
bats tests/backup-creation.bats
bats tests/version-detection.bats
# 특정 Pester 테스트 파일 실행 (Windows)
Invoke-Pester tests/windows/Integration.Tests.ps1
Invoke-Pester tests/windows/Utilities.Tests.ps1
# 모든 BATS 테스트 실행 (Linux/macOS)
bats tests/*.bats
# 모든 Pester 테스트 실행 (Windows)
Invoke-Pester tests/windows/
테스트 스위트에는 다음이 포함됩니다:
테스트는 격리된 임시 환경을 생성하며 시스템이나 FileMaker 설치에 영향을 주지 않습니다. 그러나 일부 테스트에는 다음이 필요할 수 있습니다:
이 JAR 대체기는 CVE-2025-46295 해결을 위해 있는 그대로 제공됩니다. FileMaker Server 라이선스 계약 및 Apache Commons 라이선스 조건에 따라 사용하십시오.