Skip to content

jquery.terminal self XSS on user input

Low severity GitHub Reviewed Published Dec 30, 2021 in jcubic/jquery.terminal • Updated Jan 30, 2023

Package

npm jquery.terminal (npm)

Affected versions

< 2.31.1

Patched versions

2.31.1

Description

Impact

This is low impact and limited XSS, because code for XSS payload is always visible, but attacker can use other techniques to hide the code the victim sees.

Also if the application use execHash option and execute code from URL the attacker can use this URL to execute his code. The scope is limited because the javascript code inside html attribute used is added to span tag, so no automatic execution like with onerror on images is possible.

Patches

Fixed version 2.31.1

Workarounds

The user can use formatting that wrap whole user input and it's no op.

$.terminal.new_formatter([/([\s\S]+)/g, '[[;;]$1]']);

The fix will only work when user of the library is not using different formatters (e.g. to highlight code in different way).

References

The issue was reported here jcubic/jquery.terminal#727

For more information

If you have any questions or comments about this advisory:

References

@jcubic jcubic published to jcubic/jquery.terminal Dec 30, 2021
Published by the National Vulnerability Database Dec 30, 2021
Reviewed Jan 6, 2022
Published to the GitHub Advisory Database Jan 6, 2022
Last updated Jan 30, 2023

Severity

Low
3.7
/ 10

CVSS base metrics

Attack vector
Network
Attack complexity
High
Privileges required
Low
User interaction
Required
Scope
Unchanged
Confidentiality
Low
Integrity
Low
Availability
None
CVSS:3.1/AV:N/AC:H/PR:L/UI:R/S:U/C:L/I:L/A:N

CVE ID

CVE-2021-43862

GHSA ID

GHSA-x9r5-jxvq-4387

Credits

Loading Checking history
See something to contribute? Suggest improvements for this vulnerability.