• XStream组件预警以及修复指引


    xstream介绍

    官网地址:https://x-stream.github.io/
    基本介绍:对XML对象进行序列化和反序列化的库
    漏洞预警:存在远程代码执行漏洞,可造成服务器被入侵和业务数据被窃取,该漏洞风险等级为【严重】
    影响版本: 1.4.17 以下版本

    修复方案

    升级

    升级到最新版本1.4.17。
    https://x-stream.github.io/download.html

    删除jar包

    如果业务不需要使用XStream库文件,直接删除即可

    限制反序列化的类

    需要修改源码,XStream官方提供了安全api让开发者根据项目的需求去做限制。
    demo:

     1 import com.thoughtworks.xstream.XStream;
     2 import com.thoughtworks.xstream.security.NoTypePermission;
     3 import com.thoughtworks.xstream.security.NullPermission;
     4 import com.thoughtworks.xstream.security.PrimitiveTypePermission;
     5 
     6 import java.io.File;
     7 import java.io.FileOutputStream;
     8 
     9 public class Test {
    10 
    11 
    12     public static void main(String[] args) throws Exception {
    13 
    14         XStream xstream = new XStream();
    15         xstream.toXML(new People("test",11),new FileOutputStream(new File("/tmp/people.xml")));
    16 
    17         // 不允许白名单
    18         xstream.addPermission(NoTypePermission.NONE);
    19         // 允许基础类
    20         xstream.addPermission(NullPermission.NULL);
    21         xstream.addPermission(PrimitiveTypePermission.PRIMITIVES);
    22         // 允许业务类
    23         xstream.allowTypeHierarchy(People.class);
    24         People people = (People) xstream.fromXML(new File("/tmp/people.xml"));
    25         System.out.println(people.name); //打印 test
    26 
    27     }
    28 }
  • 相关阅读:
    Linux用户管理
    chattr&lsattr
    repo 回退当前分支下所有仓库到指定日期前的最新代码版本
    grep
    awk
    vscode sftp插件的使用
    程序的链接
    ZJOI2015 诸神眷顾的幻想乡
    BZOJ3756 Pty的字符串
    HDU1506 Largest Rectangle in a Histogram
  • 原文地址:https://www.cnblogs.com/handt/p/14780473.html
Copyright © 2020-2023  润新知