상세 컨텐츠

본문 제목

jQuery 자바스크립트 라이브러리에서 웹사이트 취약점 발견돼

국내외 보안동향

by 알약(Alyac) 2019. 4. 24. 14:54

본문

jQuery JavaScript library flaw opens the doors for attacks on hundreds of millions of websites


인기 있는 jQuery 자바 스크립트 라이브러리에서 공격자가 자바스크립트 객체(Object)의 프로토타입 변조를 허용할 수 있는 ‘프로토타입 오염(Prototype pollution)’ 결함이 발견되었습니다.


jQuery 자바스크립트 라이브러리는 현재 온라인 전체 웹사이트 중 74%에 사용되고 있습니다.


<이미지 출처: https://w3techs.com/technologies/details/js-jquery/all/all>


사이트 대부분이 ‘프로토타입 오염’ 결점에 취약한 라이브러리 1.x와 2.x 버전을 사용하고 있었습니다.


<이미지 출처: https://w3techs.com/technologies/details/js-jquery/all/all>


해당 라이브러리는 금주 이 문제를 수정하기 위한 보안 패치를 발표했습니다. 이는 해당 코드에서 주요 보안 취약점이 발견된 지 3년 만입니다.


자바스크립트 객체는 미리 정의된 구조를 기반으로 여러 값을 저장하는 데 사용할 수 있는 변수와 같습니다.


프로토타입은 자바스크립트 객체의 기본 구조와 기본값을 정의하는데 사용되며, 값이 설정되지 않았을 때에는 구조를 지정하는데 필수적입니다.


공격자는 예상된 값을 받지 못할 경우 어플리케이션을 충돌시키고 동작을 변경할 수 있게 됩니다.


자바 스크립트의 사용 현황을 감안할 때, 프로토타입 오염 결함 악용은 웹 어플리케이션에 심각한 영향을 미칠 것입니다.


jQuery 라이브러리에 존재하는 이 취약점(CVE-2019-11358)은 Snyk의 연구원들이 발견했으며, 프로토타입 오염 공격의 PoC 코드도 공개되었습니다.


이 보안 취약점은 프로토타입 오염을 나타내며, 공격자들이 자바 스크립트 어플리케이션 객체 프로토타입을 덮어쓰기가 가능하도록 허용합니다.


이 같은 일이 발생할 경우, 공격자가 제어하는 속성은 객체에 주입됩니다.


그리고 자바 스크립트 예외를 트리거 해 서비스 거부(DoS)를 유발하거나 공격자가 삽입하는 코드 경로를 강제로 변조할 수 있습니다.


전문가들은 공격자들이 이 취약점을 악용할 경우 jQuery 라이브러리 코드를 사용하는 웹 앱에서 관리자 권한을 부여받을 수 있다는 것을 시연해 보였습니다.


전문가에 따르면, 다행히도 이 프로토타입 오염 문제는 대규모 공격에서 악용이 불가능한 것으로 나타났습니다. 


익스플로잇 코드가 타깃에 따라 다르게 작성되어야 하기 때문입니다.


어플리케이션에 jQuery 자바스크립트 라이브러리를 사용하는 웹 개발자들은 최신 버전인 jQuery 3.4.0으로 업데이트할 것을 권고 드립니다.


jQuery 팀은 블로그를 통해 jQuery 3.4.0은 jQuery.extend (true, {}, …)를 사용할 때 발생하는 의도치 않은 행동들에 대한 수정사항이 포함되어 있다고 밝혔습니다. 


검사하지 않은 소스 객체가 열거 가능한 __proto__ 속성을 포함하고 있을 경우, 이는 기존의 Object.prototype을 확장시킬 수 있습니다. 


이 수정사항은 jQuery 3.4.0에 포함되어 있으나, 이전 jQuery 버전을 패치하기 위한 patch diffs도 있다고 언급했습니다.




출처:

https://securityaffairs.co/wordpress/84340/hacking/jquery-javascript-library-flaw.html

https://snyk.io/blog/after-three-years-of-silence-a-new-jquery-prototype-pollution-vulnerability-emerges-once-again/

https://blog.jquery.com/2019/04/10/jquery-3-4-0-released/

https://w3techs.com/technologies/details/js-jquery/all/all

관련글 더보기

댓글 영역