Gallery · App X-Ray

WebTorrent Desktop 0.24.0

Electron 27.3.11 · 0 addresses · 60 modules · 58 IPC channels

Findings

high

Electron 27.3.11 no longer receives security fixes

16 major versions behind the oldest supported line (as of 2026-10-22, Electron 43–45 are supported). Its bundled Chromium misses every fix since.

low

IPC handlers do not check the sender

29 main-process handlers, and no check of event.senderFrame or event.sender was found. Any page that can send IPC, including an injected one, is trusted.

info

IPC channel names chosen at runtime

4 IPC calls take the channel name from a variable. When a preload script forwards a channel chosen by the page, the page can reach every handler; worth reviewing.

Network addresses

No literal network addresses found.

Modules

ModuleUsed by
./aboutsrc/main/windows/index.js
./build/mainindex.js
./mainsrc/main/windows/index.js
./webtorrentsrc/main/windows/index.js
@electron/remotesrc/config.js, src/renderer/components/path-selector.js, src/renderer/controllers/subtitles-controller.js, src/renderer/controllers/torrent-list-controller.js, src/renderer/lib/telemetry.js
@electron/remote/mainsrc/main/index.js, src/main/windows/about.js, src/main/windows/main.js, src/main/windows/webtorrent.js
airplayersrc/renderer/lib/cast.js
application-configsrc/config.js, src/renderer/lib/state.js
archsrc/config.js
auto-launchsrc/main/startup.js
bitfieldsrc/renderer/pages/player-page.js
capture-framesrc/renderer/lib/torrent-poster.js
child_processsrc/main/external-player.js, src/main/squirrel-win32.js, src/main/tray.js
chokidarsrc/main/folder-watcher.js
chromecastssrc/renderer/lib/cast.js
create-torrentsrc/renderer/lib/state.js, src/renderer/pages/create-torrent-page.js
cryptosrc/renderer/lib/telemetry.js, src/renderer/webtorrent.js
debouncesrc/main/windows/main.js, src/renderer/lib/state.js, src/renderer/main.js
dlnacastssrc/renderer/lib/cast.js
drag-dropsrc/renderer/main.js
electronsrc/config.js, src/crash-reporter.js, src/main/announcement.js, src/main/dialog.js, src/main/dock.js, src/main/handlers.js, src/main/index.js, src/main/ipc.js, src/main/log.js, src/main/menu.js, src/main/power-save-blocker.js, src/main/shell.js, src/main/shortcuts.js, src/main/squirrel-win32.js, src/main/tray.js, src/main/updater.js, src/main/user-tasks.js, src/main/windows/about.js, src/main/windows/main.js, src/main/windows/webtorrent.js, src/renderer/components/open-torrent-address-modal.js, src/renderer/components/unsupported-media-modal.js, src/renderer/components/update-available-modal.js, src/renderer/controllers/folder-watcher-controller.js, src/renderer/controllers/media-controller.js, src/renderer/controllers/playback-controller.js, src/renderer/controllers/prefs-controller.js, src/renderer/controllers/torrent-controller.js, src/renderer/controllers/torrent-list-controller.js, src/renderer/lib/migrations.js, src/renderer/main.js, src/renderer/webtorrent.js
es6-errorsrc/renderer/lib/errors.js
eventssrc/renderer/lib/state.js
fn-gettersrc/renderer/main.js, src/renderer/pages/app.js
fssrc/config.js, src/renderer/controllers/subtitles-controller.js, src/renderer/controllers/torrent-list-controller.js, src/renderer/lib/migrations.js, src/renderer/lib/state.js, src/renderer/main.js, src/renderer/webtorrent.js
httpsrc/renderer/lib/cast.js
iso-639-1src/renderer/controllers/subtitles-controller.js
languagedetectsrc/renderer/controllers/subtitles-controller.js
location-historysrc/renderer/lib/state.js
material-ui/Checkboxsrc/renderer/pages/create-torrent-page.js, src/renderer/pages/preferences-page.js, src/renderer/pages/torrent-list-page.js
material-ui/FlatButtonsrc/renderer/components/modal-ok-cancel.js, src/renderer/pages/create-torrent-page.js
material-ui/LinearProgresssrc/renderer/pages/torrent-list-page.js
material-ui/RaisedButtonsrc/renderer/components/modal-ok-cancel.js, src/renderer/components/path-selector.js, src/renderer/components/show-more.js, src/renderer/pages/create-torrent-page.js, src/renderer/pages/preferences-page.js
material-ui/styles/baseThemes/darkBaseThemesrc/renderer/pages/app.js
material-ui/styles/baseThemes/lightBaseThemesrc/renderer/pages/app.js
material-ui/styles/colorssrc/renderer/components/heading.js, src/renderer/components/path-selector.js, src/renderer/pages/app.js, src/renderer/pages/preferences-page.js
material-ui/styles/getMuiThemesrc/renderer/pages/app.js
material-ui/styles/MuiThemeProvidersrc/renderer/pages/app.js
material-ui/TextFieldsrc/renderer/components/open-torrent-address-modal.js, src/renderer/components/path-selector.js, src/renderer/pages/create-torrent-page.js, src/renderer/pages/preferences-page.js
modulesrc/renderer/main.js
music-metadatasrc/renderer/webtorrent.js
network-addresssrc/renderer/webtorrent.js
ossrc/renderer/lib/telemetry.js
parse-torrentsrc/renderer/lib/state.js
pathsrc/config.js, src/main/external-player.js, src/main/handlers.js, src/main/index.js, src/main/squirrel-win32.js, src/main/thumbar.js, src/renderer/components/path-selector.js, src/renderer/controllers/playback-controller.js, src/renderer/controllers/subtitles-controller.js, src/renderer/controllers/torrent-controller.js, src/renderer/controllers/torrent-list-controller.js, src/renderer/lib/migrations.js, src/renderer/lib/sound.js, src/renderer/lib/state.js, src/renderer/lib/torrent-player.js, src/renderer/lib/torrent-poster.js, src/renderer/lib/torrent-summary.js, src/renderer/pages/create-torrent-page.js, src/renderer/webtorrent.js
prettier-bytessrc/renderer/pages/create-torrent-page.js, src/renderer/pages/player-page.js, src/renderer/pages/torrent-list-page.js
prop-typessrc/renderer/components/heading.js, src/renderer/components/path-selector.js, src/renderer/components/show-more.js, src/renderer/pages/preferences-page.js
reactsrc/renderer/components/create-torrent-error-page.js, src/renderer/components/delete-all-torrents-modal.js, src/renderer/components/header.js, src/renderer/components/heading.js, src/renderer/components/modal-ok-cancel.js, src/renderer/components/open-torrent-address-modal.js, src/renderer/components/path-selector.js, src/renderer/components/remove-torrent-modal.js, src/renderer/components/show-more.js, src/renderer/components/unsupported-media-modal.js, src/renderer/components/update-available-modal.js, src/renderer/main.js, src/renderer/pages/app.js, src/renderer/pages/create-torrent-page.js, src/renderer/pages/player-page.js, src/renderer/pages/preferences-page.js, src/renderer/pages/torrent-list-page.js
react-domsrc/renderer/main.js
rimrafsrc/renderer/lib/migrations.js
run-parallelsrc/main/index.js, src/renderer/controllers/subtitles-controller.js
semversrc/renderer/lib/migrations.js
simple-concatsrc/renderer/controllers/subtitles-controller.js
simple-getsrc/main/announcement.js, src/main/updater.js, src/renderer/lib/telemetry.js
srt-to-vttsrc/renderer/controllers/subtitles-controller.js
utilsrc/renderer/webtorrent.js
vlc-commandsrc/main/external-player.js
webtorrentsrc/renderer/webtorrent.js
webtorrent/package.jsonsrc/main/index.js
winregsrc/main/handlers.js

Windows and IPC

WindowwebPreferences
src/main/windows/webtorrent.js:14backgroundThrottling=false, contextIsolation=false, enableBlinkFeatures=AudioVideoTracks, enableRemoteModule=true, nodeIntegration=true
src/main/windows/about.js:14backgroundThrottling=false, contextIsolation=false, enableBlinkFeatures=AudioVideoTracks, enableRemoteModule=true, nodeIntegration=true
src/main/windows/main.js:31backgroundThrottling=false, contextIsolation=false, enableBlinkFeatures=AudioVideoTracks, enableRemoteModule=true, nodeIntegration=true
ChannelSideOperationWhere
checkForExternalPlayerrenderersendsrc/renderer/controllers/media-controller.js:25
dispatchrendereronsrc/renderer/main.js:374
downloadFinishedmainonsrc/main/ipc.js:60
errorrendereronsrc/renderer/main.js:372
fullscreenChangedrendereronsrc/renderer/main.js:376
ipcReadyrenderersendsrc/renderer/main.js:396
ipcReadyWebTorrentrenderersendsrc/renderer/webtorrent.js:83
logrendereronsrc/renderer/main.js:371
moveItemToTrashmainonsrc/main/ipc.js:148
onPlayerCloserenderersendsrc/renderer/controllers/playback-controller.js:370
onPlayerOpenmainonsrc/main/ipc.js:69
onPlayerPausemainonsrc/main/ipc.js:106
onPlayerPlayrenderersendsrc/renderer/controllers/playback-controller.js:130
onPlayerUpdaterenderersendsrc/renderer/controllers/playback-controller.js:336
openExternalPlayerrenderersendsrc/renderer/controllers/media-controller.js:64
openFilesmainonsrc/main/ipc.js:47
openPathmainonsrc/main/ipc.js:140
openTorrentFilerenderersendsrc/renderer/main.js:243
quitExternalPlayerrenderersendsrc/renderer/controllers/playback-controller.js:349
setAllowNavmainonsrc/main/ipc.js:187
setAspectRatiorenderersendsrc/renderer/controllers/playback-controller.js:391
setBadgemainonsrc/main/ipc.js:56
setBoundsmainonsrc/main/ipc.js:182
setDefaultFileHandlerrenderersendsrc/renderer/controllers/prefs-controller.js:31
setProgressmainonsrc/main/ipc.js:183
setStartupmainonsrc/main/ipc.js:168
setTitlerenderersendsrc/renderer/main.js:229
showmainonsrc/main/ipc.js:185
showItemInFolderrenderersendsrc/renderer/controllers/torrent-list-controller.js:401
startFolderWatchermainonsrc/main/ipc.js:118
stateSavedrenderersendsrc/renderer/main.js:398
stopFolderWatchermainonsrc/main/ipc.js:127
toggleFullScreenmainonsrc/main/ipc.js:186
windowBoundsChangedrendereronsrc/renderer/main.js:377
wt-audio-metadatarenderersendsrc/renderer/webtorrent.js:335
wt-create-torrentrendereronsrc/renderer/webtorrent.js:68
wt-donerendereronsrc/renderer/main.js:382
wt-errorrenderersendsrc/renderer/webtorrent.js:95
wt-file-modtimesrenderersendsrc/renderer/webtorrent.js:171
wt-file-savedrenderersendsrc/renderer/webtorrent.js:216
wt-generate-torrent-posterrendereronsrc/renderer/webtorrent.js:72
wt-get-audio-metadatarendereronsrc/renderer/webtorrent.js:74
wt-metadatarendereronsrc/renderer/main.js:381
wt-new-torrentrenderersendsrc/renderer/webtorrent.js:134
wt-parsedrenderersendsrc/renderer/webtorrent.js:143
wt-posterrendereronsrc/renderer/main.js:390
wt-progressrendereronsrc/renderer/main.js:387
wt-readyrenderersendsrc/renderer/webtorrent.js:157
wt-save-torrent-filerenderersendsrc/renderer/controllers/torrent-controller.js:78
wt-select-filesrendereronsrc/renderer/webtorrent.js:80
wt-server-runningrendereroncesrc/renderer/controllers/playback-controller.js:263
wt-set-global-trackersrendereronsrc/renderer/webtorrent.js:62
wt-start-serverrendereronsrc/renderer/webtorrent.js:76
wt-start-torrentingrendereronsrc/renderer/webtorrent.js:64
wt-stop-serverrendereronsrc/renderer/webtorrent.js:78
wt-stop-torrentingrenderersendsrc/renderer/controllers/torrent-list-controller.js:405
wt-uncaught-errorrendereronsrc/renderer/main.js:394
wt-warningrendereronsrc/renderer/main.js:384

Remote pages, data and packaging

No remote pages are loaded into app windows.

No on-device storage calls found.

No packaged executable was found, so Electron fuses were not read.

README badge

Maintainers can show this report in their README:

[![App X-Ray](https://Eliot5566.github.io/app-xray/apps/webtorrent-desktop/badge.svg)](https://Eliot5566.github.io/app-xray/apps/webtorrent-desktop/)

What this report cannot see