[jboss-jira] [JBoss JIRA] (WFCORE-1266) Incorreclty bypass the SecurityManager and call AccessControl.checkPermission() directly
Jason Shepherd (JIRA)
issues at jboss.org
Mon Jan 4 20:00:00 EST 2016
[ https://issues.jboss.org/browse/WFCORE-1266?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Jason Shepherd updated WFCORE-1266:
-----------------------------------
Steps to Reproduce:
1. Recompile jboss-modules after removing AllPermission from getAllPermissions.
{code}
Jasons-MacBook-Pro:jboss-modules jasonshepherd$ git branch
* (HEAD detached at 1.4.4.Final)
master
Jasons-MacBook-Pro:jboss-modules jasonshepherd$ git diff src/main/java/org/jboss/modules/ModulesPolicy.java
diff --git a/src/main/java/org/jboss/modules/ModulesPolicy.java b/src/main/java/org/jboss/modules/ModulesPolicy.java
index 1b8da50..0db9345 100644
--- a/src/main/java/org/jboss/modules/ModulesPolicy.java
+++ b/src/main/java/org/jboss/modules/ModulesPolicy.java
@@ -39,7 +39,7 @@ final class ModulesPolicy extends Policy {
private static Permissions getAllPermission() {
final Permissions permissions = new Permissions();
- permissions.add(ALL_PERMISSION);
+ //permissions.add(ALL_PERMISSION);
return permissions;
}
{code}
2. Remove the Throw clauses from WildflySecurityManager
{code}
Jasons-MacBook-Pro:wildfly-elytron jasonshepherd$ git branch
* (HEAD detached at 1.0.2.Final)
master
Jasons-MacBook-Pro:wildfly-elytron jasonshepherd$ git diff
diff --git a/src/main/java/org/wildfly/security/manager/WildFlySecurityManager.java b/src/main/java/org/wildfly/security/manager/WildFlySecurityManager.java
index 379c61f..11dddff 100644
--- a/src/main/java/org/wildfly/security/manager/WildFlySecurityManager.java
+++ b/src/main/java/org/wildfly/security/manager/WildFlySecurityManager.java
@@ -270,7 +270,7 @@ public final class WildFlySecurityManager extends SecurityManager {
} else {
access.accessCheckFailed(perm, codeSource, classLoader, Arrays.toString(principals));
}
- throw access.accessControlException(perm, perm, codeSource, classLoader);
+ //throw access.accessControlException(perm, perm, codeSource, classLoader);
}
}
} finally {
@@ -302,7 +302,7 @@ public final class WildFlySecurityManager extends SecurityManager {
} else {
access.accessCheckFailed(perm, codeSource, classLoader, Arrays.toString(principals));
}
- throw access.accessControlException(perm, perm, codeSource, classLoader);
+ //throw access.accessControlException(perm, perm, codeSource, classLoader);
}
}
} finally {
@@ -1061,7 +1061,7 @@ public final class WildFlySecurityManager extends SecurityManager {
return;
}
access.accessCheckFailed(permission, protectionDomain.getCodeSource(), classLoader);
- throw access.accessControlException(permission, permission, protectionDomain.getCodeSource(), classLoader);
+ //throw access.accessControlException(permission, permission, protectionDomain.getCodeSource(), classLoader);
}
private static void checkEnvPropertyReadPermission(Class<?> clazz, String propertyName) {
@@ -1082,7 +1082,7 @@ public final class WildFlySecurityManager extends SecurityManager {
return;
}
access.accessCheckFailed(permission, protectionDomain.getCodeSource(), classLoader);
- throw access.accessControlException(permission, permission, protectionDomain.getCodeSource(), classLoader);
+ //throw access.accessControlException(permission, permission, protectionDomain.getCodeSource(), classLoader);
}
private static void checkPropertyWritePermission(Class<?> clazz, String propertyName) {
@@ -1103,7 +1103,7 @@ public final class WildFlySecurityManager extends SecurityManager {
return;
}
access.accessCheckFailed(permission, protectionDomain.getCodeSource(), classLoader);
- throw access.accessControlException(permission, permission, protectionDomain.getCodeSource(), classLoader);
+ //throw access.accessControlException(permission, permission, protectionDomain.getCodeSource(), classLoader);
}
private static void checkPDPermission(Class<?> clazz, Permission permission) {
@@ -1120,7 +1120,7 @@ public final class WildFlySecurityManager extends SecurityManager {
return;
}
access.accessCheckFailed(permission, protectionDomain.getCodeSource(), classLoader);
- throw access.accessControlException(permission, permission, protectionDomain.getCodeSource(), classLoader);
+ //throw access.accessControlException(permission, permission, protectionDomain.getCodeSource(), classLoader);
}
/**
{code}
3. Start Wildfly
was:
# recompile jboss-modules after removing AllPermission from getAllPermissions.
{code}
Jasons-MacBook-Pro:jboss-modules jasonshepherd$ git branch
* (HEAD detached at 1.4.4.Final)
master
{code}
{code}
Jasons-MacBook-Pro:jboss-modules jasonshepherd$ git diff src/main/java/org/jboss/modules/ModulesPolicy.java
diff --git a/src/main/java/org/jboss/modules/ModulesPolicy.java b/src/main/java/org/jboss/modules/ModulesPolicy.java
index 1b8da50..0db9345 100644
--- a/src/main/java/org/jboss/modules/ModulesPolicy.java
+++ b/src/main/java/org/jboss/modules/ModulesPolicy.java
@@ -39,7 +39,7 @@ final class ModulesPolicy extends Policy {
private static Permissions getAllPermission() {
final Permissions permissions = new Permissions();
- permissions.add(ALL_PERMISSION);
+ //permissions.add(ALL_PERMISSION);
return permissions;
}
{code}
# Remove the Throw clauses from WildflySecurityManager
{code}
Jasons-MacBook-Pro:wildfly-elytron jasonshepherd$ git branch
* (HEAD detached at 1.0.2.Final)
master
{code}
{code}
Jasons-MacBook-Pro:wildfly-elytron jasonshepherd$ git diff
diff --git a/src/main/java/org/wildfly/security/manager/WildFlySecurityManager.java b/src/main/java/org/wildfly/security/manager/WildFlySecurityManager.java
index 379c61f..11dddff 100644
--- a/src/main/java/org/wildfly/security/manager/WildFlySecurityManager.java
+++ b/src/main/java/org/wildfly/security/manager/WildFlySecurityManager.java
@@ -270,7 +270,7 @@ public final class WildFlySecurityManager extends SecurityManager {
} else {
access.accessCheckFailed(perm, codeSource, classLoader, Arrays.toString(principals));
}
- throw access.accessControlException(perm, perm, codeSource, classLoader);
+ //throw access.accessControlException(perm, perm, codeSource, classLoader);
}
}
} finally {
@@ -302,7 +302,7 @@ public final class WildFlySecurityManager extends SecurityManager {
} else {
access.accessCheckFailed(perm, codeSource, classLoader, Arrays.toString(principals));
}
- throw access.accessControlException(perm, perm, codeSource, classLoader);
+ //throw access.accessControlException(perm, perm, codeSource, classLoader);
}
}
} finally {
@@ -1061,7 +1061,7 @@ public final class WildFlySecurityManager extends SecurityManager {
return;
}
access.accessCheckFailed(permission, protectionDomain.getCodeSource(), classLoader);
- throw access.accessControlException(permission, permission, protectionDomain.getCodeSource(), classLoader);
+ //throw access.accessControlException(permission, permission, protectionDomain.getCodeSource(), classLoader);
}
private static void checkEnvPropertyReadPermission(Class<?> clazz, String propertyName) {
@@ -1082,7 +1082,7 @@ public final class WildFlySecurityManager extends SecurityManager {
return;
}
access.accessCheckFailed(permission, protectionDomain.getCodeSource(), classLoader);
- throw access.accessControlException(permission, permission, protectionDomain.getCodeSource(), classLoader);
+ //throw access.accessControlException(permission, permission, protectionDomain.getCodeSource(), classLoader);
}
private static void checkPropertyWritePermission(Class<?> clazz, String propertyName) {
@@ -1103,7 +1103,7 @@ public final class WildFlySecurityManager extends SecurityManager {
return;
}
access.accessCheckFailed(permission, protectionDomain.getCodeSource(), classLoader);
- throw access.accessControlException(permission, permission, protectionDomain.getCodeSource(), classLoader);
+ //throw access.accessControlException(permission, permission, protectionDomain.getCodeSource(), classLoader);
}
private static void checkPDPermission(Class<?> clazz, Permission permission) {
@@ -1120,7 +1120,7 @@ public final class WildFlySecurityManager extends SecurityManager {
return;
}
access.accessCheckFailed(permission, protectionDomain.getCodeSource(), classLoader);
- throw access.accessControlException(permission, permission, protectionDomain.getCodeSource(), classLoader);
+ //throw access.accessControlException(permission, permission, protectionDomain.getCodeSource(), classLoader);
}
/**
{code}
#Start Wildfly
> Incorreclty bypass the SecurityManager and call AccessControl.checkPermission() directly
> ----------------------------------------------------------------------------------------
>
> Key: WFCORE-1266
> URL: https://issues.jboss.org/browse/WFCORE-1266
> Project: WildFly Core
> Issue Type: Bug
> Components: Server
> Affects Versions: 2.0.5.Final
> Reporter: Jason Shepherd
> Assignee: Jason Shepherd
>
> If we modify jboss-modules to remove the allPermissions by default, then change the WildflySecurityManager to avoid throwing exceptions, we get this error when starting Wildfly:
> {code}
> org.jboss.msc.service.StartException in service jboss.as: Failed to start service
> at org.jboss.msc.service.ServiceControllerImpl$StartTask.run(ServiceControllerImpl.java:1904)
> at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
> at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
> at java.lang.Thread.run(Thread.java:745)
> Caused by: java.security.AccessControlException: access denied ("org.jboss.as.server.security.ServerPermission" "setCurrentServiceContainer")
> at java.security.AccessControlContext.checkPermission(AccessControlContext.java:472)
> at java.security.AccessController.checkPermission(AccessController.java:884)
> at org.jboss.as.server.CurrentServiceContainer.checkPermission(CurrentServiceContainer.java:63)
> at org.jboss.as.server.CurrentServiceContainer.setServiceContainer(CurrentServiceContainer.java:56)
> at org.jboss.as.server.ApplicationServerService.start(ApplicationServerService.java:137)
> at org.jboss.msc.service.ServiceControllerImpl$StartTask.startService(ServiceControllerImpl.java:1948)
> at org.jboss.msc.service.ServiceControllerImpl$StartTask.run(ServiceControllerImpl.java:1881)
> ... 3 more
> {code}
--
This message was sent by Atlassian JIRA
(v6.4.11#64026)
More information about the jboss-jira
mailing list