Bug 1366307

Summary: [pcsd] Badly designed usage of HTML ID attributes may cause unexpected behavior with certain resource names
Product: Red Hat Enterprise Linux 7 Reporter: Radek Steiger <rsteiger>
Component: pcsAssignee: Ondrej Mular <omular>
Status: CLOSED ERRATA QA Contact: cluster-qe <cluster-qe>
Severity: unspecified Docs Contact:
Priority: medium    
Version: 7.3CC: cfeist, cluster-maint, idevat, omular, tojeline
Target Milestone: rc   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: pcs-0.9.152-7.el7 Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2016-11-03 20:59:35 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description Radek Steiger 2016-08-11 14:46:20 UTC
> Description of problem:

ID attribute of HTML elements that represent each resource in the GUI resource list is generated dynamically according to the resource name, but instead of using a deterministic pre/post-fix or a completely random and therefore unique ID it only takes the corresponding resource's name and uses it as an ID. This enables the user to create such a resource which name used as an ID would collide with some other ID that already exists inside the GUI page, possibly causing an unexpected behavior.

The most simple reproducer is to create a resource called 'test'. As the ID 'test' is already reserved by parts of the javascript framework the result of this particular case is making the resource non-highlightable within the resource list.

Another one is to use browser's developer tools and xpath to search for particular ID, i.e. run $x("//*[@id='test']") in Chrome's console to verify that ID is present more than once.


> Version-Release number of selected component (if applicable):

pcs-0.9.152-6.el7.x86_64


> Steps to Reproduce:

1. Create a resource called 'test'
2. Try to highlight the resource inside resource list


> Actual results:

Item cannot be highlighted. Also, an xpath search would return more than one instance of the correspondent ID.


> Expected results:

Item can be highlighted. Also, an xpath search would return just one instance of the correspondent ID.

Comment 1 Ondrej Mular 2016-08-15 13:33:12 UTC
proposed fix:
https://github.com/ClusterLabs/pcs/commit/f1e6da86be122fd2177f70422b3dcb8acd30

Test:
Create resource called 'test'.
In web UI select resource 'test'. It is highlighted.

Comment 2 Ivan Devat 2016-08-19 12:32:38 UTC
Setup:
Create resource called 'test'.


Before Fix:
[vm-rhel72-1 ~] $ rpm -q pcs
pcs-0.9.152-6.el7.x86_64
In web UI select resource 'test'. It is not highlighted.


After Fix:
[vm-rhel72-1 ~] $ rpm -q pcs
pcs-0.9.152-7.el7.x86_64
In web UI select resource 'test'. It is highlighted.

Comment 6 errata-xmlrpc 2016-11-03 20:59:35 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://rhn.redhat.com/errata/RHSA-2016-2596.html