SV.EXPOSE.MUTABLEFIELD

类包含了引用 mutable 对象的 public、static、final 字段时,会检测到该错误。

漏洞与风险

请参阅 SV.EXPOSE.FIN

Klocwork 安全漏洞 (SV) 检查器可识别可能创建危险数据的调用;这些调用被视为不安全的来源。用户所提供的任何数据都可能是不安全的来源,因为用户可能是攻击者,或者可能引入人为错误。

缓解与预防

通过从每个类的 public 接口移除对 mutable 对象的引用、改用 immutable 对象或避免使用静态字段,可以减轻该漏洞造成的危害。

示例 1

复制
    final public static String adminUsers[] = new String[]{"root","toor"};
 
    // ...
    void maliciousUserCode() {
      adminUsers[1]="myself";
    }

针对第 10 行报告 SV.EXPOSE.MUTABLEFIELD:公共静态最终字段或受保护的静态最终字段 adminUsers 引用 java.lang.String[] 类型的 mutable 对象。该对象可能被恶意代码更改,或者被其他数据包无意之间更改