Commit 85f92c0
security: pin MASShortcut, confirm URL tasks, harden config auto-load (#1765)
Addresses three issues identified in a source-level security audit
(see SECURITY_AUDIT.md for the full report):
1. [High] MASShortcut SPM dependency was pinned to `branch = master`,
meaning every build pulled the latest tip with no review gate. Pin
to the current HEAD revision SHA so future upstream changes require
an explicit bump.
2. [Medium] `rectangle://execute-task=ignore-app/unignore-app` URL
actions silently mutated the disabled-apps defaults when triggered
from outside Rectangle (e.g. a web page). Require an NSAlert
confirmation, surfacing the bundle-id, unless Rectangle itself is
frontmost.
3. [Medium] `Config.loadFromSupportDir()` silently auto-loaded any
RectangleConfig.json dropped in Application Support on launch. Add
a confirmation prompt, reject symlinks and world-writable files,
and apply a 1 MiB size cap to the loader (defense against OOM via
giant config).
Also includes SECURITY_AUDIT.md documenting the full review, including
confirmation that the app contains no telemetry, analytics, or crash
reporting and that the only outbound network channel is the
EdDSA-signed Sparkle update feed.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>1 parent 6aa825f commit 85f92c0
4 files changed
Lines changed: 383 additions & 6 deletions
File tree
- Rectangle.xcodeproj
- Rectangle
- PrefsWindow
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1519 | 1519 | | |
1520 | 1520 | | |
1521 | 1521 | | |
1522 | | - | |
1523 | | - | |
| 1522 | + | |
| 1523 | + | |
1524 | 1524 | | |
1525 | 1525 | | |
1526 | 1526 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
644 | 644 | | |
645 | 645 | | |
646 | 646 | | |
| 647 | + | |
| 648 | + | |
| 649 | + | |
| 650 | + | |
| 651 | + | |
| 652 | + | |
| 653 | + | |
| 654 | + | |
| 655 | + | |
| 656 | + | |
| 657 | + | |
| 658 | + | |
| 659 | + | |
| 660 | + | |
| 661 | + | |
| 662 | + | |
| 663 | + | |
| 664 | + | |
| 665 | + | |
| 666 | + | |
647 | 667 | | |
648 | 668 | | |
649 | 669 | | |
| |||
659 | 679 | | |
660 | 680 | | |
661 | 681 | | |
662 | | - | |
| 682 | + | |
| 683 | + | |
663 | 684 | | |
664 | 685 | | |
665 | 686 | | |
666 | | - | |
| 687 | + | |
| 688 | + | |
667 | 689 | | |
668 | 690 | | |
669 | 691 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
62 | 62 | | |
63 | 63 | | |
64 | 64 | | |
| 65 | + | |
| 66 | + | |
| 67 | + | |
| 68 | + | |
| 69 | + | |
| 70 | + | |
| 71 | + | |
65 | 72 | | |
66 | 73 | | |
67 | 74 | | |
| |||
95 | 102 | | |
96 | 103 | | |
97 | 104 | | |
| 105 | + | |
| 106 | + | |
| 107 | + | |
| 108 | + | |
| 109 | + | |
| 110 | + | |
| 111 | + | |
| 112 | + | |
| 113 | + | |
| 114 | + | |
| 115 | + | |
| 116 | + | |
| 117 | + | |
| 118 | + | |
| 119 | + | |
| 120 | + | |
| 121 | + | |
| 122 | + | |
| 123 | + | |
| 124 | + | |
| 125 | + | |
| 126 | + | |
| 127 | + | |
| 128 | + | |
| 129 | + | |
| 130 | + | |
| 131 | + | |
| 132 | + | |
| 133 | + | |
| 134 | + | |
| 135 | + | |
| 136 | + | |
| 137 | + | |
| 138 | + | |
| 139 | + | |
| 140 | + | |
| 141 | + | |
| 142 | + | |
| 143 | + | |
| 144 | + | |
| 145 | + | |
98 | 146 | | |
99 | 147 | | |
100 | 148 | | |
101 | 149 | | |
102 | | - | |
| 150 | + | |
103 | 151 | | |
104 | 152 | | |
105 | | - | |
| 153 | + | |
106 | 154 | | |
107 | 155 | | |
108 | 156 | | |
| |||
0 commit comments