Well, it is a security risk after all.
Here is the thing, the url was like:
http://dev2.zurmo.com/demos/stable/app/index.php/designer/default/modulesMenu?moduleClassName=ContactsModule
So i thought, why do they use ?moduleClassName=ContactsModule, do they instantiate this class based on the $_GET variable (which is wrong as you can see)?
Then to verify my idea, i accessed http://dev2.zurmo.com/demos/stable/app/index.php/designer/default/modulesMenu?moduleClassName=ContactsModulex just added an x to the class name to trigger an error, and i got this error:
include(ContactsModulex.php) [<a href='function.include'>function.include</a>]: failed to open stream: No such file or directory
So of course the next thought was, can i include other files from the server if i change the ?moduleClassName=ContactsModule part of the url ? And yes this is possible as you can see, in this link:
http://dev2.zurmo.com/demos/stable/app/index.php/designer/default/modulesMenu?moduleClassName=../../../index
The idea here is that directory traversal is possible, so a bad intended user could use this to instantiate what class he wants or to include any file from the server.
Anyway, i donāt know your app at all, i just spent about 5 minutes in the backed of your app and found this, you should find a fix for it as soon as possible.
My suggestion would be to allow only a-zA-z chars for $_GET[āmoduleClassNameā] and also to allow the reading from a single directory and check with is_file(āpath/to/my-dir/ā.$_GET[āmoduleClassNameā]) before instantiate that class, but again, i have no idea what you do in your backend so these suggestions might not help at all.