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

Knut Anders Hatlen updated DERBY-6631:
--------------------------------------

    Attachment: d6631-1b-setThreadPriority.diff

Attaching [^d6631-1b-setThreadPriority.diff] which adjusts the approach in the 
1a patch. The call to Thread.setPriority() is moved out of FileMonitor, since 
one doesn't really need the monitor to set the priority. The only thing the 
monitor was needed for, was to check if the thread was originally created by 
FileMonitor's getDaemonThread() method. A new method (isDaemonThread(Thread)) 
is added to provide that functionality. That method does not perform any 
privileged operations, so it should be safe to keep it as a public method.

> FileMonitor can be used to elevate an application's privileges
> --------------------------------------------------------------
>
>                 Key: DERBY-6631
>                 URL: https://issues.apache.org/jira/browse/DERBY-6631
>             Project: Derby
>          Issue Type: Bug
>          Components: Services
>    Affects Versions: 10.11.1.1
>            Reporter: Rick Hillegas
>         Attachments: d6631-1a-setThreadPriority.diff, 
> d6631-1b-setThreadPriority.diff
>
>
> Various vulnerabilities in FileMonitor allow applications to perform 
> security-sensitive operations with the elevated privileges granted to Derby:
> getDaemonThread() - The application can call this method in order to create 
> threads, using Derby's elevated privileges.
> getJVMProperty() -  The application can call this in order to read system 
> properties using Derby's elevated privileges.
> setThreadPriority() - The application can call this method to change the 
> priority of a daemon thread it has created. This call will execute with 
> Derby's elevated privileges.



--
This message was sent by Atlassian JIRA
(v6.2#6252)

Reply via email to