-
Notifications
You must be signed in to change notification settings - Fork 76
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
decodeEntities enables stored XSS against cveClient #962
Comments
Removing
|
…es a different set of characters. Also removed "decodeEntities"
Following up on the #729 issue, the new behavior enables XSS attacks against cveClient that were blocked in the CVE Services 2.1 release. In particular, regular users can conduct stored XSS attacks against admins (in their own organization) by using the API to change the name.first or name.last field. Common up-to-date web browsers are affected.
For example, suppose that bob@example.com is a regular user of the exampleCNA organization, and alice@example.com is an admin of that organization. Before Alice logs in at the https://certcc.github.io/cveClient/ website, Bob makes an API PUT request of
Then, when Alice logs in, the XSS payload executes in (at least) two places:
Users
(near the upper left)MyLastName
in theFull name
columnFor example, in any recent version of Chrome, there is a popup window of:
(Different XSS payloads would have more severe impacts, e.g., maybe exfiltrating Alice's API key to a server under Bob's control.)
This occurs because 7ad11ae makes decodeEntities calls that, in effect, undo the XSS protection provided by escape() in
cve-services/src/controller/org.controller/index.js
Lines 716 to 717 in a05a3d4
Options include:
Note that, in the successful attack, Bob does not use the cveClient UI to change the name.first field. Instead, the attack scenario is that cveClient is used by the victim; the attacker can use any of various other clients (e.g., curl).
The text was updated successfully, but these errors were encountered: