개요
부트스트랩은 반응형 모바일 우선 웹 사이트 및 애플리케이션을 개발하기 위한 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/
취약점 정보
버튼의 상태 기능과 관련된 데이터-*-텍스트 속성(예: 데이터-완료-텍스트)을 사용하는 것은 콘텐츠 위생 처리의 대상이 아닙니다. 따라서 버튼 내부에 표시될 수 있는 HTML에는 제한이 적용되지 않습니다. 이로 인해 악성 스크립트(XSS)가 삽입되어 민감한 데이터가 원격 서버로 유출될 수 있습니다.
재현 단계
버튼 컴포넌트 코드가 데이터-[문자열]-텍스트 형식을 따르고 .button() 메서드와 함께 사용되는 속성에 배치할 수 있는 콘텐츠를 적절하게 살균하지 않습니다. 데이터 속성을 URL 매개변수나 입력 필드에 바인딩하는 버튼을 사용하면 공격자가 악성 코드를 삽입할 수 있습니다. 다음 섹션의 개념 증명을 참조하세요.
코드 예시
<input
id="firstName"
type="text"
value="<script>alert('XSS Input Success')</script><span>Loading XSS</span>"
/>
<button
class="btn btn-primary input-test"
data-loading-text="<span>I'm Loading</span>"
type="button"
>
Click Me
</button>
<script>
$(function () {
$('.input-test').click(function () {
var inputValue = $('#firstName').val();
$(this).data('loadingText', inputValue);
$(this).button('loading', inputValue);
});
});
</script>
개념 증명
코드가 포함된 전체 개념 증명은 여기에서 확인할 수 있습니다.
크레딧
- K(파인더)
완화
부트스트랩 3의 수명이 종료되었습니다. 영향을 받는 컴포넌트의 사용자는 다음 완화 조치 중 하나를 적용해야 합니다:
- 최신 버전의 부트스트랩으로 마이그레이션하기
- 자체 패치 적용
- 히어로데브즈와 같은 상용 지원 파트너를 활용하여 EOL 이후 보안 지원을 받으세요.
문제 해결
부트스트랩 3은 수명이 다했으며 최신 버전의 부트스트랩으로 마이그레이션하는 것이 좋습니다.
또는 히어로데브즈에서 안전한 부트스트랩 3 드롭인 대체품을 제공합니다.
부트스트랩 버전 3의 수명이 다했음에도 불구하고 히어로 개발팀은 이 취약점을 해결하기 위해 중요한 패치를 제공하기로 결정했습니다. 이 패치는 데이터 속성이 적절하게 살균되도록 하여 이 벡터를 통한 XSS 공격의 가능성을 차단합니다.
부트스트랩 네버엔딩 지원을 결제하는 히어로즈 고객은 최신 NES 버전의 부트스트랩 3(bootstrap@3.4.5)에서 이 문제가 수정되었습니다. 아직 최신 버전을 설치하지 않았거나 도움이 필요한 경우 지원팀에 문의하여 도움을 받으세요.
다른 모든 부트스트랩 3 사용자는 부트스트랩 3에서 빠르게 마이그레이션하는 것을 고려하세요. 또는 히어로개발팀에 문의하여 히어로개발팀으로부터 안전한 부트스트랩 3 업데이트를 얼마나 쉽게 받을 수 있는지 알아보세요.
학습 및 예방
커뮤니티를 더욱 지원하기 위해 히어로 개발팀은 향후 유사한 취약점을 예방하기 위한 자세한 지침을 제공합니다. 주요 전략에는 데이터 입력, 특히 동적 버튼 콘텐츠와 같은 중요한 구성 요소와 상호 작용하는 데이터 입력을 위생 처리하는 것이 포함됩니다. 또한 타사 라이브러리를 정기적으로 검토하고 업데이트하여 잠재적인 보안 결함이 악용되기 전에 이를 발견하고 해결하는 것이 좋습니다.
결론
CVE-2024-6485는 소프트웨어의 수명이 다한 후에도 유지 관리 및 보안의 중요성을 상기시키는 역할을 합니다. 선제적인 조치와 커뮤니티 지원을 통해 모든 사용자에게 더 안전한 디지털 환경을 제공할 수 있습니다.
부트스트랩 3 및 지원 라이브러리에 대한 보안, 규정 준수 및 호환성 지원에 관심이 있으시면 문의해 주세요.
히어로데브의 최신 패치를 통해 시스템을 안전하게 보호하고 업데이트하세요. 블로그를 팔로우하여 더 많은 인사이트와 보안 업데이트를 확인하세요.
저희가 지원하는 오픈 소스 소프트웨어에서 새로운 취약점이 수정될 때마다 알림을 받으세요.