Skip to content

GitLab

  • Projects
  • Groups
  • Snippets
  • Help
    • Loading...
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Sign in / Register
decentraleyes
decentraleyes
  • Project overview
    • Project overview
    • Details
    • Activity
    • Releases
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
  • Issues 84
    • Issues 84
    • List
    • Boards
    • Labels
    • Service Desk
    • Milestones
  • Merge Requests 9
    • Merge Requests 9
  • Operations
    • Operations
    • Incidents
  • Analytics
    • Analytics
    • Repository
    • Value Stream
  • Wiki
    • Wiki
  • Members
    • Members
  • Collapse sidebar
  • Activity
  • Graph
  • Create a new issue
  • Commits
  • Issue Boards

Microsoft has acquired GitHub. Decentraleyes has left GitHub. Welcome to its new home!

To participate, please register, or sign in with an existing GitLab.com, Bitbucket, or GitHub account.

Past contributions on GitHub? Be sure to reclaim your Comments, Issues, and Pull Requests.

  • Thomas Rientjes
  • decentraleyesdecentraleyes
  • Issues
  • #130

Closed
Open
Opened Nov 07, 2016 by Ghost User@ghostContributor

Decentraleyes facilitates specific CSP bypasses

Created by: Rob--W

The Decentraleyes add-on bundles old and known-vulnerable versions of JavaScript libraries, which can be loaded even if the page has blocked external resource loads through the CSP. As a result, the CSP becomes less effective as a defense to XSS.

Proof of concept:

  1. Install Decentraleyes from AMO (version 1.3.5) (tested with Firefox 49 and Firefox 52).
  2. Visit https://robwu.nl/s/csp-decentraleyes.html The page has Content-Security-Policy: default-src 'none'; script-src 'nonce-inline-script-for-self-contained-poc', which is the strongest possible form of CSP: except from scripts that are marked with the given nonce, no other resource should load.
  3. The page attempts to load a script from the Decentraleyes add-on (e.g. jQuery) and then attempts to verify that the script load succeeded by calling appending "Failed" to the document. If the library failed to load, "Maybe no fail" is appended.

Expected:

  • "Maybe no fail" - indicating that the CSP is not bypassed (or the add-on is not installed).

Actual:

  • "Failed" - indicating that the presence of the add-on allowed the web page to bypass the CSP.
To upload designs, you'll need to enable LFS and have admin enable hashed storage. More information
Assignee
Assign to
v1.3.6
Milestone
v1.3.6
Assign milestone
Time tracking
None
Due date
None
Reference: Synzvato/decentraleyes#130