릴리즈 노트 1.5.3.5 보안 패치 배포
2012.11.27 14:56
보안 패치가 포함된 Core를 배포 합니다.
(r123000)
수정사항
- Webshell 방어코드 추가
보안패치된 내용은 아래 링크에서 확인하실 수 있습니다.
http://code.google.com/p/xe-core/source/detail?r=12300
직접 수정해 주실 경우에는 다음 부분을 수정해 주시면 됩니다.
1. ./classes/context/Context.class.php 파일
155번째 라인 var $is_uploaded = false; 다음에 다음 코드 추가.
* @var bool true if attached file exists
*/
var $is_uploaded = false;
/**
* Check init
* @var bool false if init fail
*/
var $isSuccessInit = true;
809 라인 _setRequestArgument() 메소드 시작 부분에 아래 코드 추가.
$pattern = array(
'/<\?/iUsm',
'/<\%/iUsm',
'/<script(\s|\S)*language[\s]*=("|\')php("|\')(\s|\S)*/iUsm'
);
824 라인 다음 코드를
if($set_to_vars)
{
$val = preg_replace('/<\?.*(\?>)?/iUsm', '', $val);
$val = preg_replace('/<\%.*(\%>)?/iUsm', '', $val);
$val = preg_replace('/<script(\s|\S)*language[\s]*=("|\')php("|\')(\s|\S)*>.*<[\s]*\/[\s]*script[\s]*>/iUsm', '', $val);
}
아래 코드로 변경
if($set_to_vars)
{
foreach($pattern AS $key2=>$value2)
{
$result = preg_match($value2, $val);
if($result)
{
$this->isSuccessInit = false;
break;
}
}
}
2. ./classes/module/ModuleHandler.class.php 파일
40 번째 라인을 아래 다음 코드로 추가
$this->act = Context::get('act');
return;
}
$oContext = Context::getInstance();
if($oContext->isSuccessInit == false)
{
$this->error = 'msg_invalid_request';
return;
}
// Set variables from request arguments
$this->module = $module?$module:Context::get('module');
$this->act = $act?$act:Context::get('act');
=================================================================================================================
1.4.5.X사용자가 1.5.0 이상 버전으로 업데이트를 하는 경우에는 반드시 관리자 제어판에 노출되는 모든 모듈업데이트를 완료 후 서비스 이용하시기 바랍니다.
(업데이트시 모듈 업데이트 미 완료로인해 로그인화면이 노출되지 않는 이슈가 발생할 수 있사오니, 가급적 관리자 로그인 상태에서 코드 업데이트를 하시기를 권장합니다.)
실서비스에 1.5.0 이상 버전을 적용하고자 하는 사용자는 반드시 DB및 코드 백업 이후 진행