概要
Bootstrapは、レスポンシブでモバイルファーストなWebサイトやアプリケーションを開発するためのHTML、CSS、JSフレームワークです。
Bootstrap 4 Carousel コンポーネントにクロスサイトスクリプティング (XSS) 脆弱性が確認されました。
OWASPによるクロスサイト・スクリプティング攻撃は、インジェクションの一種であり、悪意のあるスクリプトが、他の良識ある信頼できるウェブサイトに注入されます。XSS 攻撃は、攻撃者がウェブ・アプリケーションを使って悪意のあるコードを、一般的にはブラウザ・サイドのスクリプトの形で、別のエンド・ ユーザに送信することで発生します。攻撃者は XSS を使って、疑うことを知らないユーザに悪意のあるスクリプトを送ることができます。
詳細
モジュール情報
- パッケージマネージャ: npm
- 影響を受けるコンポーネント:カルーセル
- Affected versions: >=4.0.0 <=4.6.2
- 公開されたパッケージへのリンク: https://www.npmjs.com/package/bootstrap
- Github repo: https://github.com/twbs/bootstrap/
脆弱性情報
An anchor element (<a>), when used for carousel navigation with a data-slide 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.
再現の手順
カルーセル・コンポーネントのコードは、data-slide属性を含むが有効なdata-target="#someCarouselId "がない場合、ナビゲーションに使用されるアンカー要素のhref属性からデータを適切に抽出し、サニタイズしません。有効なdata-targetが存在すると、hrefが上書きされ、XSSは評価されません。
次のセクションの概念実証を参照。
コード例
<div id="myCarousel" class="carousel">
</div><a href="javascript:alert('XSS href')" data-slide="prev">
Previous Slide
</a>
概念実証
コード付きの完全な概念実証はここで見ることができる。
クレジット
- K(ファインダー)
緩和
Bootstrap 4がEnd-of-Lifeに達しました。 影響を受けるコンポーネントのユーザーは、以下のいずれかの緩和策を適用してください:
- 新しいバージョンのBootstrapに移行する
- 独自のパッチを適用する
- EOL後のセキュリティ・サポートには、HeroDevsのような商用サポート・パートナーを活用する。
問題への対処
Bootstrapバージョン4が寿命を迎えたにもかかわらず、HeroDevsはこの脆弱性に対処するための重要なパッチを提供するために立ち上がりました。このパッチは、href属性が適切にサニタイズされ、このベクトルによるXSS攻撃の可能性をブロックすることを保証します。
Bootstrapのネバーエンディングサポートをご利用いただいているHeroDevsのお客様には、Bootstrap 4の最新ファミコンバージョン(bootstrap@4.6.2-bootstrap-4.6.4)でこの問題の修正を行いました。まだ最新バージョンをインストールしていない場合、またはサポートが必要な場合は、サポートチームまでご連絡ください。
他のすべてのBootstrap 4ユーザーの皆様は、Bootstrap 4からの迅速な移行をご検討ください。または、HeroDevsから安全なBootstrap 4のアップデートを受け取ることがいかに簡単か、お問い合わせください。
学習と予防
コミュニティをさらに支援するために、HeroDevsは今後同様の脆弱性を防ぐための詳細なガイダンスを提供しています。主要な戦略には、データ入力のサニタイズ、特にダイナミック・カルーセル・ナビゲーションのような重要なコンポーネントと相互作用するデータ入力のサニタイズが含まれます。また、悪用される前に潜在的なセキュリティ上の欠陥を発見し、対処するために、サードパーティのライブラリを定期的に見直し、更新することを推奨します。
結論
CVE-2024-6531は、ソフトウェアが使用期限を迎えた後であっても、ソフトウェアを保守し、安全性を確保することの重要性を再認識させるものです。積極的な対策とコミュニティのサポートにより、すべてのユーザーにとってより安全なデジタル環境を確保することができます。
Bootstrap 4およびサポートライブラリのセキュリティ、コンプライアンス、互換性サポートにご興味のある方は、こちらまでご連絡ください。
HeroDevsの最新パッチでシステムを確実にアップデートし、安全な状態を維持しましょう。より多くの洞察とセキュリティアップデートについては、当社のブログをフォローしてください。
弊社がサポートするオープンソースソフトウェアに新たな脆弱性が修正された場合、いつでもアラートを受け取ることができます。