Skip to content

Conversation

sch
Copy link
Contributor

@sch sch commented Jun 28, 2023

While HTML links launch without an opener reference, window.open provides a reference to the parent page through an auxiliary browsing context. Given untrusted URL input, this can lead to tabnabbing and phishing attacks.

This change uses the noopener and noreferrer window features for the default link handler in the React renderer. This can be tested with the following card JSON:

{
    "type": "AdaptiveCard",
    "actions": [
        {
            "type": "Action.OpenUrl",
            "title": "Open Url",
            "url": "javascript:alert(window.opener.location)"
        }
    ],
    "$schema": "http://adaptivecards.io/schemas/adaptive-card.json",
    "version": "1.5"
}
Microsoft Reviewers: Open in CodeFlow

While HTML links [launch without an opener reference][spec],
[`window.open`][vulnerability] provides a reference to the parent page
through an auxiliary browsing context. Given untrusted URL input, this
can lead to tabnabbing and phishing attacks.

This change uses the [noopener] and [noreferrer] [window features] for
the default link handler in the React renderer.

[spec]: whatwg/html#4078
[vulnerability]: https://mathiasbynens.github.io/rel-noopener/
[window features]: https://developer.mozilla.org/en-US/docs/Web/API/Window/open#windowfeatures
[noopener]: https://developer.mozilla.org/en-US/docs/Web/HTML/Attributes/rel/noopener
[noreferrer]: https://developer.mozilla.org/en-US/docs/Web/HTML/Attributes/rel/noreferrer
@microsoft-github-policy-service
Copy link
Contributor

Hi @sch. This pull request has had no recent activity for the past 5 days . Please take the necessary actions (review, address feedback or commit if reviewed already) to move this along.

1 similar comment
@microsoft-github-policy-service
Copy link
Contributor

Hi @sch. This pull request has had no recent activity for the past 5 days . Please take the necessary actions (review, address feedback or commit if reviewed already) to move this along.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants