Derby's class loading order can be used to subvert the security of user-defined 
routines and even to corrupt data
-----------------------------------------------------------------------------------------------------------------

                 Key: DERBY-5225
                 URL: https://issues.apache.org/jira/browse/DERBY-5225
             Project: Derby
          Issue Type: Bug
          Components: SQL
    Affects Versions: 10.9.0.0
            Reporter: Rick Hillegas


Several Derby behaviors are vulnerable to the fact that in an embedded 
application, you can override the database-specific classpath with classes that 
appear in the user classpath (the classpath specified on the VM boot command). 
By putting your malicious code on the VM classpath, your overrides of 
procedures and functions will run instead of the versions stored inside jar 
files in the database (the ones wired into derby.database.classpath). This 
behavior of derby.database.classpath is described here: 
http://db.apache.org/derby/docs/10.8/devguide/devguide-single.html#cdevdeploy30736

Vulnerable behaviors include:

1) DBO-owned routines which run with definer's rights. If you override one of 
these procedures, you can run any code you want with the privileges of the DBO.

2) CHECK constraints. If a CHECK constraint invokes a user-defined function, 
you can override the function and subvert the intention of the constraint.

3) Generated columns. If a generated column invokes a user-defined function, 
you can subvert the value that is generated.

All of these cases can give rise to data which does not conform to the 
application designer's consistency rules. That is, corrupt data.


--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira

Reply via email to