Fedora Account System
Red Hat Associate
Red Hat Customer
The reported issue is a valid object-level authorization bypass in Foreman's template revision handling. TemplatesController#revision (app/controllers/templates_controller.rb) loads the requested audit with Audit.find(params[:version]). The corresponding API controllers use Audit.authorized(:view_audit_logs).find(params[:version]). The UI action is a collection endpoint and is not subject to find_resource, so authorization checks only whether the user may invoke the action (for example view_ptables). It does not authorize the specific audit object supplied by the user. An authenticated, low-privileged user with a template permission such as view_ptables, scoped to one organization or location, can therefore retrieve a historical template revision from another organization or location by supplying its audit identifier. This is possible without view_audit_logs and without access to the template through the normal template API. The same revision action is inherited by partition table, provisioning template, report template, and remote execution job template controllers. The exposed data is the historical template content, which may include sensitive configuration, credentials, or other secrets depending on customer configuration. This unrestricted lookup has been present since the introduction of STI templates.