재현 단계
This vulnerability can convert safe <option> tags that are surrounded by various other tags (particularly the <select> tag) into unsafe ones, thereby opening the possibility of a Cross-Site Scripting (XSS) attack. The vulnerability is present in versions of the library prior to 1.8.0, specifically in the jqLite library.
문제 해결
1.8.0 이전 버전의 AngularJS를 사용하는 고객은 즉시 업그레이드해야 합니다.
이 수정 사항에는 이전 버전과의 호환성을 깨는 변경 사항이 포함되어 있으므로 이전 동작을 복원하는 새로운 메서드는 UNSAFE_restoreLegacyJqLiteXHTMLReplacement에서 찾을 수 있습니다. 임시 조치로 이 이전 버전과 호환되는 메서드를 사용하기로 선택한 경우 가능한 한 빨리 교체할 계획을 세우세요.
학습 및 예방
Although there are many ways in which an XSS attack can occur that are within the developer’s control, in this case, the problem was in the method that was used to help sanitize the code. The original code used in the library was able to take already-sanitized code and turn it into unsanitized code. Sanitized, in this case, means that the code had already been “escaped.” Escaping is the process of converting risky characters such as < to safer versions (< in the case). Since it’s not possible to know the order in which various sanitization functions are executed, this improper transformation could have occurred last—thereby rendering the code insecure.
결론
이 취약점에 설명된 수정 사항은 1.8.0에 포함되어 있으며, 아직 Angular 1.5를 사용 중인 HeroDevs AngularJS 네버엔딩 지원 고객도 즉시 사용할 수 있습니다. 잠재적으로 비용이 많이 드는 공격을 피하기 위한 지원을 받으려면 지금 바로 HeroDevs[TODO: 링크 삽입]에 문의하세요.
히어로데브 네버엔딩 서포트 구독을 통해 안심하고 이용하고 싶다면 지금 바로 유니티 영업팀에 문의하세요.
리소스
저희가 지원하는 오픈 소스 소프트웨어에서 새로운 취약점이 수정될 때마다 알림을 받으세요.