새로운 패치 Supee-6788 패치 적용 방법


29

오늘 패치를 기다리는 주 (2015 년 10 월 27 일) 이후 SUPEE-6788 이 릴리스되었습니다.

많은 것들이 패치되었고 또한 가능한 취약점에 대해 설치된 모듈을 검토하도록 권장됩니다.

패치를 적용하는 방법에 대한 통찰력을 얻기 위해이 게시물을 엽니 다. 패치를 적용하는 단계는 무엇입니까? 내 이해에는 이것이 단계입니다.

  1. 관리 URL이 아닌 관리 기능을 가진 모듈 수정
  2. SQL 문을 필드 이름 또는 이스케이프 필드로 사용하는 모듈 수정
  3. {{config path=”web/unsecure/base_url”}}and와 같은 변수를 사용하는 화이트리스트 블록 또는 지시문{{bloc type=rss/order_new}}
  4. 사용자 정의 옵션 파일 유형을 사용하여 잠재적 인 악용 문제 해결 방법
  5. 패치 적용

이것이 올바른 절차입니까?


1
현재 나열된 CE 버전 1.7.0.0 ~ 1.9.2.0
Fiasco Labs

5
패치 .htaccess.sample뿐만 아니라 변경 됩니다 .htaccess. 후자는 대부분의 상점에서 사용자 정의됩니다,이 패치 => 당신은, 패치를 적용 자신의 .htaccess를 복원에 대한 액세스를 보호 변경 적용 일시적 젠토에서 원본 파일로 교체 할 필요가 실패 할 것 cron.php'돈 (수동을 t 물론이 프로세스에 생산 시스템을 사용하십시오!)
Fabian Schmengler

1
nginx를 사용하는 사람들은 어떻습니까?
lloiacono

4
나는 질문이 없기 때문에이 질문을 주 제외로 닫으려고 투표하고 있습니다. 토론 을 채팅으로
7ochem

2
게시물 제목에 질문이 있으며 마지막 단락에도 더 구체적입니다. 그럼에도 불구하고 이런 종류의 게시물은 새로 출시 된 패치를 적용 할 때 의견과 모범 사례를 중앙 집중화하는 데 매우 유용합니다.
lloiacono

답변:


33

일반적으로 패치를 모든 이전 패치로 적용 할 수 있습니다. 상기 모습이 공식 문서를 이 확인 SE 게시물을 . 그러나이 패치를 적용 할 때 확인해야 할 몇 가지 추가 사항이 있습니다. Byte / Hypernode에는 좋은 소식 이 있습니다.

  1. 테마 사용자 정의가있는 경우 확인 template/customer/form/register.phtml또는 사용자 정의 template/persistent/customer/form/register.phtml. 이 경우을 포함해야합니다 form_key.
  2. 테마에 사용자 정의가 있는지 확인하십시오 layout/customer.xml. 이 경우 패치에서 필요한 변경 사항을 적용하십시오 ( customer_account_resetpassword로 변경됨 customer_account_changeforgotten).
  3. CMS 페이지, 정적 블록 또는 전자 메일 템플릿에서 비표준 변수를 사용합니까? 그런 다음 허용 목록에 있는지 확인하십시오. 변수 / 블록을 허용하는 방법을 배우려면 이 SE 질문 을 참조하십시오 .
  4. cron.phpvia via HTTP 를 실행 합니까? 더 잘 사용해야 cron.sh합니다. 이것이 가능하지 않은 경우 최소한 CLI PHP를 통해 cron.php를 호출해야합니다. 어떤 이유로 실제 cronjob을 구성 할 수없고 HTTP를 통해 실행해야하는 경우이 SE 질문을 참조하십시오.
  5. 모든 확장 프로그램이 "새"관리자 라우팅을 사용해야합니다. 당신이 사용할 수있는 이 N98-magerun의 확인 플러그인을. 이 CLI 스크립트를 사용할 수도 있습니다 . 이 관련 SE 질문을 볼 수도 있습니다 .
    1. 모든 확장이 올바른 관리자 라우팅을 사용하는 경우 시스템-구성-관리자-보안에서 "관리자 라우팅 호환성 모드 사용"을 비활성화해야합니다.
  6. M2ePro를 사용하는 경우 이전 버전이 새 패치에서 작동하지 않으므로 최신 버전으로 업데이트하십시오.

업데이트 할 때는 파일을 삭제하십시오 dev/tests/functional/.htaccess. Magento 1.9.2.2에는 더 이상 존재하지 않습니다. 그것을 유지하는 것은 여전히 ​​취약하다는 것을 의미합니다.

어쨌든 업데이트 후 MageReport로 페이지를 확인하여 모든 것이 제대로 되었는지 확인하십시오 .

Piotr기술 블로그 게시물 에도 중요한 변경 사항이 설명되어 있습니다.


CLI 스크립트는 '모두 확인 후 관리 컨트롤러 호환성 모드를 비활성화합니다'라고 언급합니다. 나는 그들이 그것을 가능하게하는 반대의 의미라고 생각합니다. 맞습니까?
Michael

1
@kaska 모든 확장이 정상이면 호환성 모드 를 비활성화 해야합니다.
Simon

프로덕션 환경에서 / dev를 완전히 제거해서는 안됩니까?
paj

1
@paj 이론적으로 그렇습니다. 그러나 버전 1.9.2.2에서는 .htaccess로 보호되므로이를 유지하는 것이 좋습니다. 위의 .htaccess 조언을 따르십시오.
Simon

완전성에 감사합니다. 다음 번에 요약 된 릴리스 노트를 작성할 수 있습니다. 정말 도움이되었습니다!
asherrard


3

Nginx의 경우 cron.php 및 dev 폴더에 대한 액세스를 차단해야합니다. 이 블록을 사용합니다 :

location ~ ^/(app|includes|media/downloadable|pkginfo|report/config.xml|var|magmi|cron.php|dev)/? { deny all; }

정규식이 작동하지 않아 디렉토리 만 검사합니다. "report / config.xml, cron.php"가 일치하지 않으며 끝에 세로 막대 또는 파이프 기호가 있습니다. 복사-붙여 넣기? 또한 정규식을 / app /와 함께 엉망으로 만들지 마십시오. 무언가를 잘못 놓으면 해킹됩니다.
MagenX

복사 및 붙여 넣기 작업이 잘못되었습니다. 죄송합니다. 에 추가 되었습니까? 끝에 슬래시는 선택 사항입니다. 지금 막 테스트했으며 정상적으로 작동합니다.
Adam L.

또한이 정규 표현식은 취약합니다. ^ /, 소스 파일을 / old /, / upgrade /와 같은 최상위 폴더에 복사하지
마십시오.

@MagenX 따라서 버전 관리 나 표준 시스템 관리 BCP를 사용하지 않는다면이 정규식이 책임이 있다고 말할 수 있습니까?
Melvyn

1

방금 1.10.1 EE에 패치를 적용했는데 코어가 APPSEC-1063을 준수하지 않기 때문에 기본 화면에 부작용이 발생합니다.

예:

에서 app/code/core/Mage/Customer/Model/Entity/Attribute/Collection.php

addFieldToFilterAPPSEC-1063을 준수하지 않는 2 개의 통화 를 찾을 수 있습니다 .

이로 인해 고객> 속성 그리드가 손상되었으므로 APPSEC-1063 섹션의 "SUPEE-6788-Technical % 20Details % 20.pdf"pdf에서 권장하는 트릭을 사용하여 패치를 패치해야합니다.

몇 가지 변경

    $this->addFieldToFilter($field, 0);

(여기서 $ field는 복잡한 (CASE .. WHEN THEN ...) SQL 문을 포함합니다)

으로

    $resultCondition = $this->_getConditionSql($field, 0);
    $this->_select->where($resultCondition);

rhoerr의 supee-6788-toolbox와 gaiterjones '는 이런 종류의 문제를 감지하지 못했습니다. 다른 모든-> addFieldToFilter ($를 확인했지만 아무도 문제를 일으키는 것으로 보이지 않습니다.

영향을받는 다른 1.10 코어 파일 : (rhoerr 's supee-6788-toolbox에 의해 발견됨)

app/code/core/Mage/Bundle/Model/Mysql4/Option/Collection.php 

더있을 수 있습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.