[
https://issues.jboss.org/browse/WFCORE-13?page=com.atlassian.jira.plugin....
]
Brian Stansberry edited comment on WFCORE-13 at 5/6/17 12:47 PM:
-----------------------------------------------------------------
We now prevent end user access to EntryType.PRIVATE operations. Note the behavior of the
'describe' op is unchanged, as the existence of that op may have been communicated
to users and I don't see an urgent need to possibly break compatibility by making it
inaccessible. OTOH I don't see any need to make it accessible over JMX either. We can
either make it fully public or completely private at some later point, or just leave it as
is. I didn't want that particular op to be a primary focus here; I was more concerned
with disabling access to private ops that would be more problematic if invoked by users.
was (Author: brian.stansberry):
We now prevent end user access to EntryType.PRIVATE operations. Note the behavior of the
'describe' op is unchanged, as that existence of that op may have been
communicated to users and I don't see an urgent need to possibly break compatibility
by making it inaccessible. OTOH I don't see any need to make it accessible over JMX
either. We can either make it fully public or completely private at some later point, or
just leave it as is. I didn't want that particular op to be a primary focus here; I
was more concerned with disabling access to private ops that would be more problematic if
invoked by users.
End users can call non-published management API operations
----------------------------------------------------------
Key: WFCORE-13
URL:
https://issues.jboss.org/browse/WFCORE-13
Project: WildFly Core
Issue Type: Bug
Components: Domain Management
Reporter: Ladislav Thon
Assignee: Brian Stansberry
Labels: EAP
Fix For: 3.0.0.Beta19
It's not possible to call "non-published" operations (those that are not
visible in the resource tree, e.g. {{describe}}) via JMX, while it's entirely possible
to call them via CLI (e.g. {{/subsystem=security:describe}}) and other management
interfaces.
The problem lies in the fact that {{ModelControllerMBeanHelper.invoke}} method checks
{{if (!accessControl.isExecutableOperation(operationName))}} and the
{{isExecutableOperation}} method assumes that the operation will be visible in the
resource tree. In fact, there is a comment stating _should not happen_, but now we know
that it indeed _can_ happen.
What's more, it gives a misleading error message. The {{isExecutableOperation}}
returns {{false}} for unknown operations, which results in {{Not authorized to invoke
operation}} message. Which is wrong in two different ways simultaneously: 1. the problem
isn't authorization, but the fact that the operation can't be found; 2. the user
(e.g. in the {{SuperUser}} role) _is_ authorized.
I'm considering this low priority, because 1. JMX is likely to be very rarely used to
access the management interface, 2. hiding information isn't nearly as important as
leaking them, 3. non-published operations aren't nearly as important as the published
ones. It's worth a JIRA nevertheless.
--
This message was sent by Atlassian JIRA
(v7.2.3#72005)