[jira] [Created] (IGNITE-13300) Ignite sandbox vulnerability allows to execute user code in privileged proxy

classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|

[jira] [Created] (IGNITE-13300) Ignite sandbox vulnerability allows to execute user code in privileged proxy

Anton Vinogradov (Jira)
Aleksey Plekhanov created IGNITE-13300:
------------------------------------------

             Summary: Ignite sandbox vulnerability allows to execute user code in privileged proxy
                 Key: IGNITE-13300
                 URL: https://issues.apache.org/jira/browse/IGNITE-13300
             Project: Ignite
          Issue Type: Bug
          Components: security
    Affects Versions: 2.9
            Reporter: Aleksey Plekhanov
            Assignee: Aleksey Plekhanov


Ignite sandbox returns a privileged proxy for Ignite and some other system interfaces. If the user implements one of these interfaces and gets via privileged proxy an instance of implemented class, privileged proxy for user class will be returned.
Reproducer:

{code:java}
    public void testPrivelegedUserObject() throws Exception {
        grid(CLNT_FORBIDDEN_WRITE_PROP).getOrCreateCache(DEFAULT_CACHE_NAME).put(0, new TestIterator<>());

        runForbiddenOperation(() -> grid(CLNT_FORBIDDEN_WRITE_PROP).compute().run(() -> {
            GridIterator<?> it = (GridIterator<?>)Ignition.localIgnite().cache(DEFAULT_CACHE_NAME).get(0);

            it.iterator();
        }), AccessControlException.class);
    }

    public static class TestIterator<T> extends GridIterableAdapter<T> {
        public TestIterator() {
            super(Collections.emptyIterator());
        }

        @Override public GridIterator<T> iterator() {
            controlAction();

            return super.iterator();
        }
    }
{code}




--
This message was sent by Atlassian Jira
(v8.3.4#803005)