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-09-17 00:27:14 | Medium | 2 |
| 2026-09-16 00:03:17 | Medium | 2 |
| 2026-09-15 00:25:31 | Medium | 2 |
| 2026-09-14 00:27:57 | Medium | 2 |
| 2026-09-13 00:19:54 | Medium | 2 |
| 2026-09-12 00:25:17 | Medium | 2 |
| 2026-09-11 00:19:22 | Medium | 2 |
| 2026-09-10 00:22:44 | Medium | 2 |
| 2026-09-09 00:04:09 | Medium | 2 |
| 2026-09-08 00:18:08 | Medium | 2 |
| 2026-09-07 00:30:15 | Medium | 2 |
| 2026-09-06 00:17:06 | Medium | 2 |
| 2026-09-05 00:16:27 | Medium | 2 |
| 2026-09-04 00:03:13 | Medium | 2 |
| 2026-09-03 00:15:47 | Medium | 2 |
| 2026-09-02 00:02:31 | Medium | 2 |
| 2026-09-01 00:11:19 | Medium | 2 |
| 2026-08-31 00:19:57 | Medium | 2 |
| 2026-08-30 00:04:14 | Medium | 2 |
| 2026-08-29 00:29:17 | Medium | 2 |