restream-chat

maintainer trustin · 1 votes · scanned 2026-08-03 00:08:14.047287
MEDIUM
View on AUR ↗
Why flagged The PKGBUILD downloads a prebuilt AppImage binary (an Electron/Chromium-based executable) directly from chat-client.restream.io, which is the official Restream.io subdomain for their chat client distribution. This is the vendor's own CDN/distribution host, not a personal or third-party mirror, so the risk is lower than a truly unofficial host. However, it is still a prebuilt binary blob (not built from source), and there is no GPG signature verification — only a sha512sum. The sha512sum does pin the exact binary, which mitigates silent substitution as long as the checksum itself is trustworthy. The binary is extracted and installed as an executable. This is a standard pattern for AppImage-based AUR packages (similar to many other commercial app packages in AUR like Slack, Discord, etc.). The concern is real but typical for this class of package: if the vendor's host is compromised and the PKGBUILD's checksum is not updated, users would be protected; but if the PKGBUILD itself is updated with a new checksum pointing to a malicious binary, there is no independent verification. This is a genuine but routine supply-chain concern for prebuilt binary packages, not an active attack. Rating remains medium.

Triggered rules

MEDIUM source=() URL on a non-standard host 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:41 "https://chat-client.restream.io/${_pkgname}"
MEDIUM AI review 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 AppImage binary (an Electron/Chromium-based executable) directly from chat-client.restream.io, which is the official Restream.io subdomain for their chat client distribution. This is the vendor's own CDN/distribution host, not a personal or third-party mirror, so the risk is lower than a truly unofficial host. However, it is still a prebuilt binary blob (not built from source), and there is no GPG signature verification — only a sha512sum. The sha512sum does pin the exact binary, which mitigates silent substitution as long as the checksum itself is trustworthy. The binary is extracted and installed as an executable. This is a standard pattern for AppImage-based AUR packages (similar to many other commercial app packages in AUR like Slack, Discord, etc.). The concern is real but typical for this class of package: if the vendor's host is compromised and the PKGBUILD's checksum is not updated, users would be protected; but if the PKGBUILD itself is updated with a new checksum pointing to a malicious binary, there is no independent verification. This is a genuine but routine supply-chain concern for prebuilt binary packages, not an active attack. Rating remains medium.

PKGBUILD

1 offending line(s) highlighted
1# Maintainer: Trustin Lee <t@motd.kr>
2# Former Maintainer: Arnaud Dovi <mr.dovi@gmail.com>
3
4pkgname=restream-chat
5pkgver=2.5.4
6pkgrel=2
7pkgdesc='Keep your streaming chats in one place by Restream.io'
8arch=('x86_64')
9url='https://restream.io/chat'
10license=()
11provides=(
12 'restream-chat'
13)
14conflicts=(
15 'restream-chat'
16)
17depends=(
18 # [FIXME?] libffpmeg.so is not an official library, is it necessary to bring it to AUR ? (currently only lib32-libffpmeg exists in the AUR...)
19 'alsa-lib'
20 'avahi'
21 'gmp'
22 'gnutls'
23 'gtk3'
24 'krb5'
25 'libglvnd'
26 'libnotify'
27 'libxau'
28 'libxdmcp'
29 'libxss'
30 'nss'
31)
32optdepends=(
33 'libappindicator-gtk2' # libappindicator is shipped in the original AppImage but I'm unsure if it is necessary.
34)
35makedepends=(
36 'coreutils'
37)
38_srcname="squashfs-root"
39_pkgname="Restream+Chat-${pkgver}-beta.AppImage"
40source=(
41 "https://chat-client.restream.io/${_pkgname}"
42)
43sha512sums=(
44 '0bab803e1904c38758816f28e4cf1146a6dd9b4344f972cf88aa537d5ca3b7d9e90e8349804b5c3d411d23c88e82c7b376eb926be163ebb0cbb8fa367b6bd594'
45)
46_stop='\e[m'
47_color="\e[33m"
48_bold='\e[1m'
49_prefix=" ${_bold}${_color}==>${_stop} "
50
51prepare() {
52 #cd "$_srcname" || return
53 echo -e "${_prefix}Extracting the official AppImage file"
54 chmod +x "$_pkgname"
55 ./"$_pkgname" --appimage-extract
56}
57
58package() {
59 cd "$_srcname" || return
60
61 echo -e "${_prefix}Creating the package base"
62 install -d "$pkgdir"/{opt/"${pkgname}",usr/bin,usr/share/pixmaps}
63 install -d "$pkgdir/opt/${pkgname}"/{locales,resources}
64
65 echo -e "${_prefix}Copying the package files"
66 install -Dm 644 locales/* -t "$pkgdir"/opt/"${pkgname}"/locales
67 cp -r resources/* -t "$pkgdir"/opt/"${pkgname}"/resources
68 install -Dm 644 icudtl.dat -t "$pkgdir"/opt/"${pkgname}"
69 install -Dm 644 snapshot_blob.bin -t "$pkgdir"/opt/"${pkgname}"
70 install -Dm 644 v8_context_snapshot.bin -t "$pkgdir"/opt/"${pkgname}"
71 install -Dm 644 natives_blob.bin -t "$pkgdir"/opt/"${pkgname}"
72 install -Dm 644 chrome_100_percent.pak -t "$pkgdir"/opt/"${pkgname}"
73 install -Dm 644 chrome_200_percent.pak -t "$pkgdir"/opt/"${pkgname}"
74 install -Dm 644 resources.pak -t "$pkgdir"/opt/"${pkgname}"
75 # [FIXME?] libffpmeg.so is not an official library, is it necessary to bring it to AUR ? (currently only lib32-libffpmeg exists in the AUR...)
76 install -Dm 644 libffmpeg.so -t "$pkgdir"/opt/"${pkgname}"
77
78 echo -e "${_prefix}Copying the package binaries"
79 install -Dm 755 chrome-sandbox -t "$pkgdir"/opt/"${pkgname}"
80 install -Dm 755 restream-chat -t "$pkgdir"/opt/"${pkgname}"
81
82 echo -e "${_prefix}Setting up /usr/bin launcher"
83 ln -s /opt/"${pkgname}"/restream-chat "$pkgdir"/usr/bin/restream-chat
84
85 echo -e "${_prefix}Setting up desktop icon"
86 cp restream-chat.png "$pkgdir"/usr/share/pixmaps/restream-chat.png
87
88 echo -e "${_prefix}Setting up desktop shortcuts"
89 sed -e "s|Exec=AppRun|Exec=restream-chat --no-sandbox|" -i restream-chat.desktop
90 install -Dm 644 restream-chat.desktop -t "$pkgdir"/usr/share/applications
91}
92

Scan history

Scanned at (UTC)SeverityRules
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

Report a package

Reports go to the AURWatch maintainer (one person) and are read by hand. No login required.

0 / 4000
Your suggestion