todesk-bin
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:29
source_x86_64=("https://dl.todesk.com/linux/${_pkgname}-v${pkgver}-amd64.deb")
llm_review
An AI model (anthropic/claude-4.6-sonnet-20260217) reviewed this and agrees it is MEDIUM (confidence 72%): This PKGBUILD downloads and installs prebuilt proprietary binaries (ToDesk remote desktop software) directly from dl.todesk.com, which is the official vendor download host for ToDesk. The binaries are executed/installed on the system and include bundled shared libraries (.so files). While dl.todesk.com appears to be the legitimate official distribution channel for this Chinese remote desktop application (matching the official website todesk.com), it is still a vendor-controlled binary distribution rather than source built from a trusted code repository. The sha256sums provide integrity checking. The main concern is that this is a closed-source remote desktop application with system-level access (systemd service, bundled libs) from a proprietary vendor host — if the host were compromised or the vendor acted maliciously, arbitrary code execution would result. This is a genuine medium-risk supply-chain concern typical of binary AUR packages from proprietary vendors, not a false positive, though it is not clearly malicious.
PKGBUILD
1 offending line(s) highlighted# Maintainer: yjun <jerrysteve1101 at gmail dot com>
# Maintainer: witt <1989161762 at qq dot com>
pkgname=todesk-bin
_pkgname=${pkgname%-bin}
_binaryname=ToDesk
pkgver=4.8.6.2
pkgrel=1
pkgdesc="Remote control and team work"
arch=('x86_64' 'aarch64')
url="https://www.todesk.com/"
license=('custom')
depends=('gtk3'
'libappindicator-gtk3'
'noto-fonts-cjk')
makedepends=('wget' 'tar')
provides=("${_pkgname}")
conflicts=("${_pkgname}")
# !strip: strip could generate error.
# --->
# strip: error: the input file './opt/todesk/bin/todesk' has no sections
# strip: error: the input file './opt/todesk/bin/todeskd' has no sections
#
# emptydirs: leave /opt/todesk/config empty dir
options=('!strip' 'emptydirs')
DLAGENTS=("https::/usr/bin/wget -U 'Mozilla' -O %o %u")
install="${_pkgname}.install"
source=('license.html')
source_x86_64=("https://dl.todesk.com/linux/${_pkgname}-v${pkgver}-amd64.deb")
source_aarch64=("https://dl.todesk.com/linux/${_pkgname}-v4.7.2.0-arm64.deb")
source_armv7h=("https://dl.todesk.com/linux/${_pkgname}-v${pkgver}-armv7l.deb")
sha256sums=('402b2db2586c723af990beb0f96249b9680880f4f30e58a7cbe7cbd20b979a0b')
sha256sums_x86_64=('b3f2af7fc120948903df3aa455955cb5823fb5c1f5ec7dca17ac8a4cba53c808')
sha256sums_aarch64=('07a1239d0ea6b94f24e12b446d39cf6b23747b2e52f09c3dff50daa1394ae0b5')
_install() {
find ${@: 2} -type f -exec install -Dm$1 {} ${pkgdir}/{} \;
}
build() {
mkdir -p ${srcdir}/build
[ -f "${srcdir}/data.tar.xz" ] && tar -xf ${srcdir}/data.tar.xz -C ${srcdir}/build
[ -f "${srcdir}/data.tar.zst" ] && tar -xf ${srcdir}/data.tar.zst -C ${srcdir}/build
}
package() {
cd ${srcdir}/build/
# binary wrapper
install -Dm755 usr/local/bin/${_pkgname} -t ${pkgdir}/usr/bin/
# binary & scripts
install -Dm755 opt/${_pkgname}/bin/${_binaryname}{,_Service,_Session} -t ${pkgdir}/opt/${_pkgname}/bin
install -Dm755 opt/${_pkgname}/bin/CrashReport -t ${pkgdir}/opt/${_pkgname}/bin
# lib
# bundled libaray for hardware video encode
cp -a opt/${_pkgname}/bin/*.so* ${pkgdir}/opt/${_pkgname}/bin/
# _install 644 opt/${_pkgname}/bin -name libzrtc.so
# icon
# find opt/${_pkgname}/res -maxdepth 1 -type f -exec install -Dm644 {} ${pkgdir}/{} \;
_install 644 opt/${_pkgname}/res -maxdepth 1
# config
# empty dir
install -dm755 ${pkgdir}/opt/${_pkgname}/config
# desktop entry
install -Dm644 usr/share/applications/${_pkgname}.desktop -t ${pkgdir}/usr/share/applications
# systemd service
install -Dm644 etc/systemd/system/${_pkgname}d.service -t ${pkgdir}/usr/lib/systemd/system
# icon
# find usr/share/icons -type f -exec install -Dm644 {} ${pkgdir}/{} \;
_install 644 usr/share/icons
# license
install -Dm644 ${srcdir}/license.html -t ${pkgdir}/usr/share/licenses/${pkgname}/
}
# vim: set sw=2 ts=2 et:
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 |