Zen browser security updates depend on the BOS repo #41
Labels
No labels
P0
P1
P2
P3
audio
bakery
boot
breadbug
bug
build
ci
dependencies
design
disk
docs
encryption
final
firewall
graphics
hardware
idle
installer
keybinds
nvidia
packages
phase-1
polish
recovery
reliability
reproducibility
secure-boot
security
shell
signing
snapshots
supply-chain
swap
tech-debt
theming
ux
website
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
Breadway/bos#41
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Problem
zen-browser-bincomes only from[breadway](scripts/ci-publish-signed-repo.shline 21). Browser security fixes wait on the BOS republish job. There's also no PKGBUILD for it underpackaging/, unlike the other republished packages.Fix
Add
packaging/zen-browser-binwith pinned sha256s and an automated upstream-release watcher, so a new Zen release opens a PR or auto-builds within hours. Or default to Firefox from[extra]and make Zen opt-in.Acceptance
There's a documented maximum lag between a Zen release and
[breadway], with automation behind it.Source: BOS v0.6.2 source review (tag dated 2026-09-19); line numbers refer to that tree. Read AGENTS.md first. One issue per branch/PR.
Implemented in PR #69: #69. Adds a SHA-256-pinned
zen-browser-binPKGBUILD, a six-hour watcher that builds/publishes newer stable releases when[breadway]is behind, and documents the intended release-to-repo lag. Verified the package build from the official 1.22.3b Linux archive and ran the watcher against the upstream release feed and live repo database.Acceptance mapping: I read BOS-41 as requiring (1) an in-house Zen package with a SHA-256 pin and (2) an automated upstream watcher with a documented release-to-[breadway] maximum lag. The six-hour schedule and lag documentation satisfy criterion 2 (.forgejo/workflows/zen-browser.yml:5-8; docs/signed-repo.md:97-107). Criterion 1 is incomplete for automatically published future releases:
Rework on the existing branch feature/bos-41-zen-browser. Keep PR #69 open and do not open a second PR for this key. CI has no statuses for this PR, and the PR is mergeable.
Reworked the security issue on the existing PR #69 branch, without opening another PR. The watcher now obtains the Linux asset's
sha256:digest from GitHub's Release Asset API and rejects missing, malformed, or mismatched digests before building. GitHub's API reports 1.22.3b digest0aaee1b3f67f074aebf7fc6c2fe824441bcafd431e9991336479c16370519dd0; the integrity regression accepted that release archive and rejected a one-byte-modified copy. The end-to-end watcher andmakepkgbuild also passed using the API digest. PR #69 remains open, mergeable, and based on current main. No CI statuses are reported.Re-review at head
c846664013: PASS, ready for merge review.Acceptance mapping:
digestfield and validates it before makepkg receives the expected digest (scripts/ci-build-latest-zen-browser.sh:24-29, 64-73). This metadata digest is obtained from the API response, independently of the downloaded archive bytes; the verifier compares the two at scripts/ci-verify-zen-release-asset.sh:20-23. Missing API data fails thejq -eassignment underset -e; malformed format is rejected at lines 25-27; mismatch is rejected at verifier lines 21-23.The altered-archive regression is behavior-based: scripts/test-ci-verify-zen-release-asset.sh:16-35 verifies a matching archive, flips one byte, then fails if the modified archive is accepted. I ran that regression logic with a synthetic accepted fixture and confirmed it rejects the one-byte mutation. The real GitHub asset run could not be repeated from this environment because DNS resolution for github.com is unavailable; the implementation report records a successful run against the official 1.22.3b asset. Missing, malformed, and wrong-algorithm digest inputs were rejected in a local verifier check.
Forgejo reports no CI statuses for this PR, consistent with BOS AGENTS.md's note that ordinary PRs do not run CI. PR #69 is open and mergeable. BOS is release-sensitive, so I am leaving the PR unmerged and BOS-41 in REVIEW for the authorized maintainer to land.
Independent re-review passed at the updated head. PR #69 was merged as
6f323f9f72ae5313cd022f3e71f5a417e66cdf96. The reviewer confirmed GitHub's Release Asset API digest is compared independently with the archive bytes and missing, malformed, and mismatched digests fail closed. The pinned-asset mutation test passed per implementer evidence; no CI statuses are configured for this BOS PR.