엊그제 1.8.30 보안패치 올렸다고 한동안 안해도 되겠지~ 하고 있으면 큰코다쳐요.

 

[수정]

엊그제 1.8.31 보안패치 올렸다고 한숨 돌리고 있어도 곤란합니다!

오늘자 1.8.32까지 업데이트하셔야 합니다!

 

[수정]

중요 보안패치가 또 나왔습니다... 1.8.33...

 

[수정]

중요 보안패치가 또 나왔습니다... 1.8.34...

 

수정된 부분도 몇 줄 안 되니, 당장 업데이트가 힘들다면 패치된 부분(member.controller.php)만이라도 적용하세요.

10년 전 XE 초창기 버전부터 1.8.301.8.33까지 모든 버전이 취약합니다.

 

라이믹스도 1.8.311.8.34 패치까지 적용된 버전을 master 브랜치에 올렸으니 업데이트하시기 바랍니다.

업데이트하다가 에러나서 몇 시간 동안 사이트 먹통되는 것이 업데이트 안 하는 것보다 나아요.

그만큼 심각한 보안취약점입니다.

 

이런 게 왜 이제서야 발견된 것이여... ㅠㅠ

 

기진곰

profile
GitHub @kijin 사람을 위한 인터넷 생태계의 발전에 많은 관심을 갖고 있습니다.
우리가 만들어 가는 XE의 새 이름, 라이믹스(Rhymix) 프로젝트에 참여하고 있습니다.
오픈소스 도로명주소 검색서버 및 API Postcodify를 개발, 운영중입니다.
국내외 서버 및 클라우드서버 세팅, 이전, 튜닝해 드립니다.
  • profile
    아까 봤었던 권한탈취 관련 업데이트인가보군요 ㅠㅠ
  • ?
    바로했습니다.
  • profile
    기진곰님의 명령대로 1.8.30, 1.8.31 업데이트 주저하지 마시고 "실시"하세요. ^^
  • profile
    털릴 자료가 없...ㅅ...
  • ?

    @기진곰
    해당 패치를 잠깐 봤는데, 임시글 삭제하는 procMemberDeleteSavedDocument 함수에서
    deleteDocument 처리 전에 본인의 글인지 확인을 안 하는게 문제라는 건데 (물론 임시글 여부인지 확인하는 코드도 포함되어있지만 )
    ( document_srl 값을 강제 변동하는 경우에 대한 우려인듯한데 )
    어차피 deleteDocument 에 가면, 삭제전에 $oDocument->isGranted() 로 삭제권한여부를 다시 체크하기 때문에 실제적으로는 문제가 없지 않나요? ( isGranted 는 본인글 또는 관리자 를 제외하고는 안 되니)
    ( 물론 deleteDocument before 트리거에는 영향을 줄 수 있긴하겠지만.. 거의 무관할테고 )

    패치를 해두면 훨씬 해당 함수에 의의는 맞지만.. 패치를 안 해도 뚫리진 않을듯 보여서요.???

  • ? profile
    deleteDocument의 두번째 인자는 $is_admin인데 이값을 true로 넘겨주면 getDocument로 문서를 가져올때 실제 권한과는 상관없이 무조건 if($is_admin) $GLOBALS['XE_DOCUMENT_LIST'][$document_srl]->setGrant(); 로 권한을 부여해 버립니다. 즉 isGranted()에서 삭제권한이 있는것으로 뜨게 되죠.
  • profile ?

    보안이슈로 패치 안 되어있는 파일 살펴보면
    https://github.com/xpressengine/xe-core/commit/ffa67bf0cc94e44973c0a427a5052f770328332c

    member_srl 확인과 status 가 temp 인지 확인하는 문구가 추가되었다고만 나와있네요

    전 이것만 보고 판단해서 몰랐는는데..


    말씀해주신걸 보고,  혹시나 해서 기존 XE 버전들과 비교해보니 
    이 패치의 핵심은..
    $oDocumentController->deleteDocument($document_srl,true); 가
    $oDocumentController->deleteDocument($document_srl); 로 바뀐부분인데.. ( 위에건 더 효율을 높이기 위해 추가된 부분이고 )

    정작 이 이슈쪽에는 원본도
    $oDocumentController->deleteDocument($document_srl); 로 되어있던 상태에서 패치된거여서
    그냥 이 이슈만 보고 수정하는 분들은 빼먹겠네요...

    확인해보니 Xe 1.8.30 에서도 $oDocumentController->deleteDocument($document_srl,true); 로 되어있네요. XE 1.8.31 에서 true 가 빠진거고...

    제가 github 를 잘 몰라서 그런데
    혹시 https://github.com/xpressengine/xe-core/commit/ffa67bf0cc94e44973c0a427a5052f770328332c 를 직접 변경 가능하면
    기존 원본 쪽을 $oDocumentController->deleteDocument($document_srl,true); 로 바꿔놔서 이 부분이 변경된거라는 걸 꼭 알 수 있게 해줄 수 있었으면 하네요

  • ? profile
    두 커밋에 나눠서 패치되는 바람에 다소 혼란이 있겠네요.
    https://github.com/xpressengine/xe-core/commit/d781f4d445c0

    그러나 현실적으로는 두 커밋 중 어느 한쪽이라도 적용하면 보안상의 효과는 똑같습니다.
  • profile
    전 패치 나오면 무조건 업데이트 합니다.
  • profile
    코어를 안 건드리니 이럴 때에 많이 편하네요.
    그냥 덮어씌우기 해도 에러가 안나네요.
  • profile
    기진곰님 글 보고 바로 업데이트 했습니다. 감사합니다!
  • profile
    감사합니다. 아침 부터 빡세게 관리하는 사이트들 업그레이드 전쟁을 치웠네요..휴
  • profile
    32는 언제 기준으로 업뎃됐나요..ㅠㅠ? 아까 업뎃한 것 같은데..(라이믹스)
  • profile profile
    XE와 비슷한 시각인 오후 4시 30분경에 master, develop 모두 1.8.32로 업데이트되었습니다.
  • profile profile
    다시 해야겠군요..-_ㅠ
  • profile
    다올 CMS도 해당 취약점 1.0.2.6에서 수정되었습니다~~
  • ?
    31 패치했더니 갑자기 32패치하라고 바껴있네.. !?
  • profile
    해당 패치 후 사이트 [디자인 설정 -> 레이아웃]
    사이트 기본 스킨 사용 설정이 안먹네요 혹시 같은 문제 이신 분 있나요?
  • profile profile
    캐시파일 문제일 수도 있습니다. 버전업 후에는 반드시 캐시파일 재생성을...!
  • profile profile
    댓글 바로 달아 주셔서 감사합니다.
    캐시파일 재생성이랑 file 캐시도 다지워보고
    슈퍼캐시(메모리캐시 사용중) 비워 보았는데
    사이트 기본 스킨을 xe 기본으로 잡네요.
  • profile profile
    XE인가요 라이믹스인가요? 혹시 PHP 5.5 이상 버전인가요?
  • profile profile
    라이믹스 이며, php 는 7버전 쓰고 있습니다.
  • profile profile
    테스트서버 PHP7+라이믹스 환경에서 기본 레이아웃이 변경되지 않는 현상은 발견할 수 없었습니다. (아래에 있는 파란색 "PC설정 적용" 버튼은 클릭하셨나요?)

    캐시파일이 저장되어야 하는 위치에 퍼미션 문제가 있거나, DB 테이블이 손상되어 설정이 저장되지 않고 있거나, 그 밖의 다른 문제가 있는 것 같습니다.
  • profile profile
    확인 감사합니다. 해당 부분 설정하는 디비를 찾아보아야 겠네요.
    뜬금 없이 Template not found: ./modules/page/skins//USE_DEFAULT/content 이런 오류도 뜨고 자세히 살펴야겠습니다.
  • profile
    제목 숫자를 334로 업글하셔야 겠네요 ㅎㅎ