badlion-client
The package downloads a prebuilt AppImage binary (an Electron/Chromium-based Minecraft client) directly from client-updates-cdn77.badlion.net — a CDN domain operated by Badlion, not a standard code-hosting platform like GitHub releases. The binary is executed during build (./BadlionClient --appimage-extract) and then installed to /opt. While Badlion is a known, legitimate Minecraft client service and the CDN domain is plausibly their own infrastructure, the source is a versioned binary blob from a non-standard host with no GPG signature — only a b2sum. If the CDN were compromised or the URL silently redirected, arbitrary code would execute on the builder's machine and be installed system-wide. This is a textbook supply-chain medium: a real executed binary from an unofficial/non-canonical host (not GitHub, not the distro's own mirror), with no cryptographic signing beyond a hash that only the PKGBUILD maintainer controls. The auto-update removal is a minor positive. Overall this is a legitimate medium risk, not a false positive.
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:12
source=('BadlionClient::https://client-updates-cdn77.badlion.net/BadlionClient'
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 AppImage binary (an Electron/Chromium-based Minecraft client) directly from client-updates-cdn77.badlion.net — a CDN domain operated by Badlion, not a standard code-hosting platform like GitHub releases. The binary is executed during build (./BadlionClient --appimage-extract) and then installed to /opt. While Badlion is a known, legitimate Minecraft client service and the CDN domain is plausibly their own infrastructure, the source is a versioned binary blob from a non-standard host with no GPG signature — only a b2sum. If the CDN were compromised or the URL silently redirected, arbitrary code would execute on the builder's machine and be installed system-wide. This is a textbook supply-chain medium: a real executed binary from an unofficial/non-canonical host (not GitHub, not the distro's own mirror), with no cryptographic signing beyond a hash that only the PKGBUILD maintainer controls. The auto-update removal is a minor positive. Overall this is a legitimate medium risk, not a false positive.
PKGBUILD
1 offending line(s) highlighted# Maintainer MatthieuDev <contact at matthieul dot dev>
# Submitter Wings-Fantasy <1056947073@qq.com>
pkgname=badlion-client
pkgver=4.5.4
pkgrel=2
pkgdesc="A Minecraft client with anti-cheat protection"
url="https://client.badlion.net"
arch=('x86_64')
license=('custom')
provides=('BadlionClient')
source=('BadlionClient::https://client-updates-cdn77.badlion.net/BadlionClient'
'AppRun'
'BadlionClient.desktop')
b2sums=('efdae91ee731df35eb3bb88cc2317c02f62544ca29ff529df5be0deaa659a4274be460a791b732b5c4070adfcb553c008c5fc58656a7270162edbd5c41d9d743'
'42865a8a9ee9c71a1472fe82554e5b12df59a89a81cb28d2e0e942c59529781724f70c58802dbbb8905f62e0b413665322fcdb2095e8ebb681250456fda2645d'
'31f87ca073b6b587adc6d6e09846c7d8c143c6140198e7b8fb93fb1d5525b75cd1fd945f138b8b40a4d830a881d34f8d31829f89e8c6ac3de49ee115986e0097')
prepare() {
chmod a+x BadlionClient
./BadlionClient --appimage-extract > /dev/null
cd "squashfs-root"
rm -rf "AppRun" "BadlionClient.desktop" "BadlionClient.png" ".DirIcon" "licenses" "LICENSE.electron.txt" "LICENSES.chromium.html"
}
package() {
cd "${srcdir}"
install -Dm644 BadlionClient.desktop "${pkgdir}/usr/share/applications/BadlionClient.desktop"
install -Dm755 AppRun "${pkgdir}/opt/BadlionClient/AppRun"
cd "squashfs-root"
mkdir -p "$pkgdir/usr/share/licenses/BadlionClient"
mv license.txt "$pkgdir/usr/share/licenses/BadlionClient"
cp -r usr/share "$pkgdir/usr"
rm -rf usr/share
cp -r * "$pkgdir/opt/BadlionClient"
chmod -R go+rX "$pkgdir/usr/share/icons"
cd "$pkgdir/opt/BadlionClient"
chmod 755 cursors libs locales native-modules resources usr usr/lib
# Badlion don't start if not defined
sed -i -e '/APPDIR=/a\' -e 'export APPIMAGE="true"' AppRun
# Remove auto-update system
rm resources/app-update.yml
}
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 |