재현 단계
3.4.0 이전 버전의 jQuery에는 프로토타입 오염이라고 하는 중간 수준의 취약점이 포함되어 있습니다. 검사되지 않은 소스 객체에 열거 가능한 __proto_property(열거 가능은 for...next 루프에서 사용할 수 있음을 의미)가 포함되어 있으면 악성 코드가 기본 Object.prototype 객체에 액세스할 수 있습니다. 이 액세스 권한을 통해 공격자는 모든 자바스크립트 객체가 상속하는 방식으로 이 기본 객체를 확장할 수 있으므로 다양한 공격 벡터를 도입할 수 있습니다. jQuery 3.4.0 릴리스 블로그 항목에 추가 설명이 있으므로 읽어볼 가치가 있습니다.
문제 해결
고객은 즉시 jQuery 3.4.0으로 업데이트하고 프로토타입 오염 취약점을 방지하기 위해 항상 사용자 지정 프로그래밍이 소스 개체를 살균하도록 해야 합니다. jQuery 3으로 마이그레이션할 수 없는 클라이언트를 위해 HeroDevs는 수정 사항이 적용된 jQuery 1 및 2에 대한 네버 엔딩 지원을 제공합니다.
학습 및 예방
객체를 살균하는 것 외에도 변경 불가능한 객체 사용, 속성 화이트리스트, Object.create(null)을 사용하여 프로토타입 없이 객체 생성 등 이 문제를 방지하는 데 도움이 되는 여러 가지 방법이 있습니다. 이 목록은 완전한 것이 아니며 jQuery 개발자는 이러한 종류의 익스플로잇의 위험을 줄이기 위해 안전한 프로그래밍 관행에 대해 잘 알고 있어야 한다는 점에 유의하세요.
결론
HeroDevs jQuery 영구 지원은 jQuery 1 버전과 jQuery 2 버전에 CVE-2019-11358에 설명된 잠재적 보안 허점을 수정하는 수정 사항을 제공합니다. 이와 같은 보안 업데이트에 대한 최신 정보를 받으려면 지금 바로 문의하여 고객이 되세요.
리소스
저희가 지원하는 오픈 소스 소프트웨어에서 새로운 취약점이 수정될 때마다 알림을 받으세요.