Commit graph

150 commits

Author SHA1 Message Date
al-munazzim
69a43ef1ea
Fix PyInstaller specterd backports import (#2694)
Co-authored-by: Nazim <nazim@openclaw.ai>
2026-08-11 21:19:55 +02:00
k9ert
cf491ee5b9
Chore(deps): bundle 5 green low-risk npm dependabot bumps (#2690)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-08-08 21:42:22 +02:00
k9ert
9f890a90f8
Chore(deps): bundle 5 green low-risk dependabot bumps (#2689)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-08-08 21:12:49 +02:00
dependabot[bot]
fe232048d4
Chore(deps-dev): Bump electron from 39.8.5 to 39.8.10 in /pyinstaller/electron (#2680)
Some checks failed
Build Docker container on push / Build image (push) Has been cancelled
Electron smoketest / smoketest (push) Has been cancelled
Tests / test (push) Has been cancelled
Tests / cypress (push) Has been cancelled
Tests / extension-smoketest (push) Has been cancelled
TOC Generator / TOC Generator (push) Has been cancelled
Black Python Linter / black (push) Has been cancelled
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-08-07 10:57:20 +02:00
k9ert
6b7013066d
Chore(deps): Security — bump h11 and form-data (#2613) 2026-04-19 22:01:56 +02:00
dependabot[bot]
c183c772a7
Chore(deps): Bump tar and electron-builder in /pyinstaller/electron (#2593)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-04-19 20:35:32 +02:00
k9ert
fdd1cd8f3c
ci: retire Cirrus + GitLab, consolidate on GitHub Actions (#2610)
Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-19 18:32:29 +02:00
k9ert
50d81434a8
Fix Electron stuck on splash in hwibridge mode (#2600)
Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-12 14:42:52 +02:00
dependabot[bot]
36efc821de
Chore(deps-dev): Bump electron from 30.5.1 to 39.8.5 in /pyinstaller/electron (#2591)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-04-10 14:57:43 +02:00
al-munazzim
3917c15e4f
chore: migrate PyInstaller 5.2 → 6.x, bump setuptools to 78.1.1 (#2587)
Co-authored-by: k9ert <117085+k9ert@users.noreply.github.com>
Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-10 13:43:30 +02:00
dependabot[bot]
608d6a61e5
Chore(deps-dev): Bump lodash from 4.17.23 to 4.18.1 in /pyinstaller/electron (#2586)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-04-10 13:22:06 +02:00
Copilot
69dae28c63
Fix offline crash in Electron app: guard undefined response in download HEAD request and show user-facing error (#2595)
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: k9ert <117085+k9ert@users.noreply.github.com>
2026-04-09 16:05:52 +02:00
dependabot[bot]
5ab9c08c26
Chore(deps-dev): Bump @xmldom/xmldom from 0.8.10 to 0.8.12 in /pyinstaller/electron (#2581)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-04-02 16:53:12 +02:00
al-munazzim
8365715a11
chore(deps): batch JS security updates (npm audit fix) (#2574)
Co-authored-by: al-munazzim <al-munazzim@users.noreply.github.com>
Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-23 09:26:27 +01:00
al-munazzim
5589d6c308
fix: pin setuptools to 68.2.2 to fix pkg_resources issue (#2563)
Co-authored-by: Nazim <nazim@openclaw.ai>
2026-03-19 10:39:04 +01:00
k9ert
92f10e01b0
Macos intel build (#2446)
* remove conflicting dependencies

* intel preparation (untested)

* make orgName more flexible to test

* adjust set-version logic

* build-osx package target

* fix syntax

* fix syntax

* fix syntax

* append arch for upload

* syntax

* syntax

* fixes

* fix

* complete feature

* fix

* set-version now deleting the file instead of complaining if version-mismatch

* further improvements

* parametrize CI_PROJECT_ROOT_NAMESPACE with --gh-project

* more fixes

* tinyfix

* small fix

* fix packaging

* fix

* fix

* documentation and further polishing

* polishing

* bugfixes and feedback

* docs

* more polishing

* testrun

* kick

* kick

* kick again

* kick yet again

* kick

* kick again

* kick

* kick yet again

* fix

* kick

* kick again and again

* kick again

* kick

* kick again

* kick yet again

* remove comments for restriction
2024-05-29 11:45:52 +02:00
k9ert
9a15a01f47
Electron App Dependencies (#2444)
* migrate the downloadpage generation script to this repo

* tiny docs fix

* fix 2 electron issues

* support intel platform

* fix save preferences bug

* electron upgrade

* upgrading electron dependencies
2024-05-22 21:43:13 +02:00
k9ert
5f05b9aa3b
Electron Bug Fixes and Miscellaneous Changes (#2441)
* migrate the downloadpage generation script to this repo

* tiny docs fix

* fix 2 electron issues

* support intel platform

* fix save preferences bug
2024-05-22 17:40:21 +02:00
k9ert
d58232c582
Build fixes for windows (#2443)
* few updates and build fixes for windows

* adding aioitertools

* avoiding ZoneInfo keys may not be absolute paths, got: /UTC

* fix the UTC issue
2024-05-22 14:54:41 +02:00
k9ert
e9dc494d22
Kn/macos signing (#2432)
* chore: migrate from altool to notarytool

* fix litte things in build-common

* add pyenv install in build-osx

* add pyinstaller/electron/signing_logs to gitignore

* chore: migrate from altool to notarytool

* fix little things in build.common

* add pyenv install in build osx

* add pyinatsller electron signing logs to gitignore

* updated build-osx.sh

* fix entitlement

* heavily refactoring the electron app

* polish and improve

* further bugfixing and polishing

* tiny change to improve support of MacOS

* Fix dependency issues

---------

Co-authored-by: Manolis <moneymanolis@protonmail.com>
2024-05-01 12:31:32 +02:00
Sergev ₱
3b1003941c
Patched Fix Improperly Controlled Modification of Prototype Pollution in specter-desktop (#2385)
A constructed payload sent to validate will lead to prototype pollution. Prototype Pollution refers to the ability to inject properties into existing JavaScript language construct prototypes, such as objects. JavaScript allows all Object attributes to be altered, including their magical attributes such as `__proto__`, constructor and prototype. An attacker manipulates these attributes to overwrite, or pollute, a JavaScript application object prototype of the base object by injecting other values. Properties on the Object.prototype are then inherited by all the JavaScript objects through the prototype chain. When that happens, this leads to either denial of service by triggering JavaScript exceptions, or it tampers with the application source code to force the code path that the attacker injects, thereby leading to remote code execution.

```js
	function checkObj(instance,objTypeDef,path,additionalProp){

		if(typeof objTypeDef =='object'){
			if(typeof instance != 'object' || instance instanceof Array){
				errors.push({property:path,message:"an object is required"});
			}
			
			for(var i in objTypeDef){ 
				if(Object.prototype.hasOwnProperty.call(objTypeDef, i) && i != '__proto__' && i != 'constructor'){
					var value = Object.prototype.hasOwnProperty.call(instance, i) ? instance[i] : undefined;
					// skip _not_ specified properties
					if (value === undefined && options.existingOnly) continue;
					var propDef = objTypeDef[i];
					// set default
					if(value === undefined && propDef["default"]){
						value = instance[i] = propDef["default"];
					}
					if(options.coerce && i in instance){
						value = instance[i] = options.coerce(value, propDef);
					}
					checkProp(value,propDef,path,i);
				}
			}
		}
		for(i in instance){
			if(Object.prototype.hasOwnProperty.call(instance, i) && !(i.charAt(0) == '_' && i.charAt(1) == '_') && objTypeDef && !objTypeDef[i] && additionalProp===false){
				if (options.filter) {
					delete instance[i];
					continue;
				} else {
					errors.push({property:path,message:"The property " + i +
						" is not defined in the schema and the schema does not allow additional properties"});
				}
			}
			var requires = objTypeDef && objTypeDef[i] && objTypeDef[i].requires;
			if(requires && !(requires in instance)){
				errors.push({property:path,message:"the presence of the property " + i + " requires that " + requires + " also be present"});
			}
			value = instance[i];
			if(additionalProp && (!(objTypeDef && typeof objTypeDef == 'object') || !(i in objTypeDef))){
				if(options.coerce){
					value = instance[i] = options.coerce(value, additionalProp);
				}
				checkProp(value,additionalProp,path,i);
			}
			if(!_changing && value && value.$schema){
				errors = errors.concat(checkProp(value,value.$schema,path,i));
			}
		}
		return errors;
	}
```

## Proof of Concept
```js
// PoC.js
const { validate } = require("json-schema");
const instance = JSON.parse(`
{
  "$schema":{
    "type": "object",
    "properties":{
      "__proto__": {
        "type": "object",
        
        "properties":{
          "polluted": {
              "type": "string",
              "default": "polluted"
          }
        }
      }
    },
    "__proto__": {}
  }
}`);

const a = {};
console.log(a.polluted);
validate(instance);
console.log(a.polluted);
```
**Impact**
This vulnerability is capable of make prototype pollution
CWE-915
CWE-1321
CVE-2021-3918
**`CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H`**

Co-authored-by: k9ert <k9ert@gmx.de>
2023-11-16 17:28:57 +01:00
Sergev ₱
2c8e5533a0
Patched Fix Electron vulnerable to out-of-package code execution when launched with arbitrary cwd (#2380)
This project used electron is a framework which lets you write cross-platform desktop applications using JavaScript, HTML and CSS. Affected of this project are vulnerable to Arbitrary Code Execution allowing out-of-package code execution when apps are launched as command-line executables.

```diff
diff --git a/lib/internal/modules/run_main.js b/lib/internal/modules/run_main.js
- index 5a50d5d6afab6e6648f72a1c0efa1df4cd80bcd9..0be45309028b00a6957ee473322a9452a7fa7d67 100644
--- a/lib/internal/modules/run_main.js
+ +++ b/lib/internal/modules/run_main.js
@@ -13,6 +13,12 @@ const {
```
CWE-94
`CVSS:3.1/AV:L/AC:L/PR:L/UI:R/S:U/C:L/I:H/A:L`
CVE-2023-39956

Co-authored-by: k9ert <k9ert@gmx.de>
2023-09-19 13:48:22 +02:00
dependabot[bot]
ec2f3e5124
Chore(deps): Bump semver from 6.3.0 to 6.3.1 in /pyinstaller/electron (#2352)
Bumps [semver](https://github.com/npm/node-semver) from 6.3.0 to 6.3.1.
- [Release notes](https://github.com/npm/node-semver/releases)
- [Changelog](https://github.com/npm/node-semver/blob/v6.3.1/CHANGELOG.md)
- [Commits](https://github.com/npm/node-semver/compare/v6.3.0...v6.3.1)

---
updated-dependencies:
- dependency-name: semver
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: k9ert <k9ert@gmx.de>
2023-07-21 14:29:38 +02:00
k9ert
78fe940f73
remove SpecterUri (#2358) 2023-07-21 13:18:57 +02:00
Manolis Mandrapilias
e217ce7863
Feature: Implement automatic wallet import via Specter URI for MacOS (#2344)
* use prettier to reformat

* poc commit

* adding ids for button clicks

* implementing automatic wallet import

* add import if the app / specterd is already running

* change copy to wallet importer

* redirect to about page if there is no node connection
2023-06-29 16:20:31 +02:00
Manolis Mandrapilias
5928b220de
Chore: Use prettier for Electron app (#2347)
* prettify main.js

* change multisig address verification

* add package-lock to .gitignore
2023-06-28 11:58:40 +02:00
Manolis Mandrapilias
5e988626fd
Bugfix: replace deprecated new-window with setWindowOpenHandler (#2293)
Co-authored-by: k9ert <k9ert@gmx.de>
2023-03-15 12:16:15 +01:00
Manolis Mandrapilias
b004ca2e30
UIUX: Consistent use of "Settings" in Electron app and specterd args parsing (#2288)
* consistent usage of "settings" in menus

* simpler specterd cli args code

* Change cli args label to illustrate need of "=" sign

* Change headline in settings.html

---------

Co-authored-by: k9ert <k9ert@gmx.de>
2023-03-07 19:12:50 +01:00
Manolis Mandrapilias
10d84ddac7
Chore: Electron refactoring (#2270)
* use specter_dev dir in dev + change logic to determine dev mode

* SPECTER_DATA_FOLDER picked up in Electron to set dev folder

---------

Co-authored-by: k9ert <k9ert@gmx.de>
2023-03-02 18:58:00 +01:00
Manolis Mandrapilias
af1ddcf289
Bugfix: Specter app doesn't close after downloading (#2268)
* manual versionData setting in dev

* don't destroy progress bar if it had been closed
2023-02-28 17:06:06 +01:00
k9ert
09e6a4255e
Chore: shrink tor binaries (#2255)
* added linux and macOS binary. Created linux test

* add tor binaries for osx

* packaging of tor and now also win-binaries

* fix windows script

* fix windows reflection

* some chore

* remove torbrowser directory entirely

* mentioning limited usability

* improved writing

---------

Co-authored-by: moneymanolis <moneymanolis@protonmail.com>
2023-02-27 17:07:24 +01:00
Manolis Mandrapilias
ce8a614daf
Feature: Progress bar for download of Specter binary in Electron (#2257)
* adding electron-progressbar as dependency
* progress bar for download of specterd
2023-02-24 20:24:34 +01:00
OTK
a6acdca282
UIUX: Apply copy improvements & Electrum UX cleanup (#2237)
* Apply feedback revisions

* add favicon and fix wallet reveal triangle

* fix favicon

* fix favicon sizing

* fix tooltip width

* increase constract of message box

* fix explorer-link classes

* fix width of 500 exception

* fix web title

* missing classes for explorer links

---------

Co-authored-by: moneymanolis <moneymanolis@protonmail.com>
2023-02-22 19:25:03 +01:00
Manolis Mandrapilias
f19bbb2176
Bugfix: Specter icons not used for Electron binary (#2227) 2023-02-17 16:57:41 +01:00
OTK
89fc5649f3
Bugfix: Broken save button in Electron preferences (#2223) 2023-02-17 15:20:11 +01:00
Manolis Mandrapilias
72e151d434
UIUX: Several Electron improvements (#2222)
* several electrons improvements
* better specterd check
* copy fonts during build
* copy fonts during dev build
2023-02-17 14:34:03 +01:00
k9ert
10359ff358
UIUX: Making Splashscreen work in electron Appimage (#2219)
* Making Splashscreen work in electron Appimage and spinner reactive

* revert spinner logic

* fixing in settings as well

---------

Co-authored-by: Manolis Mandrapilias <70536101+moneymanolis@users.noreply.github.com>
2023-02-16 18:06:54 +01:00
OTK
66cf35fdd5
UIUX: Add Custom Specter Dock Icon (#2215)
* add custom icon

* remove unused icons for macos and linux

* fix tray icon for macos + rename to only Specter

* add menu items that respond to theme

* workaround for version parsing issue

* forgot prefix v

* Change tray icon on Mac if appearance changes

---------

Co-authored-by: moneymanolis <moneymanolis@protonmail.com>
Co-authored-by: Kim Neunert <k9ert@gmx.de>
2023-02-16 10:44:15 +01:00
Manolis Mandrapilias
c90e4525f8
Bugfix: Electron is stuck on launch (#2210)
* make hasSuccessfullyStarted work

* different keyword to check for + trying an svg as icon

* also change the system tray icon

---------

Co-authored-by: k9ert <k9ert@gmx.de>
2023-02-15 17:37:53 +01:00
k9ert
ef364ce1bc
Chore: refurbish release infrastructure (#2198)
* change release infra

* syntax error

* fix buildscript (hopefully)

* fix pip generation too

* fix build (hopefully)

* fix bloated sdid (mainly MANIFEST.in)

* adjust tests, remove importlib_meta

* fix dependency issue in release jobs

* fix tests and remove pytest.ini entirely

* fix install_noded script

* fix test

* fix tests

* stupid versioin parsing does not work!

* try to fix version guessing

* and again
2023-02-15 14:58:33 +01:00
OTK
26b596f3e9
UIUX: Style startup and preferences screen in Electron (#2194)
* feat:(startup) style startup and preferences
* feat:(tor) style tor screen
* add cursor pointer and remove redundant link

---------

Co-authored-by: moneymanolis <moneymanolis@protonmail.com>
2023-02-14 15:24:25 +01:00
k9ert
816726b935
Feature: Extension Framework upgrade incl. middleware, extensionsdependencies and -callbacks (#2186)
This PR brings the ability of having your own callbacks for extensions, depending on other extensions and callbacks now have a return_style either collect (default) or middleware
2023-02-11 11:21:31 +01:00
OTK
ec546797df
Design Revamp Patch List #2 (#2170)
* fix:(wallet) style export wallet popup

* fix:(quorum) fix selection highlight on selected devices for musig quorum

* fix:(sign) fix spacing between signing option buttons

* fix:(send) fix send screen unsigned transaction details

* fix:(pr) fix pr comment issues

* fix:(rescan) blockchain rescan breaks sidebar

* fix:(device) tooltip position in device selection

* fix:(usb) style usb device selector

* feat:(export) export to device styled

* fix:(scrollbars) fix colors of scrollbars

* fix:(tx) improve broadcast tx screen

* fix cypress tests

* fix:(export) fix export for musig qr and add styles for preferences

---------

Co-authored-by: Manolis Mandrapilias <70536101+moneymanolis@users.noreply.github.com>
Co-authored-by: k9ert <k9ert@gmx.de>
Co-authored-by: moneymanolis <moneymanolis@protonmail.com>
2023-02-09 08:48:18 +01:00
k9ert
eb7f094626
Chore: port uiux/fixes/release_process to master (#2114)
* upgrading python and electron/-builder

* python on top of focal based electron-builder #2118

* adding necessary python build dependencies
2023-02-03 13:37:40 +01:00
k9ert
e52daf5ba4
Chore: Bump http-cache-semantics in /pyinstaller/electron (#2162) (#2163)
Bumps [http-cache-semantics](https://github.com/kornelski/http-cache-semantics) from 4.1.0 to 4.1.1.
- [Release notes](https://github.com/kornelski/http-cache-semantics/releases)
- [Commits](https://github.com/kornelski/http-cache-semantics/compare/v4.1.0...v4.1.1)

---
updated-dependencies:
- dependency-name: http-cache-semantics
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-02-03 12:53:21 +01:00
Manolis Mandrapilias
2a487a83a7
Merge branch 'master' into design-revamp 2023-01-10 20:04:05 +01:00
dependabot[bot]
cb85062187
Chore: Bump json5 from 2.1.3 to 2.2.3 in /pyinstaller/electron (#2039)
Bumps [json5](https://github.com/json5/json5) from 2.1.3 to 2.2.3.
- [Release notes](https://github.com/json5/json5/releases)
- [Changelog](https://github.com/json5/json5/blob/main/CHANGELOG.md)
- [Commits](https://github.com/json5/json5/compare/v2.1.3...v2.2.3)

---
updated-dependencies:
- dependency-name: json5
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-01-10 19:50:22 +01:00
dependabot[bot]
c2db8b4f63
Chore: Bump minimatch from 3.0.4 to 3.1.2 in /pyinstaller/electron (#1965)
Bumps [minimatch](https://github.com/isaacs/minimatch) from 3.0.4 to 3.1.2.
- [Release notes](https://github.com/isaacs/minimatch/releases)
- [Commits](https://github.com/isaacs/minimatch/compare/v3.0.4...v3.1.2)

---
updated-dependencies:
- dependency-name: minimatch
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-01-10 19:38:29 +01:00
moneymanolis
fcc5ff46b7 bitcoin core info overlay 2023-01-03 19:02:59 +01:00
OTK
ab0245ca48
UIUX: Address labeling revamp (#1978)
Co-authored-by: moneymanolis <moneymanolis@protonmail.com>
2022-12-16 19:59:41 +01:00