Skip to content
KitploitKITPLOIT
ToolsBlog
Submit
ToolsBlog
Submit

Hacking, PenTest, and Cybersecurity Tools for Your Security Arsenal!

Kitploit is a directory of hacking, cybersecurity, and pentesting tools. Discover the latest project updates to find vulnerabilities, analyze systems, automate testing, and strengthen your security.

··Feeds·Contact·Privacy·© 2026 Kitploit

Tool Directory

Categories

View all categories
Loading categories
CVE-2020-15215-Discord-POC | Kitploit
Tools/GitHubGitHub/nishantiyer/cve-2020-15215-discord-poc
Exploit FrameworksVulnerability AnalysisWeb SecurityPenetration TestingBinary AnalysisLearning & Education
GitHubnishantiyer/cve-2020-15215-discord-poc

CVE-2020-15215-Discord-POC

View Repository

Most Popular

View all →

Discover the most used tools by our community.

Explore all tools

Browse our collection of tools

View all tools →
Share
16143 months agoNot yet reviewed

Discord Electron ISO Boundary Validation PoC

Scope

This repository is a proof-of-concept validation harness for Electron boundary hardening in Discord-style desktop architectures. It models renderer/main-process separation, preload bridge policy, IPC channel exposure, navigation controls, and runtime supervision to study how misconfiguration can weaken an application's isolation guarantees.

Reference case details are tracked at: https://bugbounty.com/211356433

Vulnerability Context

The case study is based on the 2020 Discord desktop app vulnerability chain involving Electron CVE-2020-15215 (context isolation bypass) and CVE-2020-15174 (navigation / framebusting protection failure), combined with an upstream XSS condition in embedded third-party content [web:5][web:19][web:20].

The harness focuses on security-relevant conditions such as:

  • renderer-to-main command routing
  • preload bridge exposure and policy enforcement
  • IPC allow/deny mapping
  • navigation and top-frame transition handling
  • session state transitions under randomized workloads
  • runtime queue scheduling and process supervision
  • platform-specific integration paths

Repository Topology

Core runtime

  • src/main/
    • lifecycle construction
    • window preference synthesis
    • process supervision state
    • power event transitions
  • src/runtime/
    • job registry
    • priority queue modeling
    • tick scheduler flows

IPC and privilege boundaries

  • src/ipc/
    • channel registration
    • route resolution
  • src/preload/
    • bridge surface mapping
    • bridge policy evaluation
  • src/security/guards/
    • invocation filtering
    • payload shaping
  • src/security/policies/
    • window-policy composition

Network and protocol

  • src/network/rest/
    • REST route construction and request shape helpers
  • src/network/gateway/
    • gateway event-state transitions
  • src/network/rpc/
    • RPC frame construction and inflight tracking

Domain state modules

  • src/modules/guilds/, src/modules/channels/, src/modules/voice/
  • src/modules/auth/, src/modules/presence/, src/modules/experiments/
  • src/cache/, src/database/, src/commands/, src/sessions/, src/state/

Extended subsystems

  • src/rendering/ for layout/theme/canvas surfaces
  • src/media/ for audio/image/video pipeline stages
  • src/search/ for index/query/ranking stores
  • src/ml/ for feature/inference/pipeline graphs
  • src/billing/ for plan/invoice/ledger paths
  • src/moderation/ for filters/reports/actions
  • src/compliance/ for policy catalogs and audit trails
  • src/bots/ for bot runtime/store/gateway state
  • src/platform/ for linux/windows/mac adapters

Validation Functionality

The PoC provides deterministic and stochastic paths for boundary-analysis validation:

  1. Git-dated history simulation with role-separated author metadata and timeline progression (scripts/simulate-history.ps1).
  2. Fixture generation for repeated object identity seeding (scripts/generate-fixture.js).
  3. Channel registration plus authorization map resolution and lookup.
  4. Window-policy and preload-policy coupling for privilege-path analysis.
  5. Reducer-chain and session-registry transitions for high-churn command workloads.
  6. Queue/job/scheduler lifecycle movement under serialized state snapshots.
  7. Structured module exports that isolate each stateful subsystem as pure function surfaces.

Build and Execution

Requirements

  • Node.js 18+
  • npm 9+
  • Git 2.30+
  • PowerShell 7+ (for timeline simulation script)

Install

root@kitploit:~
npm install

Generate fixture payload

root@kitploit:~
node scripts/generate-fixture.js

Validate module loading across the full source tree

root@kitploit:~
node -e "const fs=require('fs');const path=require('path');function walk(d){for(const e of fs.readdirSync(d)){const p=path.join(d,e);const s=fs.statSync(p);if(s.isDirectory())walk(p);else if(p.endsWith('.js')) require('./'+p);}} walk('src'); console.log('ok');"

Optional branch/bootstrap

root@kitploit:~
git checkout -B main
node scripts/generate-fixture.js > fixtures/generated.json

Engineering Notes

  • All modules are structured around create*, set*, get*, and staged worker transitions to simplify differential tracing through subsystem boundaries.
  • File layout preserves strict domain segmentation to make per-surface instrumentation straightforward.
  • IPC, preload, security, runtime, and network layers are kept orthogonal so instrumentation can be enabled without cross-domain mutation.
  • The README intentionally documents a defensive reproduction harness, not a working exploit chain.

Attribution

Nishant

Authors:

  • Arjun Mehta
  • Sofia Alvarez
Download Tool