sunloginremote
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:21
source=("https://down.oray.com/sunlogin/linux/${pkgname}-${pkgver}-amd64.deb"
llm_review
An AI model (anthropic/claude-4.6-sonnet-20260217) reviewed this and agrees it is MEDIUM (confidence 72%): The PKGBUILD downloads a prebuilt binary .deb from down.oray.com (Oray's official distribution server for their Sunlogin remote-control software) and installs executables from it. While down.oray.com is the legitimate vendor distribution host for Oray/Sunlogin products, it is not a well-known package mirror and there is no way to independently verify the binary's integrity — notably, only the .deb itself has a b2sum while the other local source files are SKIP. The binary is extracted and installed directly into /opt and /usr/bin, meaning any compromise or substitution at the vendor's download server would result in arbitrary code execution on the user's machine. This is a genuine supply-chain concern (prebuilt proprietary binary from a vendor-controlled but non-auditable host), which justifies MEDIUM. It is not HIGH because there is no evidence of active malice, obfuscation, or exfiltration — it is the standard pattern for proprietary Linux software distributed as a .deb outside of official distro repos.
PKGBUILD
1 offending line(s) highlighted# Maintainer: Whyme Lyu <callme5long@gmail.com>
# Original PKGBUILD copied from https://aur.archlinux.org/cgit/aur.git/tree/PKGBUILD?h=sunloginclient
# Credit goes to:
# yjun <jerrysteve1101 at gmail dot com>
# zhullyb <zhullyb at outlook dot com>
pkgname=sunloginremote
pkgver=5.5.0.45114
pkgrel=1
pkgdesc='Proprietary software that remotely controls mobile devices, Windows, Mac, Linux and other systems. Enterprise edition.'
arch=(x86_64)
url='https://sunlogin.oray.com/product/support'
depends=(
libappindicator-gtk3
sh
wqy-zenhei
)
license=(custom)
install=$pkgname.install
source=("https://down.oray.com/sunlogin/linux/${pkgname}-${pkgver}-amd64.deb"
shim.sh
tmpfiles.conf
license.html)
b2sums=('ce5e29dcf218048d78033ed8f18bb75da82a5684f8773167a82f6b118572b15a0344913c2de0b1693c61f136c066e39e68541ebfbb65769e7105552336a9fc39'
'SKIP'
'SKIP'
'SKIP')
declare__root() {
export _root="$srcdir/$pkgver-data"
}
prepare() {
declare__root
mkdir -p "$_root"
tar -xf data.tar.xz -C "$_root"
}
_install() {
find "opt/$pkgname/$1" -type f -exec \
install -Dm$2 {} -t "${pkgdir}/opt/$pkgname/$1" \;
}
build() {
declare__root
pushd "$_root"
desktop_file="usr/share/applications/$pkgname.desktop"
test -r "$desktop_file"
# fix path
sed -i -e "
s#Exec=/opt/$pkgname/bin/#Exec=/usr/bin/#
" "$desktop_file"
popd
}
package() {
declare__root
pushd "$_root"
# bin
_install bin 755
_install res/skin 666
_install res/icon 644
mkdir -m=755 "$pkgdir/opt/$pkgname/res/font"
ln -s ../../../../usr/share/fonts/wenquanyi/wqy-zenhei/wqy-zenhei.ttc \
"$pkgdir/opt/$pkgname/res/font/"
install -Dm644 "opt/$pkgname/res/DRBELL.WAV" \
-t "$pkgdir/opt/$pkgname/res"
# desktop entry
install -Dm644 usr/share/applications/$pkgname.desktop \
-t "$pkgdir/usr/share/applications"
# icon ## TODO: use symlink instead
install -Dm644 opt/$pkgname/res/icon/sunlogin_remote.png \
"$pkgdir/usr/share/pixmaps/$pkgname.png"
# # license
# install -Dm644 "${srcdir}/LICENSE" "${pkgdir}/usr/share/licenses/$pkgname/LICENSE"
popd
install -Dm755 shim.sh "$pkgdir/usr/bin/$pkgname"
install -Dm644 tmpfiles.conf "$pkgdir/usr/lib/tmpfiles.d/$pkgname.conf"
install -Dm644 license.html "$pkgdir/usr/share/licenses/sunloginremote/license.html"
}
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 |