focusatwill-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
https://faw-desktop.s3.amazonaws.com/${_filename}
llm_review
An AI model (anthropic/claude-4.6-sonnet-20260217) reviewed this and agrees it is MEDIUM (confidence 82%): The PKGBUILD downloads a prebuilt AppImage binary from an S3 bucket (faw-desktop.s3.amazonaws.com) that is the vendor's own distribution channel for the Focus@Will desktop app. The AppImage is extracted and executed during the prepare() phase (--appimage-extract) and then installed as a setuid-755 executable. While S3 is not an 'official' distro mirror, this appears to be the upstream vendor's own S3 bucket used for distribution, which is a common pattern for Electron/AppImage apps. A sha512sum is provided, which mitigates substitution attacks. However, the source is still a prebuilt binary from a non-auditable third-party host (not a VCS tag or official package repository), and the binary is executed during build. This is a genuine medium-severity supply-chain concern: if the S3 bucket were compromised or the object replaced (the checksum would catch this, but only if the PKGBUILD is kept up to date), malicious code could be delivered. The sha512 checksum provides meaningful but not complete protection. This is a legitimate medium — not a false positive — but also not a high-severity active attack.
PKGBUILD
1 offending line(s) highlighted# Maintainer: Trustin Lee <t@motd.kr>
pkgname=focusatwill-appimage
pkgver=2.0.0
pkgrel=1
pkgdesc="Focus@Will combines neuroscience and music to boost productivity."
provides=('focusatwill')
conflicts=('focusatwill')
arch=('x86_64')
url="https://focusatwill.com/"
options=(!strip)
_desktop_name=focusatwill.desktop
_filename=focusatwill-${pkgver}.AppImage
source=(
https://faw-desktop.s3.amazonaws.com/${_filename}
)
sha512sums=('af50f014738ae2128fd219ed5783da5a33bc82f272c60de14d93f70f1e55fe0b54ea133e223610e8456153c585357a0acb6202463f54b7d793e8b6b771a18d6d')
prepare() {
cd "$srcdir"
rm -rf squashfs-root
chmod +x $_filename
./$_filename --appimage-extract
sed -i -e "s|Exec=.\+|Exec=env APPIMAGELAUNCHER_DISABLE=1 DESKTOPINTEGRATION=0 /usr/bin/focusatwill.AppImage --disable-seccomp-filter-sandbox|" squashfs-root/${_desktop_name}
}
package() {
echo "Starting install"
install -Dm755 $_filename "$pkgdir"/usr/bin/focusatwill.AppImage
echo "Installing desktop launch file to $pkgdir/usr/bin/focusatwill.AppImage"
install -Dm755 squashfs-root/${_desktop_name} "$pkgdir"/usr/share/applications/${_desktop_name}
echo "Installing icons"
for res in "16x16" "32x32" "48x48" "64x64" "128x128" "256x256" "512x512"; do
install -Dm644 squashfs-root/usr/share/icons/hicolor/$res/apps/focusatwill.png $pkgdir/usr/share/icons/hicolor/$res/apps/focusatwill.png
done
}
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 |