Skip to content
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

add conditional check to block javascript: URLs #61

Merged
merged 1 commit into from Apr 3, 2024

Conversation

gtsp233
Copy link
Contributor

@gtsp233 gtsp233 commented Dec 1, 2023

Fix for Cross-Site Scripting (XSS) Vulnerability

I've identified two Cross-Site Scripting (XSS) vulnerabilities in this package.

Vulnerability Details:

  • Severity: High/Critical
  • Description: There's a risk of malicious script execution when the URL is controlled by an adversary.

Steps to Reproduce:
In a React.js project:

import { PlaceholderEmbed, LinkedInEmbed } from 'react-social-media-embed'

<>
<PlaceholderEmbed url={`javascript:alert(1)`} />
<LinkedInEmbed url={`javascript:alert(1)`} />
</ >

Then the malicious code alert(1) will be executed.

Suggested Fix or Mitigation:
It is best practice for a React.js components package to sanitize the href attribute before passing it to an tag. React.js itself, along with many popular libraries such as react-router-dom and Next.js, also ensures the safety of href attributes. For instance, React.js issues warnings about URLs starting with javascript: and is planning to block these in future versions, as indicated in this pull request.

I've already fixed and tested this issue, and have submitted a pull request with the necessary changes. Please review and merge my pull request at your earliest convenience to resolve this vulnerability. Thanks!

@justinmahar
Copy link
Owner

justinmahar commented Apr 2, 2024

Thanks for the PR and for bringing this to my attention! Will address this soon

@justinmahar
Copy link
Owner

Closes #71

@justinmahar justinmahar merged commit adaa138 into justinmahar:master Apr 3, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants