This repository was archived by the owner on Oct 9, 2023. It is now read-only.
Add "<" (<) to the ENCODE list#182
Closed
OiCMudkips wants to merge 1 commit intoairbnb:masterfrom
OiCMudkips:also_encode_decode_less_than
Closed
Add "<" (<) to the ENCODE list#182OiCMudkips wants to merge 1 commit intoairbnb:masterfrom OiCMudkips:also_encode_decode_less_than
OiCMudkips wants to merge 1 commit intoairbnb:masterfrom
OiCMudkips:also_encode_decode_less_than
Conversation
We have found that browsers (at least Chrome and Firefox) can interpret "/" to close a tag in a HTML comment in a script tag. This means that a malicious attacker could submit a payload like "</script/", prematurely closing the script tag that a Hypernova comment is in, causing the page to crash.
Collaborator
|
#167 seems to cover this; it's not all opening tags, it's just |
Author
|
Whoops, didn't see that PR. Looking forward to seeing it merged! |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to subscribe to this conversation on GitHub.
Already have an account?
Sign in.
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What?
Also encode the
<character insrc/index.js.Why?
We have found that browsers (at least Chrome and Firefox) can interpret "/" to close a tag in a HTML comment in a script tag.
This means that a malicious attacker could submit a payload like "</script/", get it into hydration data, and prematurely close the script tag that a Hypernova comment is in, causing the page to crash.
Here's a POC (please feel free to inspect and rename it to .html if you believe I'm not giving you malware): whoops.txt
Alternatives
Maybe we should only include
<and drop>from the list if performance is a concern. Replacing the comment-in-script with<!-- {"text": "</script>"} -->correctly runs the script for me in Chrome, so I think escaping only<is acceptable.