claude-code-stable-bin
maintainer theorangeguo
· 1 votes
· scanned 2026-08-03 00:08:14.047287
MEDIUM
View on AUR ↗
Why flagged
The package downloads a prebuilt binary from a non-standard, non-whitelisted host (Google Cloud Storage bucket) which could be silently swapped, posing a supply-chain risk despite otherwise legitimate packaging.
Triggered rules
MEDIUM
source=() URL on a non-standard host
source_untrusted_domain
One or more source=() URLs point to a host outside the trusted allowlist (github.com, gitlab.com, codeberg.org, pypi.org, …).
-
PKGBUILD:23
source_x86_64=(claude-code-stable-bin-2.1.205-x86_64::https://storage.googleapis.com/claude-code-dist-86c565f3-f756-42ad-8dfa-d59b1c096819/claude-code-releases/2.1.205/linux-x64/claude )
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 binary from a non-standard, non-whitelisted host (Google Cloud Storage bucket) which could be silently swapped, posing a supply-chain risk despite otherwise legitimate packaging.
PKGBUILD
1 offending line(s) highlighted
1
# Maintainer: theorangeguo
2
# Packaging Repo: https://github.com/theorangeguo/aur-packages/tree/main/packages/claude-code-stable-bin
3
pkgname=claude-code-stable-bin
4
pkgver=2.1.205
5
pkgrel=1
6
pkgdesc=Claude\ Code\ terminal-based\ AI\ coding\ assistant\ \(stable\ channel\)
7
arch=(x86_64 )
8
url=https://github.com/anthropics/claude-code
9
license=(LicenseRef-claude-code )
10
depends=(bash glibc )
11
makedepends=()
12
checkdepends=()
13
optdepends=(git:\ allow\ Claude\ Code\ to\ use\ git github-cli:\ interact\ with\ GitHub glab:\ interact\ with\ GitLab ripgrep:\ use\ system\ ripgrep\ if\ bundled\ search\ is\ disabled )
14
options=(\!strip )
15
provides=(claude-code claude-code-stable )
16
conflicts=(claude-code claude-code-bin claude-code-stable claude-code-latest claude-code-latest-bin )
17
validpgpkeys=()
18
install=claude-code-stable-bin.install
19
source=(claude-wrapper LICENSE.md::https://raw.githubusercontent.com/anthropics/claude-code/v2.1.205/LICENSE.md )
20
sha256sums=('91374907d431d091be80078090fb30dfb6e341b68f6dc73b74a4d9ffbf93a354'
21
'728158fd1037143fad6907e8fa34804177e598b7326519503fe83cafdef849e6')
22
sha256sums_x86_64=('dd8734c0b6a503fe1d17425184e57b397c30bb0337a33f1470d9985febfe5b09')
23
source_x86_64=(claude-code-stable-bin-2.1.205-x86_64::https://storage.googleapis.com/claude-code-dist-86c565f3-f756-42ad-8dfa-d59b1c096819/claude-code-releases/2.1.205/linux-x64/claude )
24
25
_binary_source_path=claude-code-stable-bin-2.1.205-x86_64
26
_install_bin_path=/usr/lib/claude-code-stable-bin/claude
27
_wrapper_source_path=claude-wrapper
28
_wrapper_install_path=/usr/bin/claude
29
_wrapper_mode=755
30
_service_file=''
31
_service_install_path=''
32
_doc_files=()
33
_license_files=(LICENSE.md )
34
35
36
package() {
37
_resolve_required_source_file() {
38
local pattern=$1
39
local matches=()
40
local nullglob_was_set=false
41
42
shopt -q nullglob && nullglob_was_set=true
43
shopt -s nullglob
44
matches=("${srcdir}"/$pattern)
45
[ "$nullglob_was_set" = true ] || shopt -u nullglob
46
47
if [ "${#matches[@]}" -ne 1 ]; then
48
printf 'Expected exactly one source match for pattern %s, found %s\n' "$pattern" "${#matches[@]}" >&2
49
return 1
50
fi
51
52
[ -f "${matches[0]}" ] || {
53
printf 'Matched source is not a file: %s\n' "${matches[0]}" >&2
54
return 1
55
}
56
57
printf '%s\n' "${matches[0]}"
58
}
59
60
_install_optional_source_files() {
61
local pattern=$1
62
local target_dir=$2
63
local mode=$3
64
local matches=()
65
local matched_file
66
local nullglob_was_set=false
67
68
shopt -q nullglob && nullglob_was_set=true
69
shopt -s nullglob
70
matches=("${srcdir}"/$pattern)
71
[ "$nullglob_was_set" = true ] || shopt -u nullglob
72
73
for matched_file in "${matches[@]}"; do
74
[ -f "$matched_file" ] || continue
75
install -Dm"$mode" "$matched_file" "${pkgdir}${target_dir}/$(basename "$matched_file")"
76
done
77
}
78
79
local binary_source_file
80
binary_source_file=$(_resolve_required_source_file "${_binary_source_path}")
81
install -Dm755 "$binary_source_file" "${pkgdir}${_install_bin_path}"
82
83
if [ -n "${_wrapper_source_path}" ] && [ -n "${_wrapper_install_path}" ]; then
84
local wrapper_source_file
85
wrapper_source_file=$(_resolve_required_source_file "${_wrapper_source_path}")
86
install -Dm${_wrapper_mode} "$wrapper_source_file" "${pkgdir}${_wrapper_install_path}"
87
fi
88
89
local doc_file
90
for doc_file in "${_doc_files[@]}"; do
91
_install_optional_source_files "$doc_file" "/usr/share/doc/${pkgname}" 644
92
done
93
94
local license_file
95
for license_file in "${_license_files[@]}"; do
96
_install_optional_source_files "$license_file" "/usr/share/licenses/${pkgname}" 644
97
done
98
99
if [ -n "${_service_file}" ] && [ -f "${srcdir}/${_service_file}" ]; then
100
install -Dm644 "${srcdir}/${_service_file}" "${pkgdir}${_service_install_path}"
101
fi
102
}
103
Changes since previous scan
--- PKGBUILD @ 2026-07-17 00:06+++ PKGBUILD @ 2026-08-03 00:08@@ -1,7 +1,7 @@ # Maintainer: theorangeguo # Packaging Repo: https://github.com/theorangeguo/aur-packages/tree/main/packages/claude-code-stable-bin pkgname=claude-code-stable-bin-pkgver=2.1.204+pkgver=2.1.205 pkgrel=1 pkgdesc=Claude\ Code\ terminal-based\ AI\ coding\ assistant\ \(stable\ channel\) arch=(x86_64 )@@ -16,13 +16,13 @@ conflicts=(claude-code claude-code-bin claude-code-stable claude-code-latest claude-code-latest-bin ) validpgpkeys=() install=claude-code-stable-bin.install-source=(claude-wrapper LICENSE.md::https://raw.githubusercontent.com/anthropics/claude-code/v2.1.204/LICENSE.md )+source=(claude-wrapper LICENSE.md::https://raw.githubusercontent.com/anthropics/claude-code/v2.1.205/LICENSE.md ) sha256sums=('91374907d431d091be80078090fb30dfb6e341b68f6dc73b74a4d9ffbf93a354' '728158fd1037143fad6907e8fa34804177e598b7326519503fe83cafdef849e6')-sha256sums_x86_64=('c8ee1ea69154533c691a68f46abb645196fe7339d26e6fc204cc7f08220139d3')-source_x86_64=(claude-code-stable-bin-2.1.204-x86_64::https://storage.googleapis.com/claude-code-dist-86c565f3-f756-42ad-8dfa-d59b1c096819/claude-code-releases/2.1.204/linux-x64/claude )+sha256sums_x86_64=('dd8734c0b6a503fe1d17425184e57b397c30bb0337a33f1470d9985febfe5b09')+source_x86_64=(claude-code-stable-bin-2.1.205-x86_64::https://storage.googleapis.com/claude-code-dist-86c565f3-f756-42ad-8dfa-d59b1c096819/claude-code-releases/2.1.205/linux-x64/claude ) -_binary_source_path=claude-code-stable-bin-2.1.204-x86_64+_binary_source_path=claude-code-stable-bin-2.1.205-x86_64 _install_bin_path=/usr/lib/claude-code-stable-bin/claude _wrapper_source_path=claude-wrapper _wrapper_install_path=/usr/bin/claudeScan history
| Scanned at (UTC) | Severity | Rules |
|---|---|---|
| 2026-08-03 00:08:14 | MEDIUM | 2 |
| 2026-08-02 00:16:08 | MEDIUM | 2 |
| 2026-08-01 00:11:18 | MEDIUM | 2 |
| 2026-07-31 00:14:10 | MEDIUM | 2 |
| 2026-07-30 00:17:23 | MEDIUM | 2 |
| 2026-07-29 00:25:53 | MEDIUM | 2 |
| 2026-07-28 00:07:28 | MEDIUM | 2 |
| 2026-07-27 00:24:32 | MEDIUM | 2 |
| 2026-07-26 00:07:32 | MEDIUM | 2 |
| 2026-07-25 00:13:44 | MEDIUM | 2 |
| 2026-07-24 00:02:28 | MEDIUM | 2 |
| 2026-07-23 00:14:47 | MEDIUM | 2 |
| 2026-07-22 00:29:32 | MEDIUM | 2 |
| 2026-07-21 00:24:15 | MEDIUM | 2 |
| 2026-07-20 00:19:49 | MEDIUM | 2 |
| 2026-07-19 00:17:08 | MEDIUM | 2 |
| 2026-07-18 00:14:48 | MEDIUM | 2 |
| 2026-07-17 03:53:53 | MEDIUM | 2 |
| 2026-07-17 00:06:16 | LOW | 2 |
| 2026-07-16 03:50:18 | MEDIUM | 1 |