Red Hat Satellite engineering is moving the tracking of its product development work on Satellite to Red Hat Jira (issues.redhat.com). If you're a Red Hat customer, please continue to file support cases via the Red Hat customer portal. If you're not, please head to the "Satellite project" in Red Hat Jira and file new tickets here. Individual Bugzilla bugs will be migrated starting at the end of May. If you cannot log in to RH Jira, please consult article #7032570. That failing, please send an e-mail to the RH Jira admins at rh-issues@redhat.com to troubleshoot your issue as a user management inquiry. The email creates a ServiceNow ticket with Red Hat. Individual Bugzilla bugs that are migrated will be moved to status "CLOSED", resolution "MIGRATED", and set with "MigratedToJIRA" in "Keywords". The link to the successor Jira issue will be found under "Links", have a little "two-footprint" icon next to it, and direct you to the "Satellite project" in Red Hat Jira (issue links are of type "https://issues.redhat.com/browse/SAT-XXXX", where "X" is a digit). This same link will be available in a blue banner at the top of the page informing you that that bug has been migrated.
Bug 1469599 - Safe mode rendering does not correctly prevent using symbol to proc calls
Summary: Safe mode rendering does not correctly prevent using symbol to proc calls
Keywords:
Status: CLOSED ERRATA
Alias: None
Product: Red Hat Satellite
Classification: Red Hat
Component: Security
Version: 6.2.0
Hardware: Unspecified
OS: Unspecified
high
high
Target Milestone: Unspecified
Assignee: Tomer Brisker
QA Contact: Kedar Bidarkar
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2017-07-11 14:22 UTC by Tomer Brisker
Modified: 2019-09-26 14:37 UTC (History)
7 users (show)

Fixed In Version: foreman-1.15.3
Doc Type: If docs needed, set a value
Doc Text:
Clone Of:
Environment:
Last Closed: 2018-02-21 16:54:17 UTC
Target Upstream Version:
Embargoed:


Attachments (Terms of Use)


Links
System ID Private Priority Status Summary Last Updated
Foreman Issue Tracker 20271 0 High Closed Safe mode rendering does not correctly prevent using symbol to proc calls 2020-06-09 18:07:59 UTC
Foreman Issue Tracker 20836 0 High Closed Safe mode rendering does not correctly prevent using symbol to proc calls 2020-06-09 18:07:59 UTC

Description Tomer Brisker 2017-07-11 14:22:33 UTC
Using methods such as `.each`, a user can pass as an argument a symbol to be called, for example `.each(&:delete)`. 
This allows execution of commands that should be blocked by the jail.
A fix proposal in the safemode gem has been suggested: https://github.com/svenfuchs/safemode/pull/23
Once it is merged we should update our version of the gem to the latest one.

Comment 1 Tomer Brisker 2017-07-11 14:22:39 UTC
Created from redmine issue http://projects.theforeman.org/issues/20271

Comment 3 Satellite Program 2017-07-11 16:10:34 UTC
Upstream bug assigned to tbrisker

Comment 4 Satellite Program 2017-07-11 16:10:37 UTC
Upstream bug assigned to tbrisker

Comment 5 Satellite Program 2017-07-11 18:10:37 UTC
Moving this bug to POST for triage into Satellite 6 since the upstream issue http://projects.theforeman.org/issues/20271 has been resolved.

Comment 6 Kedar Bidarkar 2018-01-29 13:43:01 UTC
Please suggest how exactly should I be testing this?
 It appears that I need to test the safe mode rendering of provisioning templates, but not sure what exactly needs/should be tested here.

Comment 7 Tomer Brisker 2018-01-29 13:54:57 UTC
First, ensure that `safemode rendering` under settings->provisioning is set to true.
Check that none of the pre-seeded templates (provision, partition table, or job) contains symbol-to-proc syntax. You can do this by searching for the string "(&:" including the quotes. There should be no matching results.

Next, create a template that contains something like:

<%= @host.interfaces.each(&:id) %>

Then click on the "Preview" button. You should see an error message stating something like "Safemode doesn't allow to access 'block_pass' on &:id".

Comment 8 Kedar Bidarkar 2018-01-30 09:19:28 UTC
Ensured  "Safemode rendering" set to True.

Checked most of the pres-seed templates and they do not contain "symbol-to-proc" syntax.

Next, cloned and added "<%= @host.interfaces.each(&:id) %>" to a provisioning template.

Upon clicking the "Preview" Button, see an error message with the below message.


"Warning! There was an error rendering the Satellite Kickstart Default Cloned template: Safemode doesn't allow to access 'block_pass' on &:id"

VERIFIED with Sat6.3.0-snap32.0

Comment 9 Satellite Program 2018-02-21 16:54:17 UTC
Since the problem described in this bug report should be resolved in a recent advisory, it has been closed with a resolution of ERRATA.
> 
> For information on the advisory, and where to find the updated files, follow the link below.
> 
> If the solution does not work for you, open a new bug report.
> 
> https://access.redhat.com/errata/RHSA-2018:0336


Note You need to log in before you can comment on or make changes to this bug.