thunder-mini
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
"http://down.sandai.net/mini/ThunderMini_dl1.5.3.288.exe"
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 Windows executable (ThunderMini_dl1.5.3.288.exe) from down.sandai.net. This is actually the official Xunlei/Thunder CDN/download domain — sandai.net is the registered domain of Xunlei (迅雷), the company behind Thunder download manager, and down.sandai.net is their standard distribution host. So this is not a 'non-standard' or 'personal' host in the suspicious sense. However, the package installs a prebuilt proprietary Windows binary that is then executed via Wine, and the binary is only verified by an MD5 checksum (weak, but present). The real concern is that a prebuilt, closed-source Windows executable from a Chinese download manager company is being installed and run — this is a legitimate supply-chain concern (the binary could contain adware, spyware, or other unwanted functionality typical of Xunlei products), but it is not an attack or clearly malicious pattern. The source host is the official vendor host. Rating as medium due to the execution of a prebuilt proprietary binary from a vendor known for bundling unwanted software, not due to the host being unofficial.
PKGBUILD
1 offending line(s) highlighted# Maintainer: qaz <fkxxyz@163.com>
# Contributor: qaz <fkxxyz@163.com>
pkgname=thunder-mini
pkgver=1.5.3.288
pkgrel=3
pkgdesc="Xunlei officially released a compact download tool with dedicated download function."
arch=("i686" "x86_64")
url="https://dl.xunlei.com/"
license=('custom')
makedepends=('p7zip' 'icoutils')
depends=('bash' 'wine' 'hicolor-icon-theme')
source=(
"http://down.sandai.net/mini/ThunderMini_dl1.5.3.288.exe"
"license.txt"
"file://${pkgname}.desktop"
)
noextract=('ThunderMini_dl1.5.3.288.exe')
_default_env_wineprefix='$HOME/.wine-tool'
_default_env_winearch='win32'
_default_env_winedebug='-all'
_wine_env_file="/etc/wine/appenv/${pkgname}"
_application_path_root="/opt"
backup=("${_wine_env_file#/*}")
install="${pkgname}.install"
prepare() {
mkdir -p "${srcdir}/pkg"
cd "${srcdir}/pkg"
7z x -y ../ThunderMini_dl1.5.3.288.exe
rm ./Bin/UnInstallClean.exe
}
_create_launcher(){
# $1 Path of position
# $2 Relative path to executable in $1 (Windows path format)
# $3 Parameters of wine
printf '#!/bin/bash
source '"${_wine_env_file}"'
apphome='"${_application_path_root}/${pkgname}"'
wine_appdir="$WINEPREFIX/drive_c/Program Files"
wine_workhome="$wine_appdir/'"${pkgname}"'"
if [ ! -e "${wine_workhome}" ]; then
mkdir -p "${wine_appdir}"
cp -rs "${apphome}" "${wine_workhome}"
fi
exec wine "C:\\\\Program Files\\\\'"${pkgname}\\\\$2"'" '"$3"'
' > "$1"
}
build() {
# Build icon
mkdir -p "${srcdir}/ico"
wrestool -x -o "${srcdir}/ico" -t14 "${srcdir}/pkg/Bin/ThunderMini.exe"
icotool -x -o "${srcdir}/ico" "${srcdir}/ico/ThunderMini.exe_14_116_2052.ico"
# Build launcher
_create_launcher "thunder-mini" "Bin\\ThunderMini.exe" '$*'
# Build env file
printf "export WINEPREFIX=${_default_env_wineprefix}
export WINEARCH=${_default_env_winearch}
export WINEDEBUG=${_default_env_winedebug}
" > "${pkgname}.env"
}
package() {
# Install application files
install -d "${pkgdir}${_application_path_root}/$pkgname"
cp -r "$srcdir/pkg/"{Bin,bho,Skin} "${pkgdir}${_application_path_root}/$pkgname/"
cp "$srcdir/pkg/\$WINDIR/system32/"* "${pkgdir}${_application_path_root}/$pkgname/Bin/"
find "${pkgdir}${_application_path_root}/$pkgname/" -type d -exec chmod 755 {} \;
# Install env file
install -Dm644 "${pkgname}.env" "${pkgdir}${_wine_env_file}"
# Install launcher
install -Dm755 "$srcdir/${pkgname}" "${pkgdir}/usr/bin/${pkgname}"
# Install licenses
install -Dm644 "license.txt" "${pkgdir}/usr/share/licenses/$pkgname/license.txt"
# Install icon
for size in 16x16 32x32 48x48; do
install -Dm644 "${srcdir}/ico/ThunderMini.exe_14_116_2052_"?"_${size}x32.png" \
"${pkgdir}/usr/share/icons/hicolor/${size}/apps/${pkgname}.png"
done
# Install desktop file
install -Dm644 "${pkgname}.desktop" "${pkgdir}/usr/share/applications/${pkgname}.desktop"
}
# vim:set ts=2 sw=2 et:
md5sums=('95118524fa7d7e457c7bed4abcb5bbfc'
'a04a22f2def04dd4f030de7fc3e83666'
'227afd0034719425b6d69379efd6558a')
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 |