What is XSS?

Cross-site scripting (XSS) is an exploit where the attacker attaches code onto a legitimate website that will execute when the victim loads the website. That malicious code can be inserted in several ways. Most popularly, it is either added to the end of a url or posted directly onto a page that displays user-generated content. In more technical terms, cross-site scripting is a client-side code injection attack. https://www.cloudflare.com/learning/security/threats/cross-site-scripting/

Impact

One-click Lemmy account compromise by social engineering users to click your posts URL.

Reproduction

Lemmy does not properly sanitize URI’s on posts leading to cross-site scripting. You can see this working in action by clicking the “link” attached to this post on the web client.

To recreate, simply create a new post with the URL field set to: javascript:alert(1)//

Patching

Adding filtering to block javascript: and data: URI’s seems like the easiest approach.

  • Zagorath
    link
    fedilink
    English
    arrow-up
    1
    ·
    1 year ago

    RD is great and all, but I do understand people not following it. It isn’t anyone’s obligation to spend their free time trying to get someone else to fix their vulnerable software.

    As far as I’m concerned, if you can’t be bothered to go through some fairly basic steps to disclose it responsibly, you shouldn’t be calling yourself a “security researcher”. It’s not an excuse for doing an irresponsible disclosure. That’s just…irresponsible.

    In this case I think it can be forgiven because it’s a problem that can fairly easily be mitigated by individual users, and also by admins and community mods, but I don’t think it’s a good thing to promote as a general rule.

    • terribleplan@lemmy.nrd.li
      link
      fedilink
      English
      arrow-up
      1
      ·
      1 year ago

      “Responsible disclosure” (which apparently is more commonly called “Coordinated disclosure” now) vs “Full disclosure” has been a debate among security researchers for as long as I can remember, so I have to respectfully disagree.