huaweicloudmeeting
The source URL points to Huawei's official cloud meeting software distribution host (softclient.meeting.huaweicloud.com), which is a legitimate vendor host. However, the URL has no version component — the same URL always resolves to 'the latest' build, meaning the sha256sum pinned in the PKGBUILD will silently break (or worse, pass if an attacker substitutes a matching binary) whenever Huawei updates the file. The package installs a prebuilt x86_64/aarch64 binary blob extracted from a .deb, which is executed code from a closed-source vendor. The sha256sum provides a point-in-time integrity check but offers no protection against a future silent replacement at the same URL. The PKGBUILD also strips most of the /opt tree (deleting non-resources files) and wraps the electron app in a shell launcher. The host appears to be the genuine Huawei vendor CDN, so this is not clearly malicious, but the versionless URL is a real supply-chain concern: any future update to the remote file will either break the checksum or (if the maintainer updates the sum without review) silently ship a new unreviewed binary. This is a textbook medium-severity supply-chain pattern.
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:10
source=("https://softclient.meeting.huaweicloud.com/HUAWEICLOUDMeeting_DomesticOS.deb"
llm_review
An AI model (anthropic/claude-4.6-sonnet-20260217) reviewed this and agrees it is MEDIUM (confidence 72%): The source URL points to Huawei's official cloud meeting software distribution host (softclient.meeting.huaweicloud.com), which is a legitimate vendor host. However, the URL has no version component — the same URL always resolves to 'the latest' build, meaning the sha256sum pinned in the PKGBUILD will silently break (or worse, pass if an attacker substitutes a matching binary) whenever Huawei updates the file. The package installs a prebuilt x86_64/aarch64 binary blob extracted from a .deb, which is executed code from a closed-source vendor. The sha256sum provides a point-in-time integrity check but offers no protection against a future silent replacement at the same URL. The PKGBUILD also strips most of the /opt tree (deleting non-resources files) and wraps the electron app in a shell launcher. The host appears to be the genuine Huawei vendor CDN, so this is not clearly malicious, but the versionless URL is a real supply-chain concern: any future update to the remote file will either break the checksum or (if the maintainer updates the sum without review) silently ship a new unreviewed binary. This is a textbook medium-severity supply-chain pattern.
PKGBUILD
1 offending line(s) highlighted# Maintainer: Asuka Minato <i at asukaminato dot eu dot org>
pkgname=huaweicloudmeeting
pkgver=8.11.1
pkgrel=1
pkgdesc="HuaWei Cloud Meeting"
arch=(x86_64 aarch64)
url="https://www.huaweicloud.com/product/meeting"
license=('custom')
depends=(bash electron20)
source=("https://softclient.meeting.huaweicloud.com/HUAWEICLOUDMeeting_DomesticOS.deb" # todo: this link has no version
)
sha256sums=('73e0929fe6bc2b8b94c93f1b88bdce2e387ca289e5df00f80e0a9921c9ae0107')
package() {
tar -xvf data.tar.* -C $pkgdir
echo -e "#!/usr/bin/bash\nelectron20 /opt/华为云会议/resources/app %U" | install -vDm755 /dev/stdin $pkgdir/usr/bin/huaweicloudmeeting
find $pkgdir -name "*.desktop" -print -exec sed -i -r 's/Exec=.*/Exec=huaweicloudmeeting/' {} \;
find $pkgdir/opt -type f -not -path "*/resources/*" -print -delete
}
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 |