SV.CLASSLOADER.INJ

ClassLoader を使用して信頼できないソースからコンテンツにアクセス可能

このエラーは、ClassLoader クラスが信頼できないソースからの URL を使用して作成される場合に報告されます。

脆弱性とリスク

ClassLoader オブジェクトにより、実行時に実行可能データの参照およびロードが可能になります。攻撃者が代替の URL の場所を挿入できる場合、信頼できないコードが実行され、実行中の JVM またはローカルリソースへのアクセスが与えられる可能性があります。

軽減と防止

この問題は、信頼できないソースからの URL の参照を使用して ClassLoader オブジェクトをインスタンス化または更新しないようにすることで防止できます。

脆弱コード例 1

ClassLoader は、信頼できない URL データを使用してインスタンス化されます。クラスデータをロードするこの ClassLoader のすべての呼び出しは、危険を招くものと考えられます。

コピー
   public void createContent(final ServletRequest req)
       throws MalformedURLException {
   
       // Set up external reference to site
       final String urlString = req.getParameter("url.data");
       final URL url = new URL(urlString);
       final URLClassLoader loader = new URLClassLoader({url});
       ...
   }

修正コード例 1

URL はハードコード化されているため、システムはコンテンツが信頼できるものかどうか検証できます。

コピー
   public void testExternalReference()
       throws MalformedURLException {
   
       // Set up external reference to known site
       final String urlString = “http://verified.content.com/example.jar”;
       final URL url = new URL(urlString);
       final URLClassLoader loader = new URLClassLoader({url});
   }

関連チェッカー