plex-desktop
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:70
source=("${pkgname}_${_snaprev}.snap::https://api.snapcraft.io/api/v1/snaps/download/${_snapid}_${_snaprev}.snap"
llm_review
An AI model (anthropic/claude-4.6-sonnet-20260217) reviewed this and agrees it is MEDIUM (confidence 72%): This PKGBUILD downloads a prebuilt Snap package (a SquashFS containing compiled binaries) from api.snapcraft.io and a prebuilt Debian package from ftp.us.debian.org, then extracts and installs them directly into the system. Both are legitimate official sources (Canonical's Snap store API and Debian's official FTP mirror), so the cheaper model's concern about 'non-whitelisted hosts' is somewhat overstated — these are real vendor/distro infrastructure. However, the core concern remains valid: prebuilt binaries from a Snap package are being extracted and installed without any build-from-source step, meaning the user trusts Canonical's snap store signing/distribution chain rather than building from upstream source. The sha256sums are pinned, which mitigates tampering in transit. The appimage-exec-wrapper is pinned to a specific commit from KDE's invent.kde.org. The libwebp.so.6 is extracted from the Debian package and bundled. Overall this is a common AUR pattern for proprietary software distributed as Snap/AppImage/deb, with checksums present — the risk is real (prebuilt binary execution) but not elevated beyond the standard medium concern for such packaging approaches.
PKGBUILD
1 offending line(s) highlighted# Maintainer: username227 <gfrank227 [at] gmail [dot] com>
# Contributor: Ludvig Hozman <ludvig.hozman@gmail.com>
# Contributor: el-gazzle
# Contributor: Adam Hellberg <sharparam@sharparam.com>
pkgname=plex-desktop
pkgver=1.112.0.359
_pkghash=0d79a49f
_snapid=qc6MFRM433ZhI1XjVzErdHivhSOhlpf0
_snaprev=87
_execwrapper=appimage-exec-wrapper
pkgrel=1
pkgdesc="Plex desktop client for linux"
arch=('x86_64')
url='http://plex.tv'
license=('unknown')
depends=(libgl
hicolor-icon-theme
alsa-lib
dbus
expat
ffmpeg
fontconfig
freetype2
gcc-libs
glib2
glibc
harfbuzz
lcms2
libdrm
libjpeg-turbo
libwebp
libx11
libxcb
libxcomposite
libxdamage
libxext
libxfixes
libxkbcommon
libxkbfile
libxml2-legacy
libxrandr
libxslt
libxtst
mesa
minizip
nspr
nss
opus
xcb-util-renderutil
pciutils
libxss
xcb-util-image
libxkbcommon-x11
libxinerama
xcb-util-keysyms
xcb-util-wm
zlib
snappy
libva
libpulse
libxrender
wayland
qt6-base
)
makedepends=(
git
squashfs-tools
)
source=("${pkgname}_${_snaprev}.snap::https://api.snapcraft.io/api/v1/snaps/download/${_snapid}_${_snaprev}.snap"
"http://ftp.us.debian.org/debian/pool/main/libw/libwebp/libwebp6_0.6.1-2.1+deb11u2_amd64.deb"
"https://github.com/flathub/tv.plex.PlexDesktop/raw/master/tv.plex.PlexDesktop.desktop"
"https://github.com/flathub/tv.plex.PlexDesktop/raw/master/tv.plex.PlexDesktop.png"
"iconpatch.patch"
"launcher.patch"
"${_execwrapper}::git+https://invent.kde.org/brauch/appimage-exec-wrapper.git#commit=f8be7f43cfd5d4e81c8c888256b4efc1b269bb4c")
sha256sums=('b1ff3f3eeefc77cdfa2f0362f46ce00683235e7ef1873f90c09328d893a9b944'
'8abc2b1ca77a458bbbcdeb6af5d85316260977370fa2518d017222b3584d9653'
'2215f6bb3a2bbe50ceb3bedcb93f53d11f6a51ec7512f08f68af91da8253261b'
'565178841c318fb4926acf65a68df6dae484c0b705be6dd736858e7408a261d5'
'ba597b7083d64e3ffbcd610aec269a53cc404e4e6ec2a4d31064b5dbe75afb8b'
'f2e52b94e31cc2ed7b4e070024b4db9c7fce5e9909960a102100348167c6a288'
'5ffb1d27fcd19f75e97e1df5cc82bf791896ef326f207c8a6dd058999f858c05')
noextract=("${pkgname}_${_snaprev}.snap")
options=(!debug)
build() {
cd "$srcdir/$_execwrapper"
make
}
package() {
local _snapdir="${srcdir}/snap-extract"
rm -rf "${_snapdir}"
unsquashfs -d "${_snapdir}" "${srcdir}/${pkgname}_${_snaprev}.snap"
install -d "${pkgdir}/opt/${pkgname}"
for _dir in bin lib plugins qml resources data-dir; do
[[ -d "${_snapdir}/${_dir}" ]] && cp -a "${_snapdir}/${_dir}" "${pkgdir}/opt/${pkgname}/"
done
install -Dm755 "${_snapdir}/Plex.sh" "${pkgdir}/opt/${pkgname}/Plex.sh"
install -Dm644 "${_snapdir}/usr/lib/x86_64-linux-gnu/libwebp.so.6.0.2" \
"${pkgdir}/opt/${pkgname}/lib/libwebp.so.6"
install -Dm644 "$_execwrapper"/exec.so "${pkgdir}/opt/${pkgname}"/lib/exec.so
rm -rf "$pkgdir/opt/${pkgname}"/lib/dri
rm -rf "$pkgdir/opt/${pkgname}"/lib/libEGL.so*
rm -rf "$pkgdir/opt/${pkgname}"/lib/libdrm.so*
rm -rf "$pkgdir/opt/${pkgname}"/lib/libdrm_*.so*
rm -rf "$pkgdir/opt/${pkgname}"/lib/libpciaccess.so*
rm -rf "$pkgdir/opt/${pkgname}"/lib/libva.so*
rm -rf "$pkgdir/opt/${pkgname}"/lib/libva-*.so*
install -d "${pkgdir}"/usr/bin
ln -s /opt/${pkgname}/Plex.sh "${pkgdir}"/usr/bin/Plex
install -Dm644 "${srcdir}/tv.plex.PlexDesktop.desktop" -t "${pkgdir}/usr/share/applications"
install -Dm644 "${srcdir}/tv.plex.PlexDesktop.png" -t "${pkgdir}/usr/share/icons/hicolor/256x256/apps/"
patch "$pkgdir"/usr/share/applications/tv.plex.PlexDesktop.desktop "$srcdir"/iconpatch.patch
patch "$pkgdir/opt/${pkgname}"/Plex.sh "$srcdir"/launcher.patch
}
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 |