package fuzion24.device.vulnerability.vulnerabilities.system; import android.content.Context; import android.os.storage.StorageManager; import java.lang.reflect.Method; import java.util.ArrayList; import java.util.List; import fuzion24.device.vulnerability.util.CPUArch; import fuzion24.device.vulnerability.vulnerabilities.VulnerabilityTest; import fuzion24.device.vulnerability.vulnerabilities.helper.SystemUtils; public class ZergRush implements VulnerabilityTest { @Override public String getCVEorID() { return "CVE-2011-3874"; } @Override public List<CPUArch> getSupportedArchitectures() { ArrayList<CPUArch> archs = new ArrayList<>(); archs.add(CPUArch.ALL); return archs; } @Override public boolean isVulnerable(Context context) throws Exception { int pid = SystemUtils.ProcfindPidFor("/system/bin/vold"); StorageManager sm = (StorageManager) context.getSystemService(Context.STORAGE_SERVICE); Method getObbPath = sm.getClass().getMethod("getMountedObbPath", String.class); getObbPath.invoke(sm, "AAAA AAAA AAAA AAAA " + "AAAA AAAA AAAA AAAA " + "AAAA AAAA AAAA AAAA " + "AAAA AAAA AAAA AAAA" + "AAAA AAAA AAAA AAAA" + "AAAA AAAA AAAA AAAA" + "AAAA AAAA AAAA AAAA" + "AAAA AAAA AAAA AAAA" + "AAAA AAAA AAAA AAAA" + "AAAA AAAA AAAA AAAA" + "AAAA AAAA AAAA AAAA"); Thread.sleep(2000); // give vold some time to crash return false; } }