[GH-ISSUE #3437] hopper: vendor downloads accept redirects that leave HTTPS #1284

Open
opened 2026-10-16 21:03:45 +00:00 by bsakaguchi · 0 comments
Owner

Originally created by @GovinduSasanka on GitHub (Oct 14, 2026).
Original GitHub issue: https://github.com/morluto/rea/issues/3437

src/application/HopperDownload.ts fetches release metadata and packages from https://www.hopperapp.com, but fetch follows redirects with the default redirect: "follow", including HTTPS→HTTP. The "Hopper origin only" rule therefore applies only to the starting URL.

The impact is limited: Linux packages are checked against hard-coded SHA-1 values and lengths. On macOS, though, the expected SHA-1 comes from the same metadata response, so a downgraded metadata fetch would also control the checksum (codesign verification still applies).

Expected: refuse any response whose final URL is not HTTPS.

Related, not addressed here: the macOS app check verifies codesign --verify --deep --strict and the bundle ID but not the signing Team ID. Pinning the vendor's designated requirement would be stronger.

Reviewed at fa4b828. A PR follows.

Originally created by @GovinduSasanka on GitHub (Oct 14, 2026). Original GitHub issue: https://github.com/morluto/rea/issues/3437 `src/application/HopperDownload.ts` fetches release metadata and packages from `https://www.hopperapp.com`, but `fetch` follows redirects with the default `redirect: "follow"`, including HTTPS→HTTP. The "Hopper origin only" rule therefore applies only to the starting URL. The impact is limited: Linux packages are checked against hard-coded SHA-1 values and lengths. On macOS, though, the expected SHA-1 comes from the same metadata response, so a downgraded metadata fetch would also control the checksum (codesign verification still applies). **Expected:** refuse any response whose final URL is not HTTPS. Related, not addressed here: the macOS app check verifies `codesign --verify --deep --strict` and the bundle ID but not the signing Team ID. Pinning the vendor's designated requirement would be stronger. Reviewed at fa4b828. A PR follows.
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
morluto/rea#1284
No description provided.