VDB
KO
MEDIUM

GHSA-c8qc-wf67-342w

Snipe-IT: Stored DOM XSS via table selected-count IDs

Quick fix

GHSA-c8qc-wf67-342w — snipe/snipe-it: upgrade to the fixed version with the command below.

composer require snipe/snipe-it:^8.6.2

Details

### Impact The table component derives data-selected-count-id from the component $name value. On manufacturer and supplier detail pages, stored manufacturer or supplier names are passed into affected table components as that name value. The client-side JavaScript later reads the browser-decoded data-selected-count-id, uses it as a selector, and concatenates countId.substring(1) directly into an HTML string passed to jQuery .after().

Affected commit:

`b224cc636c6780386e3f73f03d1171f52ab4c37a`

Example payload for a manufacturer or supplier name: `x[foo="><svg/onload=alert(1)>"]>`

The issue appears to involve the following flow:

Stored supplier/manufacturer name -> table component data-selected-count-id -> browser decodes the attribute -> JavaScript reads countId -> countId is used as a selector -> countId.substring(1) is concatenated into HTML -> jQuery .after() inserts attacker-controlled markup -> JavaScript executes in the victim's browser

Potential impact includes arbitrary JavaScript execution in the browser of an authenticated Snipe-IT user who views the affected supplier or manufacturer detail page. If the victim has elevated privileges, this may allow access to data or actions available to that user's session.

### Patches Patched in https://github.com/grokability/snipe-it/commit/d12ad3d53869443b96b663ba3ce2673ef343da71

Are you affected?

Enter the version of the package you're using.

Affected packages

Packagist / snipe/snipe-it
Introduced in: 0 Fixed in: 8.6.2
Fix composer require snipe/snipe-it:^8.6.2

References