Gallery · App X-Ray

Element 1.12.13

Electron 41.0.2 · 19 addresses · 25 modules · 17 IPC channels

Findings

medium

Electron 41.0.2 no longer receives security fixes

2 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

18 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

2 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

HostAddressHowWhere
—autoHideMenuBarcall:store.getsrc/electron-main.ts:456
—disableHardwareAccelerationcall:store.getsrc/electron-main.ts:338
—disableHardwareAccelerationcall:Store.instance.getsrc/settings.ts:71
—enableContentProtectioncall:store.getsrc/electron-main.ts:471
—enableContentProtectioncall:Store.instance.getsrc/settings.ts:84
—feedUrlcall:fetchsrc/updater.ts:37
matrix.orghttps://matrix.org/**call:context.routeplaywright/element-desktop-test.ts:105
—minimizeToTraycall:store.getsrc/electron-main.ts:492
—openAtLoginMinimisedcall:Store.instance.getsrc/auto-launch.ts:23
—r.avatarUrlcall:fetchsrc/ipc.ts:175
—safeStoragecall:getsrc/store.ts:426
—safeStorageBackendcall:getsrc/store.ts:289
—safeStorageBackendMigratecall:deletesrc/store.ts:433
—safeStorageBackendOverridecall:store.getsrc/store.ts:161
—spellCheckerEnabledcall:store.getsrc/electron-main.ts:489
—urlcall:fetchsrc/webcontents-handler.ts:155
vectorvector://vector/webapp/call:global.mainWindow.loadURLsrc/electron-main.ts:481
—warnBeforeExitcall:Store.instance.getsrc/settings.ts:31
—warnBeforeExitcall:store.getsrc/electron-main.ts:517

Modules

ModuleUsed by
@playwright/testplaywright.config.ts, playwright/element-desktop-test.ts
@sentry/electron/mainsrc/electron-main.ts
auto-launchsrc/auto-launch.ts
counterpartsrc/language-helper.ts
electronsrc/badge.ts, src/electron-main.ts, src/ipc.ts, src/media-auth.ts, src/preload.cts, src/protocol.ts, src/seshat.ts, src/settings.ts, src/squirrelhooks.ts, src/store.ts, src/tray.ts, src/updater.ts, src/vectormenu.ts, src/webcontents-handler.ts
electron-builderelectron-builder.ts
electron-devtools-installersrc/electron-main.ts
electron-storesrc/store.ts
electron-window-statesrc/electron-main.ts
eslint-plugin-matrix-org/.prettierrc.js.prettierrc.cjs
knipknip.ts
matrix-seshatsrc/seshat.ts
matrix-web-i18nsrc/language-helper.ts
minimistsrc/electron-main.ts
node:child_processhak/matrix-seshat/check.ts, src/squirrelhooks.ts
node:cryptosrc/protocol.ts, src/utils.ts
node:fselectron-builder.ts, src/electron-main.ts, src/protocol.ts, src/seshat.ts, src/utils.ts, src/webcontents-handler.ts
node:fs/promiseshak/matrix-seshat/check.ts, playwright/element-desktop-test.ts, src/tray.ts, src/updater.ts
node:oselectron-builder.ts, playwright/element-desktop-test.ts, src/updater.ts
node:pathelectron-builder.ts, playwright/element-desktop-test.ts, src/build-config.ts, src/electron-main.ts, src/language-helper.ts, src/protocol.ts, src/seshat.ts, src/squirrelhooks.ts, src/tray.ts, src/utils.ts, src/webcontents-handler.ts
node:streamplaywright/element-desktop-test.ts
node:stream/promisessrc/webcontents-handler.ts
node:urlplaywright/element-desktop-test.ts, src/build-config.ts, src/electron-main.ts, src/language-helper.ts, src/protocol.ts, src/webcontents-handler.ts
png-to-icosrc/tray.ts
uuidsrc/tray.ts

Windows and IPC

WindowwebPreferences
src/electron-main.ts:447contextIsolation=true, nodeIntegration=false, preload=?, webgl=true
ChannelSideOperationWhere
app_onActionmainonsrc/ipc.ts:30
check_updatesmainonsrc/updater.ts:173
getConfigrendererinvokesrc/preload.cts:67
getProtocolmainhandlesrc/protocol.ts:59
getSettingValuerendererinvokesrc/preload.cts:77
getSupportedSettingsrendererinvokesrc/preload.cts:68
homeserverUrlmainoncesrc/media-auth.ts:42
initialisemainoncesrc/ipc.ts:225
install_updatemainonsrc/updater.ts:172
ipcCallmainonsrc/ipc.ts:48
loudNotificationmainonsrc/ipc.ts:16
serverSupportedVersionsmainoncesrc/media-auth.ts:16
seshatmainonsrc/seshat.ts:79
setBadgeCountmainonsrc/badge.ts:42
setSettingValuerendererinvokesrc/preload.cts:74
userAccessTokenmainoncesrc/media-auth.ts:29
userDownloadActionmainonsrc/webcontents-handler.ts:268

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/element-desktop/badge.svg)](https://Eliot5566.github.io/app-xray/apps/element-desktop/)

What this report cannot see