Blog

보안 패치가 포함된 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및 코드 백업 이후 진행