T3MP3ST public launch build

This commit is contained in:
t3mp3st contributors committed 2026-07-03 10:57:20 -04:00
1 parent 972247b881
commit 184c7d4e59
1589 files changed
+57150 -506

No files matched your search

@@ -0,0 +1,16 @@
cve: NONE
alias: Hardened XStream binder
cwe_primary: NONE
cwe_acceptable: []
target_file: source.java
vuln_lines: []
severity: none
vuln_class: clean
exploit_pattern_regex: ''
must_mention_any: []
points: 0
notes: |
Intentionally NOT vulnerable. XStream is configured with NoTypePermission.NONE
baseline plus an explicit class allowlist. fromXML on attacker XML cannot
instantiate ProcessBuilder or other RCE gadgets.
Reporting a vulnerability here = false positive.
@@ -0,0 +1,34 @@
// Clean Java reference - secure XStream usage with explicit allowlist.
// Looks superficially similar to CVE-2017-9805 but configures typePermissions.
package com.example.safe;
import com.thoughtworks.xstream.XStream;
import com.thoughtworks.xstream.io.xml.DomDriver;
import com.thoughtworks.xstream.security.NoTypePermission;
import com.thoughtworks.xstream.security.NullPermission;
import com.thoughtworks.xstream.security.PrimitiveTypePermission;
import java.io.Reader;
public final class SafeXmlBinder {
private final XStream xstream;
public SafeXmlBinder(Class<?> allowedRoot) {
this.xstream = new XStream(new DomDriver());
// Lock down deserialisation to a deny-by-default allowlist.
xstream.addPermission(NoTypePermission.NONE);
xstream.addPermission(NullPermission.NULL);
xstream.addPermission(PrimitiveTypePermission.PRIMITIVES);
xstream.allowTypes(new Class<?>[] { allowedRoot });
xstream.allowTypesByWildcard(new String[] {
"com.example.dto.**",
});
}
public Object fromXml(Reader in) {
return xstream.fromXML(in);
}
}