webviewer
maintainer LeAlex27
· 0 votes
· scanned 2026-08-03 00:08:14.047287
LOW
View on AUR ↗
Why flagged
The package downloads image assets from Wikipedia Commons during prepare() to generate desktop entries; these are non-executable files, and the worst case of a malicious swap is limited to resource tampering, not code execution.
Triggered rules
LOW
AI review downgraded a static finding
llm_review
The static rules flagged this MEDIUM, but an AI model (qwen/qwen3-235b-a22b-07-25) reviewed the full PKGBUILD and judged it LOW (confidence 95%): The package downloads image assets from Wikipedia Commons during prepare() to generate desktop entries; these are non-executable files, and the worst case of a malicious swap is limited to resource tampering, not code execution.
1 higher static finding superseded - not the current verdict (shown for transparency)
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:25
wget "https://upload.wikimedia.org/wikipedia/commons/thumb/6/6b/WhatsApp.svg/766px-WhatsApp.svg.png" -
PKGBUILD:31
wget "https://upload.wikimedia.org/wikipedia/commons/2/2e/Threema%27s_App_Icon.png" -
PKGBUILD:37
wget "https://upload.wikimedia.org/wikipedia/commons/thumb/0/05/Google_Messages_logo.svg/600px-Google_Messages_logo.svg.png"
PKGBUILD
3 offending line(s) highlighted
1
# Maintainer: Lennart Husvogt <lennart at husvogt dot net>
2
3
pkgname=webviewer
4
pkgver=0.4.1
5
pkgrel=4
6
pkgdesc="Minimal display of a website. Useful for web versions of messengers."
7
arch=('any')
8
url="https://github.com/LeAlex27/webviewer"
9
license=('GPL3')
10
depends=('pyside6' 'qt6-webengine')
11
makedepends=('qt6-base' 'python-setuptools' 'python-build' 'wget' 'gendesk')
12
source=("webviewer.sh"
13
"$pkgname-$pkgver.tar.gz::https://github.com/LeAlex27/$pkgname/archive/refs/tags/$pkgver.tar.gz")
14
15
sha256sums=('f148d8c29d7b549f541d69b6335c92c9b3ee6a4788741339f22bf9356375e6a5'
16
'c4a0493e35a39f323d346974893cf280cc4cab440bf2ea04b6d7f4fbc05d6733')
17
18
# uncomment to generate .desktop files
19
_whatsapp_web=1
20
_threema_web=1
21
_android_messages=1
22
23
prepare() {
24
if [ -n "$_whatsapp_web" ]; then
25
wget "https://upload.wikimedia.org/wikipedia/commons/thumb/6/6b/WhatsApp.svg/766px-WhatsApp.svg.png"
26
gendesk --pkgname "whatsapp_web" --name "WhatsApp Web" --categories "Network;InstantMessaging" \
27
--exec "env QT_QUICK_CONTROLS_STYLE=Material QT_QUICK_CONTROLS_MATERIAL_THEME=Dark QT_QUICK_CONTROLS_MATERIAL_ACCENT=#00a884 QT_QUICK_CONTROLS_MATERIAL_BACKGROUND=#111b21 python -m webviewer --storage-name whatsapp_web --strip-user-agent https://web.whatsapp.com"
28
fi
29
30
if [ -n "$_threema_web" ]; then
31
wget "https://upload.wikimedia.org/wikipedia/commons/2/2e/Threema%27s_App_Icon.png"
32
gendesk --pkgname "threema_web" --name "Threema Web" --categories "Network;InstantMessaging" \
33
--exec "env QT_QUICK_CONTROLS_STYLE=Material QT_QUICK_CONTROLS_MATERIAL_THEME=Light QT_QUICK_CONTROLS_MATERIAL_ACCENT=#25b157 python -m webviewer --storage-name threema_web https://web.threema.ch"
34
fi
35
36
if [ -n "$_android_messages" ]; then
37
wget "https://upload.wikimedia.org/wikipedia/commons/thumb/0/05/Google_Messages_logo.svg/600px-Google_Messages_logo.svg.png"
38
gendesk --pkgname "android_messages" --name "Android Messages" --categories "Network;InstantMessaging" \
39
--exec "env QT_QUICK_CONTROLS_STYLE=Material QT_QUICK_CONTROLS_MATERIAL_THEME=Dark QT_QUICK_CONTROLS_MATERIAL_ACCENT=#8eb7f8 python -m webviewer --storage-name android_messages https://messages.google.com/web/authentication"
40
fi
41
}
42
43
build() {
44
cd "$srcdir/$pkgname-$pkgver"
45
/usr/lib/qt6/rcc -g python -o $pkgname/resources.py $pkgname/resources.qrc
46
python -m build .
47
}
48
49
package() {
50
cd $srcdir
51
install -Dm655 webviewer.sh $pkgdir/usr/bin/webviewer
52
53
# install shortcuts
54
if [ -n "$_whatsapp_web" ]; then
55
install -Dm644 766px-WhatsApp.svg.png $pkgdir/usr/share/pixmaps/whatsapp_web.png
56
install -Dm644 whatsapp_web.desktop $pkgdir/usr/share/applications/whatsapp_web.desktop
57
fi
58
if [ -n "$_threema_web" ]; then
59
install -Dm644 Threema\'s_App_Icon.png $pkgdir/usr/share/pixmaps/threema_web.png
60
install -Dm644 threema_web.desktop $pkgdir/usr/share/applications/threema_web.desktop
61
fi
62
if [ -n "$_android_messages" ]; then
63
install -Dm644 600px-Google_Messages_logo.svg.png $pkgdir/usr/share/pixmaps/android_messages.png
64
install -Dm644 android_messages.desktop $pkgdir/usr/share/applications/android_messages.desktop
65
fi
66
67
cd "$pkgname-$pkgver"
68
python setup.py install --root="$pkgdir" --optimize=1
69
}
70
Scan history
| Scanned at (UTC) | Severity | Rules |
|---|---|---|
| 2026-08-03 00:08:14 | LOW | 2 |
| 2026-08-02 00:16:08 | LOW | 2 |
| 2026-08-01 00:11:18 | LOW | 2 |
| 2026-07-31 00:14:10 | LOW | 2 |
| 2026-07-30 00:17:23 | LOW | 2 |
| 2026-07-29 00:25:53 | LOW | 2 |
| 2026-07-28 00:07:28 | LOW | 2 |
| 2026-07-27 00:24:32 | LOW | 2 |
| 2026-07-26 00:07:32 | LOW | 2 |
| 2026-07-25 00:13:44 | LOW | 2 |
| 2026-07-24 00:02:28 | LOW | 2 |
| 2026-07-23 00:14:47 | LOW | 2 |
| 2026-07-22 00:29:32 | LOW | 2 |
| 2026-07-21 00:24:15 | LOW | 2 |
| 2026-07-20 00:19:49 | LOW | 2 |
| 2026-07-19 00:17:08 | LOW | 2 |
| 2026-07-18 00:14:48 | LOW | 2 |
| 2026-07-17 00:06:16 | LOW | 2 |
| 2026-07-16 00:05:41 | LOW | 2 |
| 2026-07-15 00:09:25 | LOW | 2 |