logo

Database

Java Reflectpermission Suppress Access Checks

Description

Detects dangerous combinations of Java security permissions that could lead to security bypass. The combination of ReflectPermission("suppressAccessChecks") or RuntimePermission("createClassLoader") can allow attackers to bypass Java's security manager and access controls, potentially leading to unauthorized access to restricted functionality.

Weakness:

159 - Excessive privileges

Category: Access Subversion

Detection Strategy

    Check if code imports java.security.RuntimePermission or java.lang.reflect.ReflectPermission

    Look for ReflectPermission instantiation with 'suppressAccessChecks' parameter

    Look for RuntimePermission instantiation with 'createClassLoader' parameter

    Report a security issue when either of these dangerous permission combinations is found

Vulnerable code example

import java.security.PermissionCollection;
import java.security.Permissions;
import java.security.RuntimePermission;
import java.lang.reflect.ReflectPermission;

public class VulnerablePermissions {
    public static void main(String[] args) {
        PermissionCollection permissions = new Permissions();...

✅ Secure code example

import java.security.PermissionCollection;
import java.security.Permissions;
import java.security.RuntimePermission;

public class SecurePermissions {
    public static void main(String[] args) {
        PermissionCollection permissions = new Permissions();
        ...