moomoo-opend-bin
The package downloads a prebuilt binary tarball (containing both a native OpenD daemon binary and an AppImage GUI) from softwaredownload.futustatic.com. This domain is Futu/Moomoo's official CDN/static asset host — 'futustatic.com' is used by Futu Securities (the company behind Moomoo) for software distribution, making this a legitimate official vendor host rather than a random personal server. However, the package still installs and executes prebuilt proprietary binaries (the OpenD daemon via cp -a and the AppImage) without any source build, which is the inherent nature of a -bin package. The sha256sum is pinned, which mitigates tampering risk. The concern is real but standard for binary AUR packages from proprietary vendors: users must trust the vendor's CDN. This is a medium-severity supply-chain concern (prebuilt binary from a vendor CDN, not open-source), but not clearly malicious or from an unofficial/unrelated host. The cheaper model's assessment of 'non-standard host' is partially incorrect — futustatic.com appears to be Futu's own CDN — but the underlying concern about executing prebuilt binaries remains valid at medium severity.
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=("${pkgname}-${pkgver}.tar.gz::https://softwaredownload.futustatic.com/moomoo_OpenD_${pkgver}_Ubuntu18.04.tar.gz")
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 binary tarball (containing both a native OpenD daemon binary and an AppImage GUI) from softwaredownload.futustatic.com. This domain is Futu/Moomoo's official CDN/static asset host — 'futustatic.com' is used by Futu Securities (the company behind Moomoo) for software distribution, making this a legitimate official vendor host rather than a random personal server. However, the package still installs and executes prebuilt proprietary binaries (the OpenD daemon via cp -a and the AppImage) without any source build, which is the inherent nature of a -bin package. The sha256sum is pinned, which mitigates tampering risk. The concern is real but standard for binary AUR packages from proprietary vendors: users must trust the vendor's CDN. This is a medium-severity supply-chain concern (prebuilt binary from a vendor CDN, not open-source), but not clearly malicious or from an unofficial/unrelated host. The cheaper model's assessment of 'non-standard host' is partially incorrect — futustatic.com appears to be Futu's own CDN — but the underlying concern about executing prebuilt binaries remains valid at medium severity.
PKGBUILD
1 offending line(s) highlightedpkgname=moomoo-opend-bin
pkgver=10.6.6608
pkgrel=1
pkgdesc="Moomoo OpenD command-line daemon and GUI"
arch=('x86_64')
url='https://openapi.moomoo.com/'
license=('custom:proprietary')
depends=('fuse2' 'gcc-libs' 'glibc' 'hicolor-icon-theme')
provides=('moomoo-opend' 'futu-opend')
conflicts=('moomoo-opend' 'futu-opend')
options=('!debug' '!strip')
source=("${pkgname}-${pkgver}.tar.gz::https://softwaredownload.futustatic.com/moomoo_OpenD_${pkgver}_Ubuntu18.04.tar.gz")
sha256sums=('73116d7ba5adaf4e3d3fb6aaefb66466d2604ad73260cf75accc1d349e169dc8')
prepare() {
local base="moomoo_OpenD_${pkgver}_Ubuntu18.04"
local gui_src="$srcdir/$base/moomoo_OpenD-GUI_${pkgver}_Ubuntu18.04/moomoo_OpenD-GUI_${pkgver}_Ubuntu18.04.AppImage"
rm -rf "$srcdir/squashfs-root"
(
cd "$srcdir"
"$gui_src" --appimage-extract moomoo_OpenD.png >/dev/null
)
}
package() {
local base="moomoo_OpenD_${pkgver}_Ubuntu18.04"
local install_dir="$pkgdir/opt/moomoo-opend"
local opend_src="$srcdir/$base/$base"
local gui_src="$srcdir/$base/moomoo_OpenD-GUI_${pkgver}_Ubuntu18.04/moomoo_OpenD-GUI_${pkgver}_Ubuntu18.04.AppImage"
install -dm755 "$install_dir" "$pkgdir/usr/bin" \
"$pkgdir/usr/share/applications" "$pkgdir/usr/share/icons/hicolor/256x256/apps" \
"$pkgdir/usr/share/doc/$pkgname"
cp -a "$opend_src" "$install_dir/opend"
install -Dm755 "$gui_src" "$install_dir/moomoo-opend-gui.AppImage"
install -Dm644 "$srcdir/$base/README.txt" "$pkgdir/usr/share/doc/$pkgname/README.txt"
install -Dm644 "$opend_src/OpenD.xml" "$pkgdir/usr/share/doc/$pkgname/OpenD.xml.example"
cat > "$pkgdir/usr/bin/moomoo-opend" <<'EOF'
#!/usr/bin/env bash
set -euo pipefail
install_dir=/opt/moomoo-opend/opend
config_dir="${XDG_CONFIG_HOME:-$HOME/.config}/moomoo-opend"
state_dir="${XDG_STATE_HOME:-$HOME/.local/state}/moomoo-opend"
config_file="$config_dir/OpenD.xml"
mkdir -p "$config_dir" "$state_dir/logs"
if [[ ! -f "$config_file" ]]; then
cp "$install_dir/OpenD.xml" "$config_file"
chmod 600 "$config_file"
fi
cd "$install_dir"
exec ./OpenD -cfg_file="$config_file" -log_path="$state_dir/logs" "$@"
EOF
chmod 755 "$pkgdir/usr/bin/moomoo-opend"
cat > "$pkgdir/usr/bin/moomoo-opend-gui" <<'EOF'
#!/usr/bin/env bash
exec /opt/moomoo-opend/moomoo-opend-gui.AppImage "$@"
EOF
chmod 755 "$pkgdir/usr/bin/moomoo-opend-gui"
cat > "$pkgdir/usr/share/applications/moomoo-opend.desktop" <<EOF
[Desktop Entry]
Type=Application
Name=Moomoo OpenD
Comment=OpenAPI gateway for Moomoo
Exec=moomoo-opend-gui
Icon=moomoo-opend
Terminal=false
Categories=Office;Finance;
EOF
install -Dm644 "$srcdir/squashfs-root/moomoo_OpenD.png" \
"$pkgdir/usr/share/icons/hicolor/256x256/apps/moomoo-opend.png"
}
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 19:40:31 | Medium | 2 |