CVE-2020-11022

사이트 간 스크립팅
영향
jQuery
>=1.2.0 <3.5.0
in
jQuery
패치 사용 가능
이 취약점은 HeroDevs에서 제공하는 네버엔딩 지원(NES) 버전에서 수정되었습니다.

↪cf_200D↩복제 단계

중간 수준의 익스플로잇은 1.2 이상 3.5.0 이전의 jQuery 버전에서 발견될 수 있습니다. 이 문제는 신뢰할 수 없는 소스의 HTML을 위생 처리한 후에도 jQuery의 DOM 조작 메서드 중 하나(예: .html(), .append() 등)로 전달할 때 발생할 수 있습니다. 입력이 올바르게 위생 처리되지 않은 경우 이러한 메서드는 신뢰할 수 없는 코드를 실행할 수 있습니다.

문제 해결

클라이언트는 철저한 테스트 후 즉시 jQuery 3.5.0으로 업데이트해야 합니다. 3.5.0에서는 jQuery.htmlPrefilter()에 사용되는 위생 처리 방법이 변경되었으며 위생 처리 기능이 예기치 않은 결과를 생성할 수 있는 에지 케이스가 있기 때문에 광범위한 테스트가 필요합니다. 이전 동작이 반드시 필요한 경우 jQuery 3.5.0 릴리스 블로그에서 이전 로직을 안전한 방식으로 사용하는 방법을 설명합니다. 또는 마이그레이션할 수 없는 클라이언트를 위해 HeroDevs는 이 보안 취약점에 대한 수정 사항이 포함된 jQuery 1 및 jQuery 2 버전을 포함하여 jQuery에 대한 네버 엔딩 지원을 제공합니다.

학습 및 예방

신뢰할 수 없는 데이터를 사용하거나 저장하기 전에 이를 살균하는 것은 보안 모범 사례로, 이는 코드를 손상시키는 일반적인 벡터이기 때문입니다. 이 사례에서는 데이터를 살균하도록 설계된 코드에서 오류가 발견되었습니다. 가능한 최선의 수정 방법은 정규식() 사용에서 벗어나 새로운 방식으로 데이터를 살균하는 것이었습니다. 

일반적으로 내장된 위생 처리 방법을 사용하는 것으로 충분합니다. 그러나 버전 3.5.0에서 새로운 살균 방법을 사용하더라도 jQuery 팀은 추가 살균을 위해 DOMPurify 라이브러리를 사용하고 SAFE_FOR_JQUERY 옵션을 반드시 사용할 것을 권장합니다. DOMPurify는 크로스 사이트 스크립팅(XSS) 익스플로잇을 방지하도록 특별히 설계된 매우 인기 있고 구성이 가능한 라이브러리입니다.

결론

히어로데브스 NES 클라이언트는 사이트에 가장 안전한 자바스크립트 프레임워크를 제공하기 위해 이 취약점 및 기타 모든 관련 CVE가 수정된 jQuery 버전을 받습니다.

이 수정은 CVE-2020-11022에 설명된 잠재적 보안 허점을 직접적으로 수정합니다. 이와 같은 보안 업데이트에 대한 최신 정보를 받으려면 지금 바로 고객으로 가입하세요.

리소스