AnNyung Official Homepage Home > Update [ 1.3 ]  

HOME
What is AnNyung
Documents
Packages System
White Paper
Download
Update
  . 3.x [RSS]
  . 2.x [RSS]
  . 1.3 [RSS]
  . 1.2 [RSS]
  . 1.1 [RSS]
  . 1.0 [RSS]
FAQ
Hardware
RoadMap
Gallery

  Go oops.org
  AnNyung banner 88x31

  AnNyung 1 banner 80x15
  AnNyung 2 banner 80x15
  AnNyung 3 banner 80x15
  AnNyung banner 80x15
  AnNyung banner 80x15



php 5.x 보안 업데이트
Web Browser 로는 FTP 접속이 불가능 합니다.

문서번호 : 1218807561
업데이트 : 2008.08.15


상세내용

5.2.6-2 에서 보안 기능 관련 패치가 추가가 되어 기존 동작에 문제를 줄 수 있으니,
아래의 내용을 꼼꼼이 숙지 하신 후에 업데이트를 하십시오.

업데이트 사용자의 경우에는 기존의 설정에 변화가 없으므로 상관이 없으나 만약을
위하여 php.ini 의 설정이 변경이 되어 있는지 확인을 해 보시기 바랍니다. 이번
버전 부터는 기존의 php.ini 을 건드리지 않도록 변경이 되었습니다.

* 보안 버그 fix
  . CVE-2008-2665
  Directory traversal vulnerability in the posix_access function in PHP 5.2.6
  and earlier allows remote attackers to bypass safe_mode restrictions via
  a .. (dot dot) in an http URL, which results in the URL being canonicalized
  to a local filename after the safe_mode check has successfully run. 

  . CVE-2008-2666
  Multiple directory traversal vulnerabilities in PHP 5.2.6 and earlier allow
  context-dependent attackers to bypass safe_mode restrictions by creating a
  subdirectory named http: and then placing ../ (dot dot slash) sequences in
  an http URL argument to the (1) chdir or (2) ftok function. 

* pear 1.7.2 update

* Official Patch

  - News 51773: afford a larger stack here and other json parsers out there
    go deeper than 128
  - News 51899: Avoid leaks when zlib streams can not be closed properly.
  - fixed bug #45030 Destination image alpha channel noise when using
    imagecopyresampled
  - fixed bug #44617 wrong HTML entity output when substitute_character=entity
  - fixed bug #43993 mb_substr_count() behaves differently to substr_count()
    with overlapping needles
  - fixed bug #45691 Some per-dir or runtime settings may leak into other
    requests

* php.ini option 추가

  - allow_include_extension = .php .php3

    include / require / include_once / require_once 사용시에 등록된 파일 확장자
    만 허가합니다. 등록되지 않은 경우 security issue 에러 메시지를 출력합니다.
    이 옵션이 켜졌을 경우, include 실패 시에, require 와 동일하게 script engine
    이 정지 됩니다.

    이 옵션이 켜졌을 경우, php upload 시에 지정된 확장자의 upload 를 보안상
    block 시킵니다. 이 경우 _FILES 의 err 변수가 UPLOAD_ERR_ILLEGAL(-1)로
    설정이 됩니다.

    처음 설치시에, 위의 값이 기본값으로 되니 주의 하시기 바랍니다.

* image 악성 코드 방어 기능 추가

  jpg header 나 gif 본문등에 PHP code 를 삽입하여 injection에 사용하는 경우를
  막기 위한 기능 입니다. 기본값은 Off 입니다. (이용 하시려면 php.ini 에서 설정
  해 주셔야 합니다.

  - upload_image_check

    image 안에 <? 로 시작하는 문자열을 찾아서 <?를 포함하여 연속으로
    17byte 가 ASCII 일 경우 악성 코드로 판단하여 upload 를 block 합니다.
    이 기능은 .jpg, .jpeg, .png, .gif 확장자를 가진 파일을 업로드 할 때만 작동
    합니다. 필터가 되었을 경우 _FILES 의 [err] member 의 값은
    UPLOAD_ERR_SECURITY(-2)로 기록이 됩니다.

  - upload_image_check_log

    upload_image_check 에 걸렸을 경우 에러 로그에 해당 내용을 기록하며, filter
    된 문자열이 어떤 것인지 기록됩니다.

  - upload_image_check_test

    upload_image_check에 필터되었을 경우, 체크만 하고 통과를 시킵니다.
    upload_image_check 기능을 적용하기 전에, upload_image_check_log 와 이
    옵션을 이용하여 sampling 을 할 수 있습니다. 예를 들어

    upload_image_check      = On
    upload_image_check_log  = On
    upload_image_check_test = On

    과 같이 설정을 하면, 체크를 하여 log 에 기록은 하지만 정상적으로 업로드는
    진행이 됩니다. 이를 위해서 _FIELS 의 member 중 [sec]와 [secstr] 이 확장이
    되었습니다. 필터가 되었을 경우, [err] member 는 정상적으로 0의 값을 가지지만
    [sec] member는 필터가 되었을 경우, UPLOAD_ERR_SECURITY(-2)로 기록이 되고,
    필터된 문자열은 [secstr] 변수에 남게 됩니다. 만약 이 경우 php code 단에서
    다음과 같이 처리할 수 있습니다.

    $files = $_FILES['userfile'];
    if ( $files['sec'] == UPLOAD_ERR_SECURITY ) {
      file_put_contents ('/tmp/security_log',
        "want/path/$files['tmp_name'] - [{$files['secstr']] by ");
    }
    move_uploaded_file ($files['tmp_name'], "want/path/$files['tmp_name']);

  - upload_image_check_whitelist

    image 내부에 water mark 나 기타 image generator 가 meta 정보를 넣는 경우가
    있습니다. 이 경우를 위하여 white list 를 만들 수 있습니다. PHP 내부에서
    adobe 관련 meta 정보를 기본으로 white list 로 가지고 있으며, 혹시 문제가
    되는 경우 이 옵션에 지정한 파일에 한줄씩 기입 하시면 됩니다. 기본 whitelist
    는 다음과 같습니다.

       <?xpacket begin
       <?xpacket end
       <?adobe-xap
       <?xml

* php.ini 기본값 변경 사항

  - 5.2.6-2 부터는 기존의 php.ini 설정을 원복 시키지 않습니다. 신규 설치시에만
    적용 됩니다.

  - retister_globals 의 값이 기본 On 에서 Off 로 변경
  - disable_functions 에 기본으로 phpinfo, ini_get, php_uname, get_cfg_var 를
    등록 이 함수들은 보통 PHP 프로그램 설치 installer 에서 많이 사용하며,
    프로그램 내부에서도 사용을 많이 하는 편입니다. 하지만, web 을 이용한 attack
    에도 굉장히 빈번하게 사용이 되는 관계로 기본으로 block을 시키게 되었습니다.

    주의하실 것은 아래의 기존 함수들을 사용하지 못하는 개념이 아니라 php.ini
    의 disable_functions 에 등록을 하여 악용을 방지하라는 의미입니다.

    대안으로, 5.2.6-2 부터는 이 함수들에 대한 alias function 을 제공하니,
    다음과 같이 변경하여 사용하시면 되겠습니다.

      phpinfo      => ___phpinfo
      ini_get      => ___ini_get
      ini_set      => ___ini_set
      ini_get_all  => ___ini_get_all
      get_cfg_var  => ___get_cfg_var
      php_uname    => ___php_uname

    이 외에,

      phpversion   => ___phpversion
      sys_get_temp_dir => ___sys_get_temp_dir

    을 지원하며, 이 들 함수는 weh shell 에서 아주 사용 빈도가 높은 이유로,
    막을 것을 권장 합니다.

    또한, ___phpinfo 등과 같이 alias 가 되지 않은 PHP 에서 사용이 가능 하도록
    하기 위하여 /usr/lib/php/alias_table.php 를 제공합니다.

  - upload_tmp_dir 의 값이 기본 /tmp 에서 /var/lib/php/tmp 로 변경
  - safe_mode_exec_dir 의 값이 기본으로 /var/lib/php/bin 으로 변경
    시스템 함수 사용시에, /var/lib/php/bin 에 존재하는 명령만 가능 합니다.
    필요한 명령들을 /var/lib/php/bin 에 soft link 시키시면 됩니다.

* urldecode / rawurldecode 에서 %00 을 제거하고 실행
  uri 에 %2500 을 넘겨서 urldecode 통과할 경우 null byte attack 이 가능하므로,
  %00 자체가 urldecode 에서 수행되지 않도록 방어

* Korean Extension 1.0.4 update
  - pcre / gd library 버전이 오래되어 발생하는 문제 수정

* eAccelerator 0.9.5.3 update
 - http://eaccelerator.net/ticket/232
 - changed mtime check method to mm from inode
 - add mtime check interval function

* memcache 3.0.1 update


Autoupdates 지원 : 일부 지원
  pkgsysupdate -v

  pkgadd -F "php*"


update 패키지

  RPMS :

    + PHP5

    . php-pear-1.7.2-1.noarch.rpm
    . php-binary-5.2.6-2.i686.rpm

    . php-5.2.6-2.i686.rpm
    . php-fcgi-5.2.6-2.i686.rpm
    . php-devel-5.2.6-2.i686.rpm
    . php-gd-5.2.6-2.i686.rpm
    . php-mssql-5.2.6-2.i686.rpm
    . php-bcmath-5.2.6-2.i686.rpm
    . php-geoip-5.2.6-2.i686.rpm
    . php-mysql-5.2.6-2.i686.rpm
    . php-gettext-5.2.6-2.i686.rpm
    . php-mysqli-5.2.6-2.i686.rpm
    . php-bz2-5.2.6-2.i686.rpm
    . php-hash-5.2.6-2.i686.rpm
    . php-openssl-5.2.6-2.i686.rpm
    . php-calendar-5.2.6-2.i686.rpm
    . php-iconv-5.2.6-2.i686.rpm
    . php-pdo-5.2.6-2.i686.rpm
    . php-curl-5.2.6-2.i686.rpm
    . php-imap-5.2.6-2.i686.rpm
    . php-pdo-mysql-5.2.6-2.i686.rpm
    . php-dba-5.2.6-2.i686.rpm
    . php-korean-5.2.6-2.i686.rpm
    . php-pdo-pgsql-5.2.6-2.i686.rpm
    . php-krisp-5.2.6-2.i686.rpm
    . php-pgsql-5.2.6-2.i686.rpm
    . php-eaccelerator-5.2.6-2.i686.rpm
    . php-rrd-5.2.6-2.i686.rpm
    . php-exif-5.2.6-2.i686.rpm
    . php-mcrypt-5.2.6-2.i686.rpm
    . php-sockets-5.2.6-2.i686.rpm
    . php-fileinfo-5.2.6-2.i686.rpm
    . php-memcache-5.2.6-2.i686.rpm
    . php-sqlite-5.2.6-2.i686.rpm
    . php-ftp-5.2.6-2.i686.rpm
    . php-mhash-5.2.6-2.i686.rpm
    . php-yp-5.2.6-2.i686.rpm
    . php-nis-5.2.6-2.i686.rpm
    . php-json-5.2.6-2.i686.rpm


  SRPMS :

    . php-5.2.6-2.src.rpm
    . php-extension-5.2.6-2.src.rpm


참고 :
http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2008-2665
http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2008-2666



    



 Home > Update [ 1.3 ]

Copyright 2024 OOPS Development Organization 
LAST MODIFIED: 2018/04/10