db-derby-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Rick Hillegas (JIRA)" <j...@apache.org>
Subject [jira] [Updated] (DERBY-5225) Derby's class loading order can be used to subvert the security of user-defined routines and even to corrupt data
Date Thu, 12 May 2011 12:57:47 GMT

     [ https://issues.apache.org/jira/browse/DERBY-5225?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel

Rick Hillegas updated DERBY-5225:

    Bug behavior facts: [Security]  (was: [Security, Data corruption])

Unticking the "Data corruption" box. Any security vulnerability can be exploited to corrupt
data. This is similar to the way that an INSERT INTO ... SELECT can be used to turn any wrong-results
query into a data corruption. I'd like to reserve "Data corruption" for situations where it
conveys more meaning.

> 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:
>            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

View raw message