google-chrome-canary-bin
maintainer jhonforbes_2009
· 0 votes
· scanned 2026-08-03 00:08:14.047287
MEDIUM
View on AUR ↗
Why flagged
The package downloads a prebuilt Chrome binary from Google's official storage bucket, which is not in source=() and has no checksum verification, creating a supply-chain risk if the host were compromised or spoofed.
Triggered rules
MEDIUM
External download from an untrusted host, not in source=()
external_download_not_in_source
curl/wget fetches a URL on a non-allowlisted host that is not part of source=(), so it is not checksum-verified by makepkg.
-
PKGBUILD:51
curl -fsSL -A "Mozilla/5.0" -o chrome-linux64.zip "https://storage.googleapis.com/chrome-for-testing-public/${pkgver}/linux64/chrome-linux64.zip"
LOW
Few votes, recently uploaded
zero_votes_recent
Uploaded within the last 14 days with 2 or fewer community votes — little peer review so far.
MEDIUM
AI review
llm_review
An AI model (qwen/qwen3-235b-a22b-2507) reviewed this and agrees it is MEDIUM (confidence 90%): The package downloads a prebuilt Chrome binary from Google's official storage bucket, which is not in source=() and has no checksum verification, creating a supply-chain risk if the host were compromised or spoofed.
PKGBUILD
1 offending line(s) highlighted
1
# Maintainer: jhonforbes_2009 <hermanojhonforbes@hotmail.com>
2
pkgname=google-chrome-canary-bin
3
pkgver=152.0.7969.0
4
pkgrel=1
5
pkgdesc="The web browser from Google (Canary channel via Chrome for Testing)"
6
arch=('x86_64')
7
url="https://googlechromelabs.github.io/chrome-for-testing/"
8
license=('custom')
9
depends=('alsa-lib' 'at-spi2-core' 'cairo' 'dbus' 'expat' 'gcc-libs' 'gdk-pixbuf2' 'glib2' 'gtk3' 'libcups' 'libdrm' 'libx11' 'libxcb' 'libxcursor' 'libxcomposite' 'libxdamage' 'libxext' 'libxfixes' 'libxkbcommon' 'libxrandr' 'libxshmfence' 'libxtst' 'mesa' 'nss' 'nspr' 'pango' 'systemd-libs' 'util-linux-libs' 'xdg-utils' 'hicolor-icon-theme' 'ca-certificates' 'wget' 'libcurl-gnutls')
10
makedepends=('curl' 'grep')
11
optdepends=('pipewire: WebRTC desktop sharing under Wayland'
12
'wayland: for native Wayland support'
13
'vulkan-icd-loader: for Vulkan GPU acceleration'
14
'libglvnd: for OpenGL dispatch'
15
'libpulse: for PulseAudio audio backend'
16
'libsecret: for storing passwords'
17
'krb5: for Kerberos network authentication'
18
'libspeechd: for text-to-speech support'
19
'libva: for hardware video decoding (VA-API)'
20
'onnxruntime: for local AI model execution'
21
'apparmor: for additional process sandboxing'
22
'qt5-base: for using Qt5 file dialogs'
23
'qt6-base: for using Qt6 file dialogs'
24
'kdialog: for file dialogs in KDE'
25
'ttf-liberation: fix fonts for some PDFs'
26
'gnome-keyring: for storing passwords in GNOME keyring'
27
'gnome-control-center: for default browser settings in GNOME')
28
options=('!emptydirs' '!strip' '!zipman')
29
source=()
30
sha256sums=()
31
32
pkgver() {
33
# MÉTODO 1: API JSON de Chrome for Testing (con grep)
34
_ver=$(curl -fsSL -A "Mozilla/5.0" "https://googlechromelabs.github.io/chrome-for-testing/last-known-good-versions.json" | grep -oP '"Canary": \{[^}]*"version": "\K[^"]+' || true)
35
36
# MÉTODO 2 (FALLBACK): Si la API JSON falla, leer la API de Chromium Dash
37
if [[ -z "$_ver" ]]; then
38
_ver=$(curl -fsSL -A "Mozilla/5.0" "https://chromiumdash.appspot.com/fetch_releases?channel=Canary&platform=Linux" | grep -oP '"version": "\K[^"]+' | head -1 || true)
39
fi
40
41
# Si ambas fallan, usar la versión real hardcodeada en el PKGBUILD
42
if [[ -z "$_ver" ]]; then
43
_ver="$pkgver"
44
fi
45
46
echo "$_ver"
47
}
48
49
prepare() {
50
cd "$srcdir"
51
curl -fsSL -A "Mozilla/5.0" -o chrome-linux64.zip "https://storage.googleapis.com/chrome-for-testing-public/${pkgver}/linux64/chrome-linux64.zip"
52
bsdtar -xf chrome-linux64.zip
53
}
54
55
package() {
56
mkdir -p "$pkgdir/opt/google/chrome-canary" "$pkgdir/usr/bin" "$pkgdir/usr/share/applications" "$pkgdir/usr/share/icons/hicolor"
57
cp -a "$srcdir/chrome-linux64/." "$pkgdir/opt/google/chrome-canary/"
58
59
find "$pkgdir/opt/google/chrome-canary/" -name "product_logo_*.png" | while read -r img; do
60
size=$(basename "$img" | grep -oP '\d+')
61
if [[ -n "$size" ]]; then
62
install -Dm644 "$img" "$pkgdir/usr/share/icons/hicolor/${size}x${size}/apps/google-chrome-canary.png"
63
fi
64
done
65
66
ln -s /opt/google/chrome-canary/chrome "$pkgdir/usr/bin/google-chrome-canary"
67
68
cat > "$pkgdir/usr/share/applications/google-chrome-canary.desktop" <<EOF
69
[Desktop Entry]
70
Version=1.0
71
Name=Google Chrome Canary
72
Exec=/usr/bin/google-chrome-canary %U
73
Terminal=false
74
Icon=google-chrome-canary
75
Type=Application
76
Categories=Network;WebBrowser;
77
MimeType=text/html;text/xml;application/xhtml_xml;image/webp;x-scheme-handler/http;x-scheme-handler/https;x-scheme-handler/ftp;
78
Actions=new-window;new-private-window;
79
80
[Desktop Action new-window]
81
Name=New Window
82
Exec=/usr/bin/google-chrome-canary
83
84
[Desktop Action new-private-window]
85
Name=New Incognito Window
86
Exec=/usr/bin/google-chrome-canary --incognito
87
EOF
88
}
89
Changes since previous scan
--- PKGBUILD @ 2026-07-24 15:27+++ PKGBUILD @ 2026-08-03 00:08@@ -7,6 +7,7 @@ url="https://googlechromelabs.github.io/chrome-for-testing/" license=('custom') depends=('alsa-lib' 'at-spi2-core' 'cairo' 'dbus' 'expat' 'gcc-libs' 'gdk-pixbuf2' 'glib2' 'gtk3' 'libcups' 'libdrm' 'libx11' 'libxcb' 'libxcursor' 'libxcomposite' 'libxdamage' 'libxext' 'libxfixes' 'libxkbcommon' 'libxrandr' 'libxshmfence' 'libxtst' 'mesa' 'nss' 'nspr' 'pango' 'systemd-libs' 'util-linux-libs' 'xdg-utils' 'hicolor-icon-theme' 'ca-certificates' 'wget' 'libcurl-gnutls')+makedepends=('curl' 'grep') optdepends=('pipewire: WebRTC desktop sharing under Wayland' 'wayland: for native Wayland support' 'vulkan-icd-loader: for Vulkan GPU acceleration'@@ -24,17 +25,22 @@ 'ttf-liberation: fix fonts for some PDFs' 'gnome-keyring: for storing passwords in GNOME keyring' 'gnome-control-center: for default browser settings in GNOME')-provides=('google-chrome-canary' 'google-chrome')-conflicts=('google-chrome-canary' 'google-chrome') options=('!emptydirs' '!strip' '!zipman') source=() sha256sums=() pkgver() {- _ver=$(curl -fsSL "https://googlechromelabs.github.io/chrome-for-testing/last-known-good-versions.json" | grep -oP '"Canary": \{[^}]*"version": "\K[^"]+' | head -1)+ # MÉTODO 1: API JSON de Chrome for Testing (con grep)+ _ver=$(curl -fsSL -A "Mozilla/5.0" "https://googlechromelabs.github.io/chrome-for-testing/last-known-good-versions.json" | grep -oP '"Canary": \{[^}]*"version": "\K[^"]+' || true) + # MÉTODO 2 (FALLBACK): Si la API JSON falla, leer la API de Chromium Dash if [[ -z "$_ver" ]]; then- _ver=$(curl -fsSL "https://chromiumdash.appspot.com/fetch_releases?channel=Canary&platform=Linux" | grep -oP '"version": "\K[^"]+' | head -1)+ _ver=$(curl -fsSL -A "Mozilla/5.0" "https://chromiumdash.appspot.com/fetch_releases?channel=Canary&platform=Linux" | grep -oP '"version": "\K[^"]+' | head -1 || true)+ fi+ + # Si ambas fallan, usar la versión real hardcodeada en el PKGBUILD+ if [[ -z "$_ver" ]]; then+ _ver="$pkgver" fi echo "$_ver"@@ -42,8 +48,7 @@ prepare() { cd "$srcdir"- _url="https://storage.googleapis.com/chrome-for-testing-public/${pkgver}/linux64/chrome-linux64.zip"- curl -fsSL -A "Mozilla/5.0" -o chrome-linux64.zip "$_url"+ curl -fsSL -A "Mozilla/5.0" -o chrome-linux64.zip "https://storage.googleapis.com/chrome-for-testing-public/${pkgver}/linux64/chrome-linux64.zip" bsdtar -xf chrome-linux64.zip } Scan history
| Scanned at (UTC) | Severity | Rules |
|---|---|---|
| 2026-08-03 00:08:14 | MEDIUM | 3 |
| 2026-08-02 00:16:08 | MEDIUM | 3 |
| 2026-08-01 00:11:18 | MEDIUM | 3 |
| 2026-07-31 00:14:10 | MEDIUM | 3 |
| 2026-07-30 00:17:23 | MEDIUM | 3 |
| 2026-07-29 00:25:53 | MEDIUM | 3 |
| 2026-07-28 00:07:28 | MEDIUM | 3 |
| 2026-07-27 00:24:32 | MEDIUM | 3 |
| 2026-07-26 00:07:32 | MEDIUM | 3 |
| 2026-07-25 00:13:44 | MEDIUM | 3 |
| 2026-07-24 17:28:09 | MEDIUM | 3 |
| 2026-07-24 15:27:57 | LOW | 2 |
| 2026-07-24 13:27:52 | LOW | 2 |
| 2026-07-24 09:27:42 | LOW | 1 |
| 2026-07-24 05:27:22 | LOW | 1 |
| 2026-07-24 03:27:03 | LOW | 1 |
| 2026-07-24 00:02:28 | CLEAN | 2 |
| 2026-07-23 23:26:18 | LOW | 1 |