pluto-photos-bin
The package downloads a prebuilt AppImage from the project's own domain, which is not on the whitelist but plausibly official; however, since it's an unverifiable binary executable with a fixed checksum, the worst case of a malicious swap would be arbitrary code execution, warranting medium severity.
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://plutophotos.com/downloads/${_appimage}"
llm_review
An AI model (qwen/qwen3-235b-a22b-2507) reviewed this and agrees it is MEDIUM (confidence 95%): The package downloads a prebuilt AppImage from the project's own domain, which is not on the whitelist but plausibly official; however, since it's an unverifiable binary executable with a fixed checksum, the worst case of a malicious swap would be arbitrary code execution, warranting medium severity.
PKGBUILD
1 offending line(s) highlighted# Maintainer: Plutophotos <support at plutophotos dot com>
pkgname=pluto-photos-bin
pkgver=2.4.10
pkgrel=1
pkgdesc='Desktop photo library manager with face detection, smart albums, map view, and cloud import'
arch=('x86_64')
url='https://plutophotos.com'
license=('LicenseRef-Proprietary')
depends=('gtk3' 'nss' 'alsa-lib' 'libxss')
optdepends=('libappindicator-gtk3: tray icon support')
provides=('pluto-photos')
conflicts=('pluto-photos')
options=(!strip !debug)
_appimage="pluto-photos-${pkgver}.AppImage"
source=("${_appimage}::https://plutophotos.com/downloads/${_appimage}"
'pluto-photos.desktop')
sha256sums=('bb6a61864afd4d5c194a9f7f96def09cfa058207ced9b100b7ab1eb9cee127a8'
'39dbd52edef2592f66dfb7fbbf471b62f547457288565e23759584f74606b46b')
noextract=("${_appimage}")
prepare() {
chmod +x "${srcdir}/${_appimage}"
cd "${srcdir}"
./"${_appimage}" --appimage-extract
}
package() {
cd "${srcdir}"
# Install app to /opt
install -d "${pkgdir}/opt/pluto-photos"
cp -r squashfs-root/* "${pkgdir}/opt/pluto-photos/"
# Fix permissions
find "${pkgdir}/opt/pluto-photos" -type d -exec chmod 755 {} +
find "${pkgdir}/opt/pluto-photos" -type f -exec chmod 644 {} +
chmod 755 "${pkgdir}/opt/pluto-photos/pluto-photos"
chmod 4755 "${pkgdir}/opt/pluto-photos/chrome-sandbox"
# Make shared libraries executable
find "${pkgdir}/opt/pluto-photos" -name '*.so*' -exec chmod 755 {} +
# Launcher symlink
install -d "${pkgdir}/usr/bin"
ln -sf /opt/pluto-photos/pluto-photos "${pkgdir}/usr/bin/pluto-photos"
# Desktop entry
install -Dm644 "${srcdir}/pluto-photos.desktop" \
"${pkgdir}/usr/share/applications/pluto-photos.desktop"
# Icons from extracted AppImage
for size in 16 32 48 64 128 256 512 1024; do
_icon="squashfs-root/usr/share/icons/hicolor/${size}x${size}/apps/pluto-photos.png"
if [ -f "${_icon}" ]; then
install -Dm644 "${_icon}" \
"${pkgdir}/usr/share/icons/hicolor/${size}x${size}/apps/pluto-photos.png"
fi
done
}
Changes since previous scan
--- PKGBUILD @ 2026-06-20 16:03+++ PKGBUILD @ 2026-08-19 03:41@@ -1,6 +1,6 @@ # Maintainer: Plutophotos <support at plutophotos dot com> pkgname=pluto-photos-bin-pkgver=2.3.35+pkgver=2.4.10 pkgrel=1 pkgdesc='Desktop photo library manager with face detection, smart albums, map view, and cloud import' arch=('x86_64')@@ -14,7 +14,7 @@ _appimage="pluto-photos-${pkgver}.AppImage" source=("${_appimage}::https://plutophotos.com/downloads/${_appimage}" 'pluto-photos.desktop')-sha256sums=('aade747c4d6fd5509ca926efb3ffb88cf37656bf7d20cbcbe2da171f3906dcf6'+sha256sums=('bb6a61864afd4d5c194a9f7f96def09cfa058207ced9b100b7ab1eb9cee127a8' '39dbd52edef2592f66dfb7fbbf471b62f547457288565e23759584f74606b46b') noextract=("${_appimage}") Scan history
| Scanned at (UTC) | Severity | Rules |
|---|---|---|
| 2026-08-19 03:41:13 | Medium | 2 |
| 2026-06-20 16:03:41 | Clean | 2 |
| 2026-06-20 00:50:07 | Medium | 2 |
| 2026-06-20 00:18:46 | Medium | 2 |
| 2026-06-19 23:51:18 | Medium | 2 |
| 2026-06-19 19:07:35 | Low | 2 |
| 2026-06-18 18:55:24 | Clean | 2 |
| 2026-06-18 16:11:54 | Medium | 1 |