再現の手順
This Medium level exploit is related to CVE-2020-11022; it can be found in jQuery versions greater than or equal to 1.0.3 and before 3.5.0. Instead of being concerned with general HTML (which CVE-2020-11022 handles), this problem may occur when passing HTML containing <option> elements, even after sanitizing it, to one of jQuery's DOM manipulation methods (i.e. .html(), .append(), and others). With input not correctly sanitized, these methods may execute untrusted code.
問題への対処
クライアントは、十分なテストを行った後、直ちにjQuery 3.5.0にアップデートしてください。jQuery.htmlPrefilter()で使用されているサニタイズ方法が3.5.0で変更され、サニタイズ機能が予期しない結果をもたらす可能性があるエッジケースが存在するため、広範なテストが必要です。古い動作がどうしても必要な場合は、jQuery 3.5.0 Releaseのブログで、安全な方法で古いロジックを使用する方法が説明されています。
学習と予防
Sanitizing untrusted data before using or storing it is a security best practice for good reason: it is a common vector for breaking code. In this case, the error was found in the code designed to sanitize the data that specifically included <option> elements.
通常は、組み込みのサニタイズ方法を使用するだけで十分です。しかし、バージョン3.5.0で新しいサニタイズ方法を採用しているにもかかわらず、jQueryチームは追加のサニタイズのためにDOMPurifyライブラリを 使用し、SAFE_FOR_JQUERYオプションを必ず使用することも推奨しています。DOMPurifyは、クロスサイトスクリプティング(XSS)エクスプロイトを防ぐために特別に設計された、非常に人気があり、高度に設定可能なライブラリです。
結論
サイトに可能な限り安全なJavascriptフレームワークを提供するために、HeroDevs NESクライアントは、このバージョンのjQueryと、修正された他のすべての関連するCVEを受け取ります。
この修正により、CVE-2020-11023 で説明されている潜在的なセキュリティホールが直接修正されます。このようなセキュリティアップデートの最新情報を入手するには、今すぐ弊社にお問い合わせください。
リソース
弊社がサポートするオープンソースソフトウェアに新たな脆弱性が修正された場合、いつでもアラートを受け取ることができます。