개요
부트스트랩은 반응형 모바일 우선 웹 사이트 및 애플리케이션을 개발하기 위한 HTML, CSS 및 JS 프레임워크입니다.
부트스트랩 3 캐러셀 컴포넌트에서 크로스 사이트 스크립팅(XSS) 취약점이 발견되었습니다.
OWASP 기준: 크로스 사이트 스크립팅 공격은 악성 스크립트가 정상적이고 신뢰할 수 있는 웹사이트에 삽입되는 인젝션의 한 유형입니다. XSS 공격은 공격자가 웹 애플리케이션을 사용하여 일반적으로 브라우저 측 스크립트 형태의 악성 코드를 다른 최종 사용자에게 전송할 때 발생합니다. 공격자는 XSS를 사용하여 의심하지 않는 사용자에게 악성 스크립트를 보낼 수 있습니다.
세부 정보
모듈 정보
- 패키지 관리자: npm
- 영향을 받는 구성 요소: 캐러셀
- Affected versions: >=2.0.0 <=3.4.1
- 게시된 패키지 링크: https://www.npmjs.com/package/bootstrap
- 깃허브 리포지토리: https://github.com/twbs/bootstrap/
취약점 정보
An anchor element (<a>), when used for carousel navigation with a data-slide or data-slide-to attribute, can contain an href attribute value that is not subject to proper content sanitization. Improper extraction of the intended target carousel’s #id from the href attribute can lead to use cases where the click event’s preventDefault() is not applied and the href is evaluated and executed. As a result, restrictions are not applied to the data that is evaluated, which can lead to potential XSS vulnerabilities.
재현 단계
캐러셀 구성 요소 코드가 탐색에 사용되는 앵커 요소의 href 속성에서 데이터 슬라이드 속성을 포함하지만 유효한 data-target="#someCarouselId"도 누락된 경우 데이터를 제대로 추출 및 살균하지 않습니다. 유효한 데이터 타겟이 있으면 href가 재정의되고 XSS는 평가되지 않습니다.
다음 섹션의 개념 증명을 참조하세요.
코드 예시
<div id="myCarousel" class="carousel"></div>
<a href="javascript:alert('XSS href')" data-slide="prev">
Previous Slide
</a>
개념 증명
코드가 포함된 전체 개념 증명은 여기에서 확인할 수 있습니다.
크레딧
- K(파인더)
완화
부트스트랩 3의 수명이 종료되었습니다. 영향을 받는 컴포넌트의 사용자는 다음 완화 조치 중 하나를 적용해야 합니다:
- 최신 버전의 부트스트랩으로 마이그레이션하기
- 자체 패치 적용
- 히어로데브즈와 같은 상용 지원 파트너를 활용하여 EOL 이후 보안 지원을 받으세요.
문제 해결
부트스트랩 버전 3의 수명이 다했음에도 불구하고 히어로 개발팀은 이 취약점을 해결하기 위해 중요한 패치를 제공하기로 결정했습니다. 이 패치는 href 속성을 적절하게 살균하여 이 벡터를 통한 XSS 공격의 가능성을 차단합니다.
부트스트랩 네버엔딩 지원을 결제하는 히어로즈 고객은 최신 NES 버전의 부트스트랩 3(bootstrap@3.4.5)에서 이 문제가 수정되었습니다. 아직 최신 버전을 설치하지 않았거나 도움이 필요한 경우 지원팀에 문의하여 도움을 받으세요.
다른 모든 부트스트랩 3 사용자는 부트스트랩 3에서 빠르게 마이그레이션하는 것을 고려하세요. 또는 히어로개발팀에 문의하여 히어로개발팀으로부터 안전한 부트스트랩 3 업데이트를 얼마나 쉽게 받을 수 있는지 알아보세요.
학습 및 예방
커뮤니티를 더욱 지원하기 위해 히어로데브는 향후 유사한 취약점을 예방하기 위한 자세한 지침을 제공합니다. 주요 전략에는 데이터 입력, 특히 동적 캐러셀 탐색과 같은 중요한 구성 요소와 상호 작용하는 데이터 입력을 위생 처리하는 것이 포함됩니다. 또한 타사 라이브러리를 정기적으로 검토하고 업데이트하여 잠재적인 보안 결함이 악용되기 전에 이를 발견하고 해결하는 것이 좋습니다.
결론
CVE-2024-6484는 소프트웨어의 수명이 다한 후에도 유지 관리 및 보안의 중요성을 상기시키는 역할을 합니다. 선제적인 조치와 커뮤니티 지원을 통해 모든 사용자에게 더 안전한 디지털 환경을 제공할 수 있습니다.
부트스트랩 3 및 지원 라이브러리에 대한 보안, 규정 준수 및 호환성 지원에 관심이 있으시면 문의해 주세요.
히어로데브의 최신 패치를 통해 시스템을 안전하게 보호하고 업데이트하세요. 블로그를 팔로우하여 더 많은 인사이트와 보안 업데이트를 확인하세요.
저희가 지원하는 오픈 소스 소프트웨어에서 새로운 취약점이 수정될 때마다 알림을 받으세요.