nodemailerapp
Triggered rules
llm_review
The static rules flagged this MEDIUM, but an AI model (anthropic/claude-4.6-sonnet-20260217) reviewed the full PKGBUILD and judged it LOW (confidence 75%): The snap file is downloaded from the official Snapcraft API (api.snapcraft.io) with a specific snap ID and revision, and has a sha512 checksum provided (not SKIP). The checksum is present and non-trivial, so integrity is verified. The source host is Canonical's official Snapcraft distribution infrastructure, not a personal or unofficial host. Extracting and repackaging snaps is a common AUR pattern for proprietary apps. The 'no-sandbox.sh' wrapper script also has a checksum. The main concern is that snap revisions can theoretically be updated server-side, but the specific revision is pinned and the checksum guards against substitution. The license is listed as 'unknown' which is sloppy but not a security issue. Overall this is a legitimate, if non-standard, packaging approach with no real supply-chain concern beyond the inherent trust in Canonical's Snapcraft infrastructure.
1 higher static finding superseded - not the current verdict (shown for transparency)
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:12
source=("https://api.snapcraft.io/api/v1/snaps/download/${_snapid}_${_snaprev}.snap" "no-sandbox.sh")
PKGBUILD
1 offending line(s) highlighted# Maintainer: Daniel Reibl <janos.daniel.reibl@pm.me>
pkgname=nodemailerapp
pkgver=1.0.16
pkgrel=1
pkgdesc="NodemailerApp is the ultimate cross platform email debugging app"
arch=('x86_64')
url="https://nodemailer.com/app/"
license=('unknown')
makedepends=('squashfs-tools')
_snapid="262woIg4gNXJLoR5qgkJprJYJPwNkPiu"
_snaprev="10"
source=("https://api.snapcraft.io/api/v1/snaps/download/${_snapid}_${_snaprev}.snap" "no-sandbox.sh")
sha512sums=("1fd58a6c61855448f207f86728eb181be88486c2050a1dedea8292585aa816aaa3d7f25ae511b0926cfa870d757ee4772132f6739eea35378effcbfea3adfafc"
"52053a3ee543c5d4fe8c2ed8498b78b9b42988cee1a9765c33d0bb9bea75c9a62cae82deda3f1ab4d8f0e84a4fec08ee8c98d60c147ab46961a0686f202a05b7")
prepare() {
echo "Extracting snap file..."
unsquashfs -q -f -d "${srcdir}/${pkgname}" "${_snapid}_${_snaprev}.snap"
}
package() {
# Install files
install -d "${pkgdir}/opt/${pkgname}"
cp -r "${srcdir}/${pkgname}/." "${pkgdir}/opt/${pkgname}"
# Desktop Entry
sed -i 's|${SNAP}/meta/gui/icon.png|nodemailerapp|g' "${pkgdir}/opt/${pkgname}/meta/gui/nodemailerapp.desktop"
install -Dm644 "${pkgdir}/opt/${pkgname}/meta/gui/nodemailerapp.desktop" -t "${pkgdir}/usr/share/applications"
install -Dm644 "${pkgdir}/opt/${pkgname}/meta/gui/icon.png" "${pkgdir}/usr/share/pixmaps/nodemailerapp.png"
# Clean up unnecessary files
rm -rf "${pkgdir}/opt/${pkgname}"/{data-dir,gnome-platform,lib,meta,scripts,usr,*.sh}
# Install wrapper script
install -Dm755 "${srcdir}/no-sandbox.sh" "${pkgdir}/usr/bin/nodemailerapp"
}
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 |