Details
-
Bug
-
Status: Closed
-
Major
-
Resolution: Fixed
-
10.11.1.1
-
Normal
-
Release Note Needed
-
Security
Description
By calling ContextService.getContextOrNull() (and its relatives), application code can get its hands on all sorts of internal Derby contexts, factories, and managers. This allows application code to bypass SQL authorization checks and perform sensitive or data-corrupting actions.
For instance, right now an application can use this method to get its hands on the language connection context. From the lcc, the application can get its hands on the data dictionary and the execution transaction. Armed with those objects, the application can bypass authorization checks and create schema objects, users, and permissions.
Only Derby code should be able to call this powerful method.
Attachments
Attachments
Issue Links
- is related to
-
DERBY-6630 Applications can use JCECipherFactory to elevate their privileges to those granted to Derby
- Closed
-
DERBY-6631 FileMonitor can be used to elevate an application's privileges
- Closed
-
DERBY-6632 Applications may be able to use StorageFactoryService to delete Derby databases and overwrite service.properties.
- Closed
-
DERBY-6641 Application code may be able to use the public LogToFile class to interfere with Derby's operation.
- Closed
-
DERBY-6717 Policies with multiple SystemPermissions are not handled well
- Closed
-
DERBY-6744 Update the documentation of security policy files to include the new usederbyinternals SystemPermission
- Closed
-
DERBY-6751 Prevent user code from getting the LanguageConnectionContext from an EmbedConnection
- Closed
- relates to
-
DERBY-6616 User procedures can call system procedures, circumventing SQL authorization.
- Closed
-
DERBY-6741 User code can get the ContextManager from an EmbedConnection
- Closed