zen-browser-twilight-bin
The package sets setuid permissions on bundled sandbox helper binaries (glxtest, vaapitest) during packaging, which triggers the rule, but this is a common practice for browser sandboxing and not inherently malicious.
Triggered rules
llm_review
The static rules flagged this MEDIUM, but an AI model (qwen/qwen3-235b-a22b-2507) reviewed the full PKGBUILD and judged it LOW (confidence 95%): The package sets setuid permissions on bundled sandbox helper binaries (glxtest, vaapitest) during packaging, which triggers the rule, but this is a common practice for browser sandboxing and not inherently malicious.
1 higher static finding superseded - not the current verdict (shown for transparency)
privileged_install
The package grants elevated privileges or installs an update path outside pacman: a /etc/sudoers.d rule (often passwordless), a setuid/setgid binary, or a self-update script/service that can fetch and run future code with no checksum verification. The initial install may be verified, but the ongoing privilege + update surface is a real supply-chain / privilege-escalation risk.
-
PKGBUILD:57
[[ -f "${pkgdir}${_installdir}/${_bin}" ]] && chmod 4755 "${pkgdir}${_installdir}/${_bin}"
PKGBUILD
1 offending line(s) highlighted# Maintainer: logan_reed <liulingzhang.work@icloud.com>
# Contributor: Filip Papaj <denuvo at tuta dot io>
_pkgname=zen-browser-twilight
pkgname=${_pkgname}-bin
pkgver=1.23t.20260914
pkgrel=1
pkgdesc='Zen Browser (Twilight Build) - Performance oriented Firefox-based web browser'
arch=('x86_64' 'aarch64')
url='https://zen-browser.app/'
license=('MPL-2.0')
depends=(
'dbus-glib'
'gtk3'
'libxt'
'mime-types'
'nss'
'ttf-font'
)
optdepends=(
'alsa-lib: ALSA audio backend'
'ffmpeg: H264/AAC/MP3 decoding'
'pulse-native-provider: PulseAudio/PipeWire audio backend'
'libnotify: Desktop notification support'
'networkmanager: Location detection via WiFi networks'
'speech-dispatcher: Text-to-Speech'
'hunspell-en_US: Spell checking, American English'
'xdg-desktop-portal: Screen sharing under Wayland'
)
provides=("zen-browser=$pkgver")
conflicts=('zen-browser' 'zen-browser-bin' 'zen-browser-git')
options=('!strip' '!debug')
install=${pkgname}.install
_gh='https://github.com/zen-browser/desktop/releases/download/twilight-1'
_installdir="/opt/${pkgname}"
source=("${_pkgname}.sh"
"${_pkgname}.desktop"
'policies.json')
source_x86_64=("zen.linux-x86_64-${pkgver}-${pkgrel}.tar.xz::https://github.com/zen-browser/desktop/releases/download/twilight-1/zen.linux-x86_64.tar.xz")
source_aarch64=("zen.linux-aarch64-${pkgver}-${pkgrel}.tar.xz::https://github.com/zen-browser/desktop/releases/download/twilight-1/zen.linux-aarch64.tar.xz")
b2sums=('bc733dba0aad89145425cf6e82a22379c1115b736f0938203e80d7e78f3e0f4c6a4c6abab0ceb36d5eecb009163b77d0b8f2145ffcf6b985a8f142f6fabaec6d'
'f75e803fa9da53ab9c263cc357f388de87137393fac90e86dfb528029de1434d887c2c25050ea167fbe9959d2eec11f81c85f28010126bd0c46884b59bb6ae41'
'f83302f32649f214d97f2cadf41d353d7d76fc3b50b6dabc6e25256dc52b7a98aed024a14a88966d0a4f18ee5546ad8f45b4de626aa6ed38c9f8e7a99ef151c3')
b2sums_x86_64=('7b537a7fb9ab61eeeeff3e5d2f9eaccbcaff3b1ebb7b6c12a97e5ec0c054c6e881089105c0778c45c634fc79aa36183223a9ea669ae7961f7f7b1ed01ae043bd')
b2sums_aarch64=('1eaf3ddc3fadf58d5a11d842a2c2d40af5ed971b2de38ea111cb134756bd44a9a2cd2567aa73aae8c6cb32cbe030d8e613f2785e23505989b5d781b66bf34f43')
package() {
# Browser files
install -d "${pkgdir}${_installdir}"
cp -a "${srcdir}/zen/." "${pkgdir}${_installdir}/"
# SUID sandbox helpers
local _suid_bins=(glxtest vaapitest)
for _bin in "${_suid_bins[@]}"; do
[[ -f "${pkgdir}${_installdir}/${_bin}" ]] && chmod 4755 "${pkgdir}${_installdir}/${_bin}"
done
# Launcher
install -Dm755 "${srcdir}/${_pkgname}.sh" "${pkgdir}/usr/bin/${_pkgname}"
# Desktop entry
install -Dm644 "${srcdir}/${_pkgname}.desktop" "${pkgdir}/usr/share/applications/${_pkgname}.desktop"
# Icons — symlink to bundled icons
local _i
for _i in 16 32 48 64 128; do
install -d "${pkgdir}/usr/share/icons/hicolor/${_i}x${_i}/apps"
ln -s "${_installdir}/browser/chrome/icons/default/default${_i}.png" \
"${pkgdir}/usr/share/icons/hicolor/${_i}x${_i}/apps/${_pkgname}.png"
done
# System dictionaries & hyphenation
ln -Ts /usr/share/hunspell "${pkgdir}${_installdir}/dictionaries"
ln -Ts /usr/share/hyphen "${pkgdir}${_installdir}/hyphenation"
# System certificates (use system NSS CKBI instead of bundled)
ln -sf /usr/lib/libnssckbi.so "${pkgdir}${_installdir}/libnssckbi.so"
# Policies — disable auto-update (managed via AUR)
install -Dm644 "${srcdir}/policies.json" "${pkgdir}${_installdir}/distribution/policies.json"
}
Changes since previous scan
--- PKGBUILD @ 2026-09-16 00:03+++ PKGBUILD @ 2026-09-17 00:27@@ -3,7 +3,7 @@ _pkgname=zen-browser-twilight pkgname=${_pkgname}-bin-pkgver=1.23t.20260911+pkgver=1.23t.20260914 pkgrel=1 pkgdesc='Zen Browser (Twilight Build) - Performance oriented Firefox-based web browser' arch=('x86_64' 'aarch64')@@ -43,8 +43,8 @@ b2sums=('bc733dba0aad89145425cf6e82a22379c1115b736f0938203e80d7e78f3e0f4c6a4c6abab0ceb36d5eecb009163b77d0b8f2145ffcf6b985a8f142f6fabaec6d' 'f75e803fa9da53ab9c263cc357f388de87137393fac90e86dfb528029de1434d887c2c25050ea167fbe9959d2eec11f81c85f28010126bd0c46884b59bb6ae41' 'f83302f32649f214d97f2cadf41d353d7d76fc3b50b6dabc6e25256dc52b7a98aed024a14a88966d0a4f18ee5546ad8f45b4de626aa6ed38c9f8e7a99ef151c3')-b2sums_x86_64=('6ebe471480258d322c6dec68f5803931898123f9ee16cf63ac022f9f7afd8223714cd00be09b797c639c50b5d2f3463baf775778779fa8f6ac12342d23ab9337')-b2sums_aarch64=('65e296e28497e6ab446e05f16669ccde94927c822608a13f74c65255755435c5f73f5f9a129a26ee9e1e828517df344ea051feccd4ec0571d3c7d34438df244a')+b2sums_x86_64=('7b537a7fb9ab61eeeeff3e5d2f9eaccbcaff3b1ebb7b6c12a97e5ec0c054c6e881089105c0778c45c634fc79aa36183223a9ea669ae7961f7f7b1ed01ae043bd')+b2sums_aarch64=('1eaf3ddc3fadf58d5a11d842a2c2d40af5ed971b2de38ea111cb134756bd44a9a2cd2567aa73aae8c6cb32cbe030d8e613f2785e23505989b5d781b66bf34f43') package() { # Browser filesScan history
| Scanned at (UTC) | Severity | Rules |
|---|---|---|
| 2026-09-17 00:27:14 | Low | 2 |
| 2026-09-16 11:22:36 | Medium | 1 |
| 2026-09-16 00:03:17 | Medium | 2 |
| 2026-09-15 00:25:31 | Medium | 2 |
| 2026-09-14 19:17:46 | Medium | 2 |
| 2026-09-14 00:27:57 | Medium | 2 |
| 2026-09-13 11:14:35 | Medium | 2 |
| 2026-09-13 00:19:54 | Medium | 2 |
| 2026-09-12 00:25:17 | Medium | 2 |
| 2026-09-11 03:21:42 | Medium | 2 |
| 2026-09-11 00:19:22 | Low | 2 |
| 2026-09-10 17:21:08 | Medium | 1 |
| 2026-09-10 03:20:13 | Medium | 2 |
| 2026-09-10 00:22:44 | Medium | 2 |
| 2026-09-09 17:19:54 | Medium | 2 |
| 2026-09-09 00:04:09 | Low | 2 |
| 2026-09-08 11:17:13 | Medium | 1 |
| 2026-09-08 00:18:08 | Low | 2 |
| 2026-09-07 11:14:32 | Medium | 1 |
| 2026-09-07 03:13:17 | Medium | 1 |