Impact
Filter expressions provided to the various /v1/objects could access variables or objects that would otherwise be inaccessible for the user. This can allow authenticated API users to learn information that should be hidden from them.
Patches
A fix is included in the following Icinga 2 versions: 2.15.1, 2.14.7, and 2.13.13.
In order to fix this, the following changes for filter expressions supplied in API request:
- Global variables can only be used in filter expressions if the user is allowed to see them according to the
variables permission (as used by /v1/variables).
- The
get_object() function now only returns an object if the user is allowed to see it according tot he corresponding objects/query/<type> permission (as used by /v1/objects).
- The following function can no longer be used in API filter expressions:
get_objects(), get_template(), get_templates(), getenv().
Workarounds
The weakness can only be exploited by authenticated API users, thus API access can be limited to trusted users only. There is no practical workaround to prevent authenticated users from exploiting it because it would require removing permissions from that user that grant access to endpoints that accept filter expressions (which includes /v1/actions and /v1/objects).
References
Impact
Filter expressions provided to the various
/v1/objectscould access variables or objects that would otherwise be inaccessible for the user. This can allow authenticated API users to learn information that should be hidden from them.Patches
A fix is included in the following Icinga 2 versions: 2.15.1, 2.14.7, and 2.13.13.
In order to fix this, the following changes for filter expressions supplied in API request:
variablespermission (as used by/v1/variables).get_object()function now only returns an object if the user is allowed to see it according tot he correspondingobjects/query/<type>permission (as used by/v1/objects).get_objects(),get_template(),get_templates(),getenv().Workarounds
The weakness can only be exploited by authenticated API users, thus API access can be limited to trusted users only. There is no practical workaround to prevent authenticated users from exploiting it because it would require removing permissions from that user that grant access to endpoints that accept filter expressions (which includes
/v1/actionsand/v1/objects).References