synergy3-beta-bin
maintainer Thadah
· 0 votes
· scanned 2026-08-03 00:08:14.047287
MEDIUM
View on AUR ↗
Why flagged
The package downloads a prebuilt binary from a non-whitelisted host using a token-gated process, which creates an unverifiable supply chain; if the host were compromised, an attacker could silently replace the binary.
Triggered rules
MEDIUM
External download from an untrusted host, not in source=()
external_download_not_in_source
curl/wget fetches a URL on a non-allowlisted host that is not part of source=(), so it is not checksum-verified by makepkg.
-
PKGBUILD:35
curl -fsSL -o "${srcdir}/${_pkgfile}" "https://symless.com/synergy/api/download/${_pkgfile}?token=${token}"
MEDIUM
AI review
llm_review
An AI model (qwen/qwen3-235b-a22b-07-25) reviewed this and agrees it is MEDIUM (confidence 95%): The package downloads a prebuilt binary from a non-whitelisted host using a token-gated process, which creates an unverifiable supply chain; if the host were compromised, an attacker could silently replace the binary.
PKGBUILD
1 offending line(s) highlighted
1
# Maintainers: thadah
2
pkgname="synergy3-beta-bin"
3
pkgver="3.7.0"
4
pkgrel="1"
5
pkgdesc="Share a single mouse and keyboard between multiple computers"
6
url="https://symless.com/synergy"
7
license=('custom:Proprietary')
8
arch=("x86_64")
9
source=()
10
sha256sums=()
11
conflicts=('synergy' 'synergy1-bin' 'synergy-git' 'synergy-1.6' 'synergy2-bin' 'synergy3-bin' 'synergy3-beta-bin')
12
depends=('openssl' 'alsa-lib' 'libei' 'libnotify' 'nss' 'qt6-base' 'libxkbfile' 'libxtst' 'libappindicator-gtk3' 'libayatana-appindicator')
13
optdepends=('pugixml')
14
options=("!strip")
15
install="${pkgname}.install"
16
17
# Anonymous download permalink provided by Symless
18
_permalink="https://email.mg.symless.com/c/eJxMjj1PwzAUAH-Ns1HZ7zn-GDw0gggJECBRqXSzXqw2JbEj2xTCr0d0Yry75QYHPgjTBCe0EdAqbXRzcgSDIkNGWC-EFzRwoFaRJm81tzo0owMOiisB3CJyvbHEEbHVEAhRKmSSz8dNWecplLKhNDeTO9W6FIZbBj2D_l-7Ugz5uDLo_TIy6If0Fafkhz9BFEph2Nf0ESLDW3l4PEO8ed6_bA_nRcLr2hHa9odqd6fu3_P-8-nte_fQiXbXZHcJMWWDRgKT3Gdf8xivQxcHvwEAAP__hk5M-A"
19
20
_pkgfile="synergy-${pkgver}-beta-linux-noble-x86_64.pkg.tar.zst"
21
22
prepare() {
23
curl -fsSL -c "${srcdir}/cookies.txt" -o /dev/null "$_permalink"
24
curl -fsSL -b "${srcdir}/cookies.txt" -o "${srcdir}/page.html" \
25
"https://symless.com/synergy/download/package/synergy-personal-v3/arch-linux/${_pkgfile}"
26
27
local token
28
token=$(grep -oP '(?<=\\"token\\":\\")[^\\"]+' "${srcdir}/page.html" | head -n1)
29
if [[ -z "$token" ]]; then
30
echo "Failed to get download token."
31
return 1
32
fi
33
34
echo "Downloading .pkg.tar.zst file with permalink token..."
35
curl -fsSL -o "${srcdir}/${_pkgfile}" "https://symless.com/synergy/api/download/${_pkgfile}?token=${token}"
36
}
37
38
package() {
39
# Extract the .tar.zst file keeping permissions
40
bsdtar -xpf "${srcdir}/${_pkgfile}" -C "${pkgdir}/" opt usr
41
42
install -d "${pkgdir}/usr/bin"
43
ln -s /opt/Synergy/synergy "${pkgdir}/usr/bin/synergy"
44
ln -s /opt/Synergy/synergy-core "${pkgdir}/usr/bin/synergy-core"
45
46
# Install the user service and enable it.
47
install -Dm644 "${pkgdir}/opt/Synergy/resources/services/global/synergy.service" "${pkgdir}/etc/systemd/user/synergy.service"
48
install -d "${pkgdir}/etc/systemd/user/graphical-session.target.wants"
49
ln -s /etc/systemd/user/synergy.service "${pkgdir}/etc/systemd/user/graphical-session.target.wants/synergy.service"
50
51
# Install the login service into the system unit directory (disabled).
52
install -Dm644 "${pkgdir}/opt/Synergy/resources/services/system/synergy.service" "${pkgdir}/usr/lib/systemd/system/synergy.service"
53
54
# Add the loginInfo file
55
install -d "${pkgdir}/etc/Synergy"
56
install -m666 /dev/null "${pkgdir}/etc/Synergy/loginInfo"
57
58
chmod 4755 "${pkgdir}/opt/Synergy/chrome-sandbox" || true
59
}
60
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 |