futubull-desktop-bin
The package downloads a prebuilt .deb from the official vendor's domain (futunn.com), which is plausibly the project's own release infrastructure; the binary is not obfuscated or executed remotely, and the worst case of a swapped source would be code execution, but the host is specific to the vendor, not a generic file host, making supply-chain risk low.
Triggered rules
llm_review
The static rules flagged this MEDIUM, but an AI model (qwen/qwen3-235b-a22b-2507) reviewed the full PKGBUILD and judged it LOW (confidence 95%): The package downloads a prebuilt .deb from the official vendor's domain (futunn.com), which is plausibly the project's own release infrastructure; the binary is not obfuscated or executed remotely, and the worst case of a swapped source would be code execution, but the host is specific to the vendor, not a generic file host, making supply-chain risk low.
1 higher static finding superseded - not the current verdict (shown for transparency)
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:29
source_x86_64=("${_deb}::https://softwaredownload.futunn.com/FTNN_desktop_${pkgver}_amd64.deb"
PKGBUILD
1 offending line(s) highlighted# Maintainer: hoywu <wu_git [at-symbol] outlook [dot] com>
_pkgname=futubull-desktop
pkgname=${_pkgname}-bin
pkgver=16.30.17508
pkgrel=1
pkgdesc="One-Stop Trading Platform for Hong Kong, US and China Connect Stocks"
arch=('x86_64')
url="https://www.futunn.com/"
license=('custom')
conflicts=('ftnn-desktop')
depends=(
'glibc'
'glib2'
'libxcb'
'libx11'
'libxext'
'libxkbcommon'
'libxkbcommon-x11'
'libmng'
'xcb-util-wm'
'xcb-util-image'
'xcb-util-keysyms'
'xcb-util-renderutil'
)
options=('!strip' '!debug' '!emptydirs')
_deb="${pkgname}-${pkgver}.deb"
source_x86_64=("${_deb}::https://softwaredownload.futunn.com/FTNN_desktop_${pkgver}_amd64.deb"
"futubull.desktop")
sha256sums_x86_64=('e010365f760b60bf7d6c09f897b470804c3bebaa3c27bdf10e3b498625209dfc'
'a08936d41b249848e7cb1b2339f9cff6db5f7698a76c23580267353ec68fc1f6')
package() {
# Extract files from the deb package
tar -xJ -f data.tar.xz -C "${pkgdir}"
mv "${pkgdir}/opt/FTNN" "${pkgdir}/opt/${_pkgname}"
rm -rf "${pkgdir}/out"
# Setup permissions
chown -R root:root "${pkgdir}/opt/${_pkgname}"
chmod 755 "${pkgdir}/opt/${_pkgname}"
find "${pkgdir}/opt/${_pkgname}" -type f -executable -exec chmod 755 {} +
# Symlink executable
install -dm755 "${pkgdir}/usr/bin/"
ln -s "/opt/${_pkgname}/FTNN" "${pkgdir}/usr/bin/${_pkgname}"
# Install desktop entry and icon
install -Dm644 "${srcdir}/futubull.desktop" \
"${pkgdir}/usr/share/applications/${_pkgname}.desktop"
install -Dm644 "${pkgdir}/opt/${_pkgname}/app.png" \
"${pkgdir}/usr/share/pixmaps/${_pkgname}.png"
# Install license
install -dm755 "${pkgdir}/usr/share/licenses/${pkgname}/"
echo "See: https://www.futunn.com/about/services" > "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE"
}
Changes since previous scan
--- PKGBUILD @ 2026-08-31 00:19+++ PKGBUILD @ 2026-09-17 00:27@@ -3,7 +3,7 @@ _pkgname=futubull-desktop pkgname=${_pkgname}-bin-pkgver=16.24.16908+pkgver=16.30.17508 pkgrel=1 pkgdesc="One-Stop Trading Platform for Hong Kong, US and China Connect Stocks" arch=('x86_64')@@ -28,7 +28,7 @@ _deb="${pkgname}-${pkgver}.deb" source_x86_64=("${_deb}::https://softwaredownload.futunn.com/FTNN_desktop_${pkgver}_amd64.deb" "futubull.desktop")-sha256sums_x86_64=('3d648ad322fe02455a29708f773b3ecc909a95ff598b4a224c50d0a249bd8649'+sha256sums_x86_64=('e010365f760b60bf7d6c09f897b470804c3bebaa3c27bdf10e3b498625209dfc' 'a08936d41b249848e7cb1b2339f9cff6db5f7698a76c23580267353ec68fc1f6') package() {Scan history
| Scanned at (UTC) | Severity | Rules |
|---|---|---|
| 2026-09-17 00:27:14 | Low | 2 |
| 2026-09-16 00:03:17 | Low | 2 |
| 2026-09-15 00:25:31 | Low | 2 |
| 2026-09-14 00:27:57 | Low | 2 |
| 2026-09-13 00:19:54 | Low | 2 |
| 2026-09-12 00:25:17 | Low | 2 |
| 2026-09-11 00:19:22 | Low | 2 |
| 2026-09-10 00:22:44 | Low | 2 |
| 2026-09-09 00:04:09 | Low | 2 |
| 2026-09-08 00:18:08 | Low | 2 |
| 2026-09-07 00:30:15 | Low | 2 |
| 2026-09-06 00:17:06 | Low | 2 |
| 2026-09-05 00:16:27 | Low | 2 |
| 2026-09-04 00:03:13 | Low | 2 |
| 2026-09-03 00:15:47 | Low | 2 |
| 2026-09-02 00:02:31 | Low | 2 |
| 2026-09-01 00:11:19 | Low | 2 |
| 2026-08-31 03:44:41 | Medium | 1 |
| 2026-08-31 00:19:57 | Low | 2 |
| 2026-08-30 00:04:14 | Low | 2 |