asmcli
The PKGBUILD downloads a prebuilt shell script (or binary) named 'asmcli_1.16' from a Google Cloud Storage bucket (storage.googleapis.com/csm-artifacts/asm/). While GCS is Google infrastructure, this is not the project's GitHub releases page — it is a GCS bucket that could in principle be misconfigured or have its contents replaced without a corresponding GitHub release. The artifact is installed directly as an executable at /usr/bin/asmcli with mode 755. A sha256sum is provided, which mitigates the risk of in-transit substitution, but does not protect against the upstream bucket serving a malicious artifact in the first place. Checking the official Google ASM documentation confirms that storage.googleapis.com/csm-artifacts/asm/ is indeed the canonical distribution point for asmcli (Google explicitly documents 'curl https://storage.googleapis.com/csm-artifacts/asm/asmcli_1.x > asmcli' as the install method), making this a legitimate official host rather than a personal or unofficial mirror. However, it remains a prebuilt executable from a non-GitHub-releases host with no source build, which is a genuine supply-chain concern even if it matches Google's documented install method. The medium rating is appropriate: it is not clearly malicious, but it is an executed binary from a cloud bucket rather than a source build or a verifiable GitHub release artifact.
Triggered rules
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:15
source=("asmcli-${downloadver}"::"https://storage.googleapis.com/csm-artifacts/asm/asmcli_${downloadver}")
llm_review
An AI model (anthropic/claude-4.6-sonnet-20260217) reviewed this and agrees it is MEDIUM (confidence 82%): The PKGBUILD downloads a prebuilt shell script (or binary) named 'asmcli_1.16' from a Google Cloud Storage bucket (storage.googleapis.com/csm-artifacts/asm/). While GCS is Google infrastructure, this is not the project's GitHub releases page — it is a GCS bucket that could in principle be misconfigured or have its contents replaced without a corresponding GitHub release. The artifact is installed directly as an executable at /usr/bin/asmcli with mode 755. A sha256sum is provided, which mitigates the risk of in-transit substitution, but does not protect against the upstream bucket serving a malicious artifact in the first place. Checking the official Google ASM documentation confirms that storage.googleapis.com/csm-artifacts/asm/ is indeed the canonical distribution point for asmcli (Google explicitly documents 'curl https://storage.googleapis.com/csm-artifacts/asm/asmcli_1.x > asmcli' as the install method), making this a legitimate official host rather than a personal or unofficial mirror. However, it remains a prebuilt executable from a non-GitHub-releases host with no source build, which is a genuine supply-chain concern even if it matches Google's documented install method. The medium rating is appropriate: it is not clearly malicious, but it is an executed binary from a cloud bucket rather than a source build or a verifiable GitHub release artifact.
PKGBUILD
1 offending line(s) highlighted# Maintainer: p4ck3t0 <aur@p4ck3t0.de>
pkgname=asmcli
pkgver=1.16.2
downloadver=1.16
pkgrel=1
pkgdesc="Anthos Service Mesh command line interface, to install and manage an Anthos Service Mesh."
arch=('x86_64' 'aarch64' 'arm' 'armv6h' 'armv7h')
url='https://github.com/GoogleCloudPlatform/anthos-service-mesh-packages'
license=('Apache 2.0')
provides=('asmcli')
depends=('kpt')
sha256sums=('c90e2dc207b7c0646aba3c06a9dbab0122c0358c14b85d7c5e337eed811884d8')
source=("asmcli-${downloadver}"::"https://storage.googleapis.com/csm-artifacts/asm/asmcli_${downloadver}")
package() {
install -Dm 755 "${srcdir}/asmcli-${downloadver}" "${pkgdir}/usr/bin/asmcli"
}
Scan history
| Scanned at (UTC) | Severity | Rules |
|---|---|---|
| 2026-11-01 00:21:48 | Medium | 2 |
| 2026-10-31 00:07:41 | Medium | 2 |
| 2026-10-30 00:29:30 | Medium | 2 |
| 2026-10-29 00:13:55 | Medium | 2 |
| 2026-10-28 00:06:54 | Medium | 2 |
| 2026-10-27 00:23:28 | Medium | 2 |
| 2026-10-26 00:12:40 | Medium | 2 |
| 2026-10-25 00:20:48 | Medium | 2 |
| 2026-10-24 00:14:55 | Medium | 2 |
| 2026-10-23 00:02:19 | Medium | 2 |
| 2026-10-22 00:13:10 | Medium | 2 |
| 2026-10-21 00:12:50 | Medium | 2 |
| 2026-10-20 00:10:31 | Medium | 2 |
| 2026-10-19 00:03:55 | Medium | 2 |
| 2026-10-18 00:06:55 | Medium | 2 |
| 2026-10-17 00:21:55 | Medium | 2 |
| 2026-10-16 00:12:47 | Medium | 2 |
| 2026-10-15 00:28:05 | Medium | 2 |
| 2026-10-14 00:06:47 | Medium | 2 |
| 2026-10-13 00:23:45 | Medium | 2 |