wazo-desktop-appimage
Triggered rules
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:15
source=("${_appimage}::https://mirror.wazo.io/songbird/${pkgver}/${_appimage}")
llm_review
An AI model (anthropic/claude-4.6-sonnet-20260217) reviewed this and agrees it is MEDIUM (confidence 72%): This PKGBUILD downloads and executes a prebuilt AppImage binary from mirror.wazo.io, which is the official Wazo project mirror (wazo.io is the upstream vendor's domain). The sha256sum is pinned, which mitigates substitution risk at the point of download. However, the AppImage is executed during the prepare() phase (to extract desktop/icon files) before being installed, meaning a compromised binary would achieve code execution at build time. The host (mirror.wazo.io) appears to be the official vendor mirror rather than a personal or third-party host, making this a standard AppImage packaging pattern rather than a clear supply-chain attack. The risk is real but typical for AppImage packages: trust is placed in the vendor's mirror and the sha256 checksum. This is a genuine medium concern (executed binary from a non-GitHub/non-PyPI host) but not an active attack.
PKGBUILD
1 offending line(s) highlighted# Maintainer: Fabien Michel <fabien.michel@hespul.org>
_pkgname=wazo-desktop
pkgname=${_pkgname}-appimage
pkgver=1.19.0
pkgrel=1
pkgdesc="Wazo desktop client for wazo VOIP server"
arch=('x86_64')
url="https://wazo.io/download/"
license=('unknown')
provides=(${_pkgname})
_appimage=Wazo-Desktop-${pkgver}.AppImage
_installdir=/opt/${pkgname}
_installappimage=Wazo-Desktop.AppImage
source=("${_appimage}::https://mirror.wazo.io/songbird/${pkgver}/${_appimage}")
noextract=("${_appimage}")
# Require !strip to avoid corrupt AppImage file
# Require !debug to workaround bug making strip still occure.
options=("!strip" "!debug")
sha256sums=('738d319821da589fb04b5742bd12f08c544de00cba884b1a66133e017e0f79fe')
prepare() {
# Make AppImage executable
chmod +x "${_appimage}"
# Extract icons and desktop files from AppImage
./${_appimage} --appimage-extract "wazo-desktop.desktop" > /dev/null 2>&1
./${_appimage} --appimage-extract "usr/share/icons" > /dev/null 2>&1
# Fix desktop file
sed -i "s+Exec=AppRun+Exec=${_installdir}/${_installappimage}+" "squashfs-root/wazo-desktop.desktop"
}
package() {
# Install AppImage
install -Dm755 "${srcdir}/${_appimage}" "${pkgdir}/${_installdir}/${_installappimage}"
mkdir -p "${pkgdir}/usr/bin"
ln -s "/${_installdir}/${_installappimage}" "${pkgdir}/usr/bin/${_pkgname}"
# Install desktop file
install -Dm644 "squashfs-root/wazo-desktop.desktop" "${pkgdir}/usr/share/applications/${_pkgname}.desktop"
# Install icons
install -dm755 "$pkgdir/usr/share/icons"
cp -dpr --no-preserve=ownership "squashfs-root/usr/share/icons" "$pkgdir/usr/share"
chmod -R 755 "$pkgdir/usr/share/icons"
find "$pkgdir/usr/share/icons" -type f -exec chmod 644 {} \;
}
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 |