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 }

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM