package fuzion24.device.vulnerability.vulnerabilities.kernel; import android.content.Context; import java.util.ArrayList; import java.util.List; import fuzion24.device.vulnerability.util.CPUArch; import fuzion24.device.vulnerability.vulnerabilities.VulnerabilityTest; public class CVE_2013_6282 implements VulnerabilityTest { static { System.loadLibrary("CVE-2013-6282"); } @Override public List<CPUArch> getSupportedArchitectures() { ArrayList<CPUArch> archs = new ArrayList<>(); archs.add(CPUArch.ARM); archs.add(CPUArch.ARM7); archs.add(CPUArch.ARM8); return archs; } @Override public String getCVEorID() { return "CVE-2013-6282"; } private native int checkGetPutUser(); @Override public boolean isVulnerable(Context context) throws Exception { int checkVal = checkGetPutUser(); //TODO: If we declare a different type of socket do we still need internet permission? if(checkVal == 0) { return false; }else if(checkVal == 1) { return true; }else { //TODO: grab more information about failure, errno and error string throw new Exception("Error running test"); } } }