본문 바로가기
Middleware/JEUS

JEUS - Apache Commons FileUpload 보안취약점 조치 방법 (CVE-2023-24998)

by nxCore 2023. 3. 9.

 

Apache Commons FileUpload 라이브러리에 보안취약점이 존재, 업데이트가 필요하다고 발표되었습니다.

 

KISA 인터넷 보호나라&KrCERT

KISA 인터넷 보호나라&KrCERT

www.boho.or.kr

 

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 버전 정보 확인 및 패치 정보 확인

현재 설치되어 있는 JEUS 제품의 버전 정보를 확인하는 방법입니다. JEUS 가 설치된 계정으로 로그인 뒤 다음 명령어를 수행합니다. JEUS 8 Fix #1 버전 예시 [jeus81@CentOS7-WAS1 ~]$ jeusadmin -version JEUS 8 Fix#1

was-master.tistory.com

 

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 가 완전히 제거되어 포함되어 있지 않으므로 보안 취약점에 해당되지 않으므로 조치할 사항이 없습니다.

댓글