deepin-wine-ecloud
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:28
"${pkgname}-${pkgver}.deb::https://mirrors.sdu.edu.cn/spark-store/store/network/${_sparkname}/${_sparkname}_${pkgver}_all.deb"
llm_review
An AI model (anthropic/claude-4.6-sonnet-20260217) reviewed this and agrees it is MEDIUM (confidence 72%): This PKGBUILD downloads a prebuilt .deb package from mirrors.sdu.edu.cn (Shandong University mirror), which hosts the Spark Store repository. The .deb contains a files.7z archive with a Windows application to be run under deepin-wine8. The mirror is a Chinese university mirror that redistributes Spark Store packages, not the official upstream release infrastructure (cloud.189.cn). While Spark Store mirrors at Chinese universities are commonly used in this ecosystem of deepin-wine AUR packages, the source is still a third-party repackaged binary (Spark Store repackages Windows apps for deepin-wine), not the official vendor release. The package installs an executed binary/wine application from this non-official host. The sha256sum is pinned, which mitigates MITM risk but not a compromised host serving a malicious package at the same hash. This is a genuine medium-severity supply-chain concern: a prebuilt executable payload sourced from a non-official third-party host (Spark Store via a university mirror), not the official vendor. This pattern is consistent with many similar deepin-wine AUR packages and is not clearly malicious, but the risk is real.
PKGBUILD
1 offending line(s) highlighted# Maintainer: zxp19821005 <zxp19821005 at 163 dot com>
_appname=eCloud
_officalname=ecloud
pkgname="deepin-wine-${_officalname}"
pkgver=6.6.0spark10
_sparkname=cn.189.cloud.spark
pkgrel=1
pkgdesc="China Telecom eCloud Client on Deepin Wine6.天翼云盘客户端,文件云端存储,从此抛弃U盘,文件自动同步,便捷上传下载."
arch=("x86_64")
url="https://cloud.189.cn/"
license=('LicenseRef-freeware')
depends=(
'deepin-wine8-stable'
'spark-dwine-helper'
'xdg-utils'
)
optdepends=(
'wqy-microhei'
'wqy-zenhei'
)
makedepends=(
'p7zip'
)
conflicts=()
provides=("${_officalname}")
install="${pkgname}.install"
source=(
"${pkgname}-${pkgver}.deb::https://mirrors.sdu.edu.cn/spark-store/store/network/${_sparkname}/${_sparkname}_${pkgver}_all.deb"
"LICENSE.html"
"${pkgname}.sh"
)
sha256sums=('93eef97dac4a7ec9556c45a18b68a7d804138bdf0a6f447bbb8afbb12a3a7475'
'1ed45cc3d1362c9a00f995dc22ad452203fc9e786f703e8d73eed4ecc3b97d35'
'f9ff267382d6615dfe133b84453f34da7cd037edec432055396b62b6869492a5')
build() {
sed -e "s|@bottlename@|${_appname}|g" \
-e "s|@appver@|${pkgver}|g" \
-e "s|@appname@|${pkgname}|g" \
-e "s|@pathname@|${_officalname}|g" \
-e "s|@runname@|${_appname}|g" \
-i "${srcdir}/${pkgname}.sh"
bsdtar -xf "${srcdir}/data."*
mv "${srcdir}/opt/apps/${_sparkname}" "${srcdir}/opt/apps/${pkgname}"
rm -rf "${srcdir}/opt/apps/${pkgname}/info"
sed -e "s|\"/opt/apps/${_sparkname}/files/run.sh\"|${pkgname}|g" \
-e "s|Icon=${_sparkname}|Icon=${pkgname}|g" \
-i "${srcdir}/opt/apps/${pkgname}/entries/applications/${_sparkname}.desktop"
}
package() {
mkdir -p "${pkgdir}/opt/apps"
cp -rf "${srcdir}/opt/apps/${pkgname}" "${pkgdir}/opt/apps"
md5sum "${pkgdir}/opt/apps/${pkgname}/files/files.7z" | awk '{ print $1 }' > "${pkgdir}/opt/apps/${pkgname}/files/files.md5sum"
install -Dm644 "${srcdir}/opt/apps/${pkgname}/entries/applications/${_sparkname}.desktop" "${pkgdir}/usr/share/applications/${pkgname}.desktop"
install -Dm644 "${srcdir}/opt/apps/${pkgname}/entries/icons/hicolor/scalable/apps/${_sparkname}.png" "${pkgdir}/usr/share/pixmaps/${pkgname}.png"
install -Dm644 "${srcdir}/LICENSE.html" -t "${pkgdir}/usr/share/licenses/${pkgname}"
install -Dm755 "${srcdir}/${pkgname}.sh" "${pkgdir}/usr/bin/${pkgname}"
}
Scan 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 00:06:16 | MEDIUM | 2 |
| 2026-07-16 00:05:41 | MEDIUM | 2 |
| 2026-07-15 00:09:25 | MEDIUM | 2 |