webviewer
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
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)
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# Maintainer: Lennart Husvogt <lennart at husvogt dot net>
pkgname=webviewer
pkgver=0.4.1
pkgrel=4
pkgdesc="Minimal display of a website. Useful for web versions of messengers."
arch=('any')
url="https://github.com/LeAlex27/webviewer"
license=('GPL3')
depends=('pyside6' 'qt6-webengine')
makedepends=('qt6-base' 'python-setuptools' 'python-build' 'wget' 'gendesk')
source=("webviewer.sh"
"$pkgname-$pkgver.tar.gz::https://github.com/LeAlex27/$pkgname/archive/refs/tags/$pkgver.tar.gz")
sha256sums=('f148d8c29d7b549f541d69b6335c92c9b3ee6a4788741339f22bf9356375e6a5'
'c4a0493e35a39f323d346974893cf280cc4cab440bf2ea04b6d7f4fbc05d6733')
# uncomment to generate .desktop files
_whatsapp_web=1
_threema_web=1
_android_messages=1
prepare() {
if [ -n "$_whatsapp_web" ]; then
wget "https://upload.wikimedia.org/wikipedia/commons/thumb/6/6b/WhatsApp.svg/766px-WhatsApp.svg.png"
gendesk --pkgname "whatsapp_web" --name "WhatsApp Web" --categories "Network;InstantMessaging" \
--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"
fi
if [ -n "$_threema_web" ]; then
wget "https://upload.wikimedia.org/wikipedia/commons/2/2e/Threema%27s_App_Icon.png"
gendesk --pkgname "threema_web" --name "Threema Web" --categories "Network;InstantMessaging" \
--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"
fi
if [ -n "$_android_messages" ]; then
wget "https://upload.wikimedia.org/wikipedia/commons/thumb/0/05/Google_Messages_logo.svg/600px-Google_Messages_logo.svg.png"
gendesk --pkgname "android_messages" --name "Android Messages" --categories "Network;InstantMessaging" \
--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"
fi
}
build() {
cd "$srcdir/$pkgname-$pkgver"
/usr/lib/qt6/rcc -g python -o $pkgname/resources.py $pkgname/resources.qrc
python -m build .
}
package() {
cd $srcdir
install -Dm655 webviewer.sh $pkgdir/usr/bin/webviewer
# install shortcuts
if [ -n "$_whatsapp_web" ]; then
install -Dm644 766px-WhatsApp.svg.png $pkgdir/usr/share/pixmaps/whatsapp_web.png
install -Dm644 whatsapp_web.desktop $pkgdir/usr/share/applications/whatsapp_web.desktop
fi
if [ -n "$_threema_web" ]; then
install -Dm644 Threema\'s_App_Icon.png $pkgdir/usr/share/pixmaps/threema_web.png
install -Dm644 threema_web.desktop $pkgdir/usr/share/applications/threema_web.desktop
fi
if [ -n "$_android_messages" ]; then
install -Dm644 600px-Google_Messages_logo.svg.png $pkgdir/usr/share/pixmaps/android_messages.png
install -Dm644 android_messages.desktop $pkgdir/usr/share/applications/android_messages.desktop
fi
cd "$pkgname-$pkgver"
python setup.py install --root="$pkgdir" --optimize=1
}
Scan history
| Scanned at (UTC) | Severity | Rules |
|---|---|---|
| 2026-09-17 00:27:14 | Low | 2 |
| 2026-09-16 00:03:17 | Low | 2 |
| 2026-09-15 00:25:31 | Low | 2 |
| 2026-09-14 00:27:57 | Low | 2 |
| 2026-09-13 00:19:54 | Low | 2 |
| 2026-09-12 00:25:17 | Low | 2 |
| 2026-09-11 00:19:22 | Low | 2 |
| 2026-09-10 00:22:44 | Low | 2 |
| 2026-09-09 00:04:09 | Low | 2 |
| 2026-09-08 00:18:08 | Low | 2 |
| 2026-09-07 00:30:15 | Low | 2 |
| 2026-09-06 00:17:06 | Low | 2 |
| 2026-09-05 00:16:27 | Low | 2 |
| 2026-09-04 00:03:13 | Low | 2 |
| 2026-09-03 00:15:47 | Low | 2 |
| 2026-09-02 00:02:31 | Low | 2 |
| 2026-09-01 00:11:19 | Low | 2 |
| 2026-08-31 00:19:57 | Low | 2 |
| 2026-08-30 00:04:14 | Low | 2 |
| 2026-08-29 00:29:17 | Low | 2 |