beeper-bin
maintainer Sanitary4788
· 1 votes
· scanned 2026-08-03 00:08:14.047287
MEDIUM
View on AUR ↗
Why flagged
The package downloads a prebuilt AppImage from a non-standard host (beeper-desktop.download.beeper.com), which is not inherently malicious but presents a supply-chain risk if the host is compromised; the AppImage is extracted and modified, but no remote code execution or data exfiltration is evident.
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:21
source=('Beeper-4.3.0-x86_64.AppImage::https://beeper-desktop.download.beeper.com/builds/Beeper-4.3.0-x86_64.AppImage')
MEDIUM
AI review
llm_review
An AI model (qwen/qwen3-235b-a22b-2507) reviewed this and agrees it is MEDIUM (confidence 85%): The package downloads a prebuilt AppImage from a non-standard host (beeper-desktop.download.beeper.com), which is not inherently malicious but presents a supply-chain risk if the host is compromised; the AppImage is extracted and modified, but no remote code execution or data exfiltration is evident.
-
PKGBUILD:60
eval "$_oldnull"
PKGBUILD
2 offending line(s) highlighted
1
# Maintainer: Serph91P <aur+beeper-bin@users.noreply.github.com>
2
# Generated-maintenance note: scripts/aur_update.py updates pkgver, source and sha256sums.
3
4
_pkgname='beeper'
5
_install_path='opt'
6
7
pkgname='beeper-bin'
8
pkgver=4.3.0
9
pkgrel=1
10
epoch=1
11
pkgdesc='The ultimate messaging app'
12
depends=('libappindicator' 'libnotify' 'libsecret' 'hicolor-icon-theme')
13
makedepends=('asar')
14
url='https://www.beeper.com/beta'
15
license=('LicenseRef-beeper')
16
arch=('x86_64')
17
options=('!strip' '!debug')
18
conflicts=('beeper' 'beeper-v4-bin')
19
provides=('beeper')
20
21
source=('Beeper-4.3.0-x86_64.AppImage::https://beeper-desktop.download.beeper.com/builds/Beeper-4.3.0-x86_64.AppImage')
22
sha256sums=('fc326640c406cd916738d8d067d7ebf4d0ed1aff4a83c8c5f1a07300e5320948')
23
24
build() {
25
local _filename="Beeper-${pkgver}-x86_64.AppImage"
26
27
chmod +x "$srcdir/$_filename"
28
"$srcdir/$_filename" --appimage-extract
29
30
sed -Ei 's@^(if \[ -z "\$APPDIR" \] ; then)$@APPDIR="/'"$_install_path"'/beeper"\n\1@' "$srcdir/squashfs-root/AppRun"
31
}
32
33
_package_beeper() {
34
install -Dm755 "$srcdir/squashfs-root/AppRun" "$pkgdir/usr/bin/beeper"
35
36
install -dm755 "$pkgdir/$_install_path"
37
mv "$srcdir/squashfs-root" "$pkgdir/$_install_path/beeper"
38
39
rm -f "$pkgdir/$_install_path/beeper/beepertexts.desktop"
40
41
local _resources_dir="$pkgdir/$_install_path/beeper/resources"
42
local _app_dir="$_resources_dir/app"
43
local _asar_path="$_resources_dir/app.asar"
44
local _main_dir="$_app_dir/build/main"
45
local _linux_config_file
46
local _main_mjs_files
47
local _oldnull
48
49
if [ ! -d "$_app_dir" ] && [ -f "$_asar_path" ]; then
50
asar extract "$_asar_path" "$_app_dir" || return 1
51
rm -f "$_asar_path"
52
fi
53
54
_linux_config_file=""
55
56
if [ -d "$_main_dir" ]; then
57
_oldnull=$(shopt -p nullglob || true)
58
shopt -s nullglob
59
_main_mjs_files=("$_main_dir"/*.mjs)
60
eval "$_oldnull"
61
62
if [ -n "${_main_mjs_files[*]}" ]; then
63
_linux_config_file=$(grep -lE 'export\{[a-zA-Z0-9_]+ as registerLinuxConfig\};' "${_main_mjs_files[@]}" 2>/dev/null | head -n1)
64
fi
65
fi
66
67
if [ -z "$_linux_config_file" ] && [ -d "$_app_dir" ]; then
68
_linux_config_file=$(grep -R -lE 'export\{[a-zA-Z0-9_]+ as registerLinuxConfig\};' "$_app_dir" --include='*.mjs' 2>/dev/null | head -n1)
69
fi
70
71
if [ -z "$_linux_config_file" ]; then
72
echo "error: could not find file exporting registerLinuxConfig in $_app_dir" >&2
73
return 1
74
fi
75
76
sed -i 's/export{[a-zA-Z0-9_]* as registerLinuxConfig};/const noopFunc=function(){};export{noopFunc as registerLinuxConfig};/' "$_linux_config_file"
77
}
78
79
package() {
80
install -Dm644 /dev/stdin "$pkgdir/usr/share/applications/beeper.desktop" << END
81
[Desktop Entry]
82
Type=Application
83
Name=Beeper
84
GenericName=Unified Messenger
85
Comment=$pkgdesc
86
Exec=beeper --no-sandbox %U
87
Icon=beepertexts
88
Terminal=false
89
StartupWMClass=BeeperTexts
90
X-AppImage-Version=$pkgver
91
MimeType=x-scheme-handler/beeper;x-scheme-handler/matrix;x-scheme-handler/element;
92
Categories=Network;InstantMessaging;
93
END
94
95
install -Dm644 "$srcdir/squashfs-root/usr/share/icons/hicolor/512x512/apps/beepertexts.png" -t "$pkgdir/usr/share/icons/hicolor/512x512/apps"
96
97
install -Dm644 "$srcdir/squashfs-root/LICENSE.electron.txt" -t "$pkgdir/usr/share/licenses/$pkgname/"
98
install -Dm644 "$srcdir/squashfs-root/LICENSES.chromium.html" -t "$pkgdir/usr/share/licenses/$pkgname/"
99
100
_package_beeper
101
102
chmod -R u+rwX,go+rX,go-w "$pkgdir"
103
}
104
Changes since previous scan
--- PKGBUILD @ 2026-07-31 00:14+++ PKGBUILD @ 2026-08-03 00:08@@ -5,7 +5,7 @@ _install_path='opt' pkgname='beeper-bin'-pkgver=4.2.1004+pkgver=4.3.0 pkgrel=1 epoch=1 pkgdesc='The ultimate messaging app'@@ -18,8 +18,8 @@ conflicts=('beeper' 'beeper-v4-bin') provides=('beeper') -source=('Beeper-4.2.1004-x86_64.AppImage::https://beeper-desktop.download.beeper.com/builds/Beeper-4.2.1004-x86_64.AppImage')-sha256sums=('266783fe0541763e936fb63d2f8dd5d96a05830df2f6ad718888c5ef6dc99ae4')+source=('Beeper-4.3.0-x86_64.AppImage::https://beeper-desktop.download.beeper.com/builds/Beeper-4.3.0-x86_64.AppImage')+sha256sums=('fc326640c406cd916738d8d067d7ebf4d0ed1aff4a83c8c5f1a07300e5320948') build() { local _filename="Beeper-${pkgver}-x86_64.AppImage"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 05:17:13 | 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 05:27:22 | 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 |