Blog

XpressEngine 모든 버전의 보안 취약점이 발견되었습니다.

모든 상황에서 발생하는 것은 아니고 특정 웹서버 설정에 의해서 발생되는 문제입니다.

보안 취약점을 꼼꼼히 테스트 후 제보해주신 http://Simples.Kr (심플스)의 운영자이신 박병익(esniper)님께 감사의 말씀을 드립니다.

 

먼저 모든 버전에 해당되고 또한 간단히 패치할 수 있는 문제이기에 패치방법부터 알려드립니다.

 

해당 파일 : ./modules/file/file.controller.php

method : FileController::insertFile()

원 파일 내용

// 이미지인지 기타 파일인지 체크하여 upload path 지정           
if(preg_match("/\.(jpg|jpeg|gif|png|wmv|wma|mpg|mpeg|avi|swf|flv|mp1|mp2|mp3|asaf|wav|asx|mid|midi|asf|mov|moov|qt|rm|ram|ra|rmm|m4v)$/i", $file_info['name'])) {
$path = sprintf("./files/attach/images/%s/%s", $module_srl,getNumberingPath($upload_target_srl,3));
$filename = $path.$file_info['name'];
$direct_download = 'Y';
} else {

패치 적용 후 

// 이미지인지 기타 파일인지 체크하여 upload path 지정
if(preg_match("/\.(jpg|jpeg|gif|png|wmv|wma|mpg|mpeg|avi|swf|flv|mp1|mp2|mp3|asaf|wav|asx|mid|midi|asf|mov|moov|qt|rm|ram|ra|rmm|m4v)$/i", $file_info['name'])) {
// direct 파일에 해킹을 의심할 수 있는 확장자가 포함되어 있으면 바로 삭제함
$file_info['name'] = preg_replace('/\.(php|phtm|htm|cgi|pl|exe|jsp|asp|inc)/i', '$0-x',$file_info['name']);
$path = sprintf("./files/attach/images/%s/%s", $module_srl,getNumberingPath($upload_target_srl,3));
$filename = $path.$file_info['name'];
$direct_download = 'Y';
} else {

 

즉 ./modules/file/file.controller.php 파일의 310번째 라인(버전에 따라 다를 수 있습니다)의 이미지등의 직접 다운로드 가능 파일을 저장하는 부분에 아래와 같이 확장자 체크를 하는 부분이 포함되어야 합니다.

// direct 파일에 해킹을 의심할 수 있는 확장자가 포함되어 있으면 바로 삭제함
$file_info['name'] = preg_replace('/\.(php|phtm|htm|cgi|pl|exe|jsp|asp|inc)/i', '$0-x',$file_info['name']); 

 

XpressEngine ver 1.2.1  버전을 사용하시는 분은 file.controller.php 을 다운로드 받으셔서 ./modules/file/ 디렉토리에 덮어쓰시면 되고 그 이전의 버전 사용자분들은 위의 패치 적용 방법을 이용하시면 됩니다.

 

1.2.1의 안정화 버전인 1.2.2 버전을 최대한 빨리 배포하여 기존 사용자분들께서 불안하지 않은 업그레이드가 가능하도록 노력하겠습니다.
감사합니다.

제목 최종 글 날짜
공지 XE1 신규 보안 취약점 신고 포상제 종료 안내   2019.10.23
공지 [중요!] Object 클래스의 이름 변경 안내(PHP 7.2 버전 호환성) [7] 2020.08.16 by 천재 2017.11.27
liveXE 구경해보세요. :) [57] [4] file 2012.08.16 by vibram five fingers 2008.07.31
주제발표 - XE의 현재와 미래 [6] [1] file 2012.08.16 by vibram five fingers 2008.07.28
행사 주제 및 순서 소개 [2] file 2013.12.25 by vibram five fingers 2008.07.28
XE Opensource Project 1차 모임 [121] [5] file 2012.08.16 by vibram five fingers 2008.06.24
zbXE 오픈 소스 프로젝트 관련 모임 - 일자/장소 추가 [40] file 2012.08.16 by vibram five fingers 2008.06.24
zbXE 정식버전(코드 안정화) 1.0 배포합니다. [150] [2] file 2012.08.16 by vibram five fingers 2008.02.28
zbXE 스킨 제작 센터 Open합니다. [20] file 2020.03.14 by vibram five fingers 2008.02.27
zbXE 오픈 소스 프로젝트 소개 및 참여 [14] file 2012.08.16 by vibram five fingers 2008.02.21
zbXE 프로젝트 멤버분들을 찾습니다. [23] file 2012.08.16 by vibram five fingers 2008.02.13
zbXE 공식 IRC 접속방법 소개합니다. [14] file 2012.08.16 by vibram five fingers 2008.02.12
새해 복 많이 받으세요. ^^ [54] file 2012.08.16 by vibram five fingers 2008.02.01
애드온 강좌 발표 자료 공유 [2] 2014.03.24 by 마이웹 2014.03.22
2014년 3월 애드온 개발 공개 강좌 후기 (2차) file   2014.03.22
XE Hub <Open office day> - 2014년 3월 공개 강좌 2차 (15일 강좌와 동일)   2014.03.11
2014년 3월 애드온 개발 공개 강좌 후기 (1차) [3] file 2014.03.20 by eXtriar 2014.03.17
2014년 2월 XE 개발자 세미나 후기 [1] file 2014.03.17 by deepbl39 2014.03.17
XE 개발팀 2012 계획(잠정) [19] file 2012.09.03 by Nike Mercurial Vapor 2011.10.18
XE 개발팀의 오늘 - 7월 6일 테마 기능 [24] file 2012.08.16 by vibram shoes 2011.07.06
XE 개발팀의 오늘 - 7월 1일 사이트관리자 [19] file 2012.08.16 by LY-F9S 2011.07.01
XE 개발팀 워크샵. [15] [1] file 2012.08.16 by FreeLander PD10 2011.03.23