tlauncher-installer
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:9
source=("tlauncher-linux-installer.deb::https://dl1.tlauncher.org/f.php?f=files%2Ftlauncher-linux-installer.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 binary .deb from dl1.tlauncher.org via a PHP redirect URL (f.php?f=...), extracts it, and installs executables into the package. The host is the official TLauncher distribution server (tlauncher.org is the upstream vendor), so this is not a random personal host. However, TLauncher itself is a controversial Minecraft launcher that has historically been associated with piracy (allowing play without a legitimate Mojang/Microsoft account) and has had malware bundled in past versions. The PHP redirect URL is somewhat obfuscated but is pinned with a sha256sum, which mitigates substitution attacks at build time. The core concern is: (1) TLauncher is widely considered a piracy-enabling tool for Minecraft, and (2) the package installs prebuilt binaries from a vendor with a poor security reputation. The sha256sum provides integrity but not authenticity. The piracy flag is borderline — TLauncher does enable playing Minecraft without a paid account, which constitutes circumvention of license enforcement, but the PKGBUILD itself does not crack anything. Given TLauncher's well-documented history of enabling unlicensed Minecraft play, the piracy flag applies.
PKGBUILD
1 offending line(s) highlightedpkgname=tlauncher-installer
pkgver=1.0
pkgrel=1
arch=('any')
pkgdesc="TLauncher (prebuilt binary from upstream .deb)"
url="https://tlauncher.org"
license=('MIT')
depends=()
source=("tlauncher-linux-installer.deb::https://dl1.tlauncher.org/f.php?f=files%2Ftlauncher-linux-installer.deb")
noextract=("tlauncher-linux-installer.deb")
sha256sums=('418871838de35f024a285a7cebff5eb31b24cc3b3ddb086946a7027855cbff1a')
package() {
cd "${srcdir}"
# resolve potential name::url source syntax
debfile="${source[0]}"
if printf '%s' "$debfile" | grep -q '::'; then
debfile="${debfile%%::*}"
fi
[ -f "$debfile" ] || { echo "Source .deb not found: $debfile"; return 1; }
# extract .deb and data archive
ar x "$debfile" || return 1
data_tar=$(ls -1 data.tar.* 2>/dev/null | head -n1)
[ -n "$data_tar" ] || { echo "data.tar.* not found"; return 1; }
tmpdir="${srcdir}/.deb_tmp"
rm -rf "$tmpdir" && mkdir -p "$tmpdir"
tar -xpf "$data_tar" -C "$tmpdir" || return 1
# move only the runtime files into the package: usr/games and usr/share
if [ -d "$tmpdir/usr/games" ]; then
mkdir -p "$pkgdir/usr"
mv "$tmpdir/usr/games" "$pkgdir/usr/"
fi
if [ -d "$tmpdir/usr/share" ]; then
mkdir -p "$pkgdir/usr/share"
cp -a "$tmpdir/usr/share/." "$pkgdir/usr/share/"
fi
rm -rf "$tmpdir"
# ensure directories have sensible permissions
find "$pkgdir" -type d -exec chmod 755 {} + || true
}
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 |