# CVE-2021-43862: Self XSS on user input

> An attacker can execute arbitrary JavaScript via self-XSS in jQuery Terminal Emulator if the execHash option is enabled, allowing code execution in the victim's browser.

- **Severity:** Low 3.7 (`CVSS:3.1/AV:N/AC:H/PR:L/UI:R/S:U/C:L/I:L/A:N`)
- **Exploited in the wild:** Not known
- **Login needed:** Any signed-in user
- **Attackable:** Over the internet
- **Victim action needed:** A user has to click or open something
- **Fix available:** Yes
- **Published:** 30 Dec 2021
- **Updated:** 4 Aug 2024
- **Also known as:** GHSA-x9r5-jxvq-4387

## What is CVE-2021-43862?

CVE-2021-43862 is a low-severity cross-site scripting vulnerability in jcubic jquery.terminal, published on 30 Dec 2021. Any signed-in user can exploit it over the network, and only if a user opens a file or follows a link.

### Official description

jQuery Terminal Emulator is a plugin for creating command line interpreters in your applications. Versions prior to 2.31.1 contain a low impact and limited cross-site scripting (XSS) vulnerability. The code for XSS payload is always visible, but an attacker can use other techniques to hide the code the victim sees. If the application uses the `execHash` option and executes code from URL, the attacker can use this URL to execute their code. The scope is limited because the javascript attribute used is added to span tag, so no automatic execution like with `onerror` on images is possible. This issue is fixed in version 2.31.1. As a workaround, the user can use formatting that wrap whole user input and its no op. The code for this workaround is available in the GitHub Security Advisory. The fix will only work when user of the library is not using different formatters (e.g. to highlight code in different way).

Weakness: CWE-79 (Improper Neutralization of Input During Web Page Generation), CWE-80 (Improper Neutralization of Script-Related HTML Tags in a Web Page)

## Which versions are affected by CVE-2021-43862?

2 open source packages ship an affected version, including jquery.terminal. It affects 1 product.


| Package | Ecosystem | Affected | Fixed in |
| --- | --- | --- | --- |
| `jquery.terminal` | npm | All versions | 2.31.1 |
| `jquery.terminal` | npm | All versions | 2.31.1 |

Products: Jquery.terminal Project Jquery.terminal.

## How do I fix CVE-2021-43862?

Upgrade jquery.terminal to 2.31.1 or later.

## Is CVE-2021-43862 being exploited?

There is no known exploitation of CVE-2021-43862 in the wild and no public exploit code.

## Fix prompt for AI coding agents

```text
Check this codebase for CVE-2021-43862 and fix it if it is affected.

What it is: CVE-2021-43862 is a low-severity cross-site scripting vulnerability in jcubic jquery.terminal, published on 30 Dec 2021. Any signed-in user can exploit it over the network, and only if a user opens a file or follows a link.
Exploitation: There is no known exploitation of CVE-2021-43862 in the wild and no public exploit code.

Affected packages and fixed versions:
- jquery.terminal (npm): affected all versions; fixed in 2.31.1
- jquery.terminal (npm): affected all versions; fixed in 2.31.1

Task:
1. Search the dependency manifests and lockfiles (for example package.json, package-lock.json, requirements.txt, poetry.lock, uv.lock, pom.xml, build.gradle, go.mod, Cargo.lock, Gemfile.lock) and any Dockerfiles for the affected packages, including transitive dependencies.
2. If an affected version is in use, upgrade it to the fixed version for its release line with the project's package manager, so the lockfile is regenerated. Prefer the smallest upgrade that fixes it.
3. If there is no fix, or the upgrade would break the build, do not guess: explain the risk and the safest workaround instead.
4. Run the tests and summarise what changed and why.
5. If nothing in the project is affected, say so and change nothing.

Reference: https://insights.sbomify.com/CVE-2021-43862/ (Markdown: https://insights.sbomify.com/CVE-2021-43862/index.md)
```

## Sources

- CVE record: https://www.cve.org/CVERecord?id=CVE-2021-43862
- NVD: https://nvd.nist.gov/vuln/detail/CVE-2021-43862
- OSV: https://osv.dev/vulnerability/CVE-2021-43862

---
From sbomify Insights: https://insights.sbomify.com/CVE-2021-43862/
Summaries are generated and may contain mistakes; the official description above is the record.
