Apache Commons FileUpload 라이브러리에 보안취약점이 존재, 업데이트가 필요하다고 발표되었습니다.
JEUS 에 배포하여 운영하는 Application 에 대해서는 App 개발 레벨에서 조치를 진행해주시면 되며, 이번 포스트 에서는 JEUS 에 포함된 Apache Commons FileUpload 에 대한 보안취약점 조치만을 다룹니다.
JEUS 에서는 WebAdmin 모듈에 Apache Commons FileUpload 라이브러리가 포함되어 있습니다.
버전별 차이가 있으므로 다음을 참고해주시기 바랍니다.
JEUS 버전 | 취약 여부 | 비고 |
JEUS 4.x | 취약 | FileUpload 포함, 사용됨 |
JEUS 5.x | 취약 | |
JEUS 6.x | 취약 | |
JEUS 7.x | 취약 | FileUpload 포함되었으나 미사용 |
JEUS 8 (Fix #0) | 취약 | |
JEUS 8 (Fix #1) | 해당 없음 | FileUpload 미포함 |
JEUS 8.5 | 해당 없음 |
현재 운영중인 JEUS 버전을 확인하려면?
JEUS 4.x, 5.x, 6.x 버전은 ES (Extended Support) 기간이 만료되어 보안 패치가 제공되지 않습니다.
더 이상 보안 패치를 제공하지 않으므로 보안 위협에 대응할 수 있도록 되도록 JEUS 버전을 업그레이드 해주시기 바라며, 불가피하게 현 버전을 계속 사용해야 하는 경우 WebAdmin 을 사용하지 않는 방법으로 조치를 해주어야 합니다.
다음과 같이 WebAdmin 을 비활성화 할 수 있습니다.
- $JEUS_HOME/config/[HOSTNAME]/JEUSMain.xml 설정파일에서 <enable-webadmin> 을 false 로 수정 후 저장
<node>
...
<enable-webadmin>false</enable-webadmin>
...
</node>
- $JEUS_HOME/webhome/admin_home/WEB-INF/lib/commons-fileupload-x.x.x.jar 파일 삭제
- $JEUS_HOME/webhome/app_home/exploded/WEB-INF/lib/commons-fileupload-x.x.x.jar 파일 삭제
- 그 외 $JEUS_HOME 경로 하위에 존재하는 commons-fileupload 관련 파일은 필요에 따라 별도 삭제
JEUS 7 버전과 JEUS 8 Fix #0 버전에서는 FileUpload 라이브러리가 WebAdmin 에 포함되어 있으나 사용하지 않고 있으므로 단순 삭제 처리로 조치가 가능합니다.
간단하게 작업할 수 있도록 자동화 스크립트를 작성해보았습니다.
다음 스크립트를 JEUS 를 실행하는 계정으로 한 번만 실행해주면 자동 조치 완료됩니다.
#!/bin/sh
echo ""
echo "########## TmaxSoft SD Team ##########"
echo "Author: seungyong_jeong@tmaxsoft.co.kr"
echo ""
echo "Apache Commons FileUpload Security Vulnerability action"
echo "CVE Code : CVE-2023-24998"
echo "Target JEUS Version : JEUS 7 (Fix #0 ~ #5), JEUS 8 (Fix #0)"
echo ""
echo "Removing JEUS WebAdmin Apache FileUpload library..."
echo ""
if [[ -z ${JEUS_HOME} ]]; then
echo "!!!!! ERROR !!!!!"
echo "Variable \$JEUS_HOME is not set"
echo "Please run this shell with JEUS account"
echo "Exit..."
echo ""
exit 1
fi
if [ ! -d ~/webadmin_work ]; then
mkdir ~/webadmin_work
fi
if [ ! -e ${JEUS_HOME}/lib/systemapps/webadmin.war ]; then
echo "!!!!! ERROR !!!!!"
echo "Cannot find the webadmin.war"
echo "Exit..."
echo ""
exit 2
fi
echo "Make backup webadmin.war"
cp ${JEUS_HOME}/lib/systemapps/webadmin.war ${JEUS_HOME}/lib/systemapps/webadmin.war_bak-fileupload
echo "Extracting webadmin.war"
cd ~/webadmin_work
jar -xf ${JEUS_HOME}/lib/systemapps/webadmin.war
echo "Removing commons-fileupload"
rm -f ~/webadmin_work/WEB-INF/lib/commons-fileupload-1.3.1.jar ~/webadmin_work/WEB-INF/licenses/commons-fileupload.txt
echo "Archiving webadmin.war"
jar -cf0M webadmin.war *
echo "Finalizing..."
cd ~
cp ~/webadmin_work/webadmin.war ${JEUS_HOME}/lib/systemapps/webadmin.war
rm -rf ~/webadmin_work
echo ""
echo "Done."
echo ""
Unix/Linux 계열이 아닌 Windows 서버를 운영하시는 경우, %JEUS_HOME%\lib\systemapps 경로에 있는 webadmin.war 파일을 반디집 등 압축 프로그램으로 열고, WEB-INF\lib\commons-fileupload-1.3.1.jar 파일과 WEB-INF\licenses\commons-fileupload.txt 파일을 삭제 후 저장 해주시면 해결됩니다.
JEUS 8 Fix #1 버전 부터는 commons-fileupload 가 완전히 제거되어 포함되어 있지 않으므로 보안 취약점에 해당되지 않으므로 조치할 사항이 없습니다.
'Middleware > JEUS' 카테고리의 다른 글
JEUS 에 Application 배포하기 (0) | 2023.04.10 |
---|---|
JEUS MS(컨테이너) 추가 방법 (0) | 2023.03.14 |
JEUS 버전 별 JDK 지원 버전, 전자정부프레임워크 지원 버전 리스트 (0) | 2023.03.09 |
JEUS 기동 및 종료 방법 (7 버전 이후) (0) | 2023.03.03 |
JEUS 버전 정보 확인 및 패치 정보 확인 (0) | 2023.03.03 |
댓글