epicosy (5)

Last Login: September 30, 2024
Assessments
2
Score
5

epicosy's Latest (2) Contributions

Sort by:
Filter by:
1
Ratings
  • Attacker Value
    Very Low
  • Exploitability
    High
Technical Analysis

Description

Missing Sanitization of $item->getGroup() (lines 864 and 1269) in fieldcollectionTreeAction/objectbrickTreeAction functions in bundles/AdminBundle/Controller/Admin/DataObject/ClassController.php allows Admin User to perform Source Code Injection through Stored Group Fields (in Object Bricks/Field Collection under settings module) resulting in Information Exposure (cookie theft).

Analysis

What makes this vulnerability stored is that the Group fields (for the listings under Object Bricks or Field Collection in the Settings Module) are saved to the database in the objectbrickUpdateAction function (serves the route /objectbrick-update for the methods {“PUT”, “POST”}).

Example of the PUT request: https://demo.pimcore.com/admin/class/objectbrick-update

That means the patch only mitigates the XSS in the objectbrickTreeAction function (serves the route /objectbrick-tree for the methods={“GET”, “POST”}).

Example of the GET request: https://demo.pimcore.com/admin/class/objectbrick-tree?_dc=1721102886220&grouped=1&node=0

The execution would happen in the Object Bricks/Field Collection listings for Data Objects in the Settings Module (span with class x-tree-node-text in a table with id treeview-record)

Rating

The attack is relatively straightforward (XSS payloads are well documented and relatively easy to craft), requiring low privileges (anyone could access the Demo with privileged permissions and target other active users) and minimal complexity, though user interaction is needed.
The vulnerability can lead to limited data exposure and modification but does not significantly impact availability. Since the Demo resets every two hours (restoring all data to the default state), it is minimally valuable.

2
Ratings
Technical Analysis

Entered URL through Draft.js entity data (props.contentState.getEntity(props.entityKey).getData()) in querybook/webapp/lib/richtext/ index.tsx (line 13) misses validation of URL schema using Safelist (‘http:’, ‘https:’), resulting in client-side XSS at <Link to={url} newTab> (line 15), enabling ACE when exploited.