shutu_client-bin
The package downloads a prebuilt binary .deb from static.shutu.cn, which is a CDN/static subdomain of the official shutu.cn domain (the project's own URL listed in the 'url' field). This is a standard pattern for vendors hosting release artifacts on a static subdomain. However, it is still a prebuilt binary blob with no source build, and the license is 'unknown'. The sha256sum is pinned, which mitigates substitution attacks. The main concern is that this is an opaque, closed-source binary being installed with setuid (chmod 4755 on chrome-sandbox, which is normal for Electron apps) from a Chinese vendor's CDN. The host is not unofficial or personal — it is the vendor's own static asset server — so this is closer to a legitimate vendor binary package than a supply-chain risk. The medium rating is marginally justified only because it is a closed-source prebuilt binary with unknown license, not because the host is suspicious.
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:14
source_x86_64=("https://static.shutu.cn/client/download/ShuTu-Linux-${pkgver}.deb")
llm_review
An AI model (anthropic/claude-4.6-sonnet-20260217) reviewed this and agrees it is MEDIUM (confidence 72%): The package downloads a prebuilt binary .deb from static.shutu.cn, which is a CDN/static subdomain of the official shutu.cn domain (the project's own URL listed in the 'url' field). This is a standard pattern for vendors hosting release artifacts on a static subdomain. However, it is still a prebuilt binary blob with no source build, and the license is 'unknown'. The sha256sum is pinned, which mitigates substitution attacks. The main concern is that this is an opaque, closed-source binary being installed with setuid (chmod 4755 on chrome-sandbox, which is normal for Electron apps) from a Chinese vendor's CDN. The host is not unofficial or personal — it is the vendor's own static asset server — so this is closer to a legitimate vendor binary package than a supply-chain risk. The medium rating is marginally justified only because it is a closed-source prebuilt binary with unknown license, not because the host is suspicious.
PKGBUILD
1 offending line(s) highlighted# Maintainer: KafCoppelia <k740677208@gmail.com>
pkgname=shutu_client-bin
pkgver=1.0.7
pkgrel=1
pkgdesc="A new generation of 'AI intelligence' mind map"
arch=('x86_64')
url="https://shutu.cn/"
license=('unknown')
conflicts=('shutu_client')
depends=('nss' 'gtk3' 'alsa-lib')
provides=('shutu_client')
source_x86_64=("https://static.shutu.cn/client/download/ShuTu-Linux-${pkgver}.deb")
sha256sums_x86_64=('923bd86ab825a23aa31e0b8aaf04f56a3fd427c23f8f78a6fe31b9cf1eae30f3')
prepare() {
cd "${srcdir}"
/usr/bin/ar p "ShuTu-Linux-${pkgver}.deb" data.tar.xz | bsdtar xf -
}
package() {
cd "${pkgdir}"
cp -R "${srcdir}/opt" "opt"
cp -R "${srcdir}/usr" "usr"
# Rename the Chinese directory
mv -f "opt/树图思维导图" "opt/shutu_client"
chmod 4755 "opt/shutu_client/chrome-sandbox"
# Modify the "Exec" but don't change the "Name"
sed -i 's/树图思维导图\//shutu_client\//g' "usr/share/applications/shutu_client.desktop"
mkdir -p "usr/bin"
ln -sf "/opt/shutu_client/shutu_client" "usr/bin/shutu"
ln -sf "/opt/shutu_client/shutu_client" "usr/bin/shutu_client"
}
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 |