twos

maintainer heyeddi · 0 votes · base twos-appimage · scanned 2026-08-03 00:08:14.047287
MEDIUM
View on AUR ↗
Why flagged The PKGBUILD downloads a prebuilt AppImage binary from an S3 bucket (twos.s3.us-west-2.amazonaws.com) that is controlled by the upstream vendor (Twos/twosapp.com). The AppImage is then executed during the prepare() phase to extract its contents, and the extracted binary is installed system-wide. While S3 is not an inherently suspicious host and this appears to be the official vendor's distribution channel, S3 buckets can be misconfigured, taken over, or have objects replaced without notice. There is no GPG signature verification — only a sha256sum, which protects against accidental corruption but not against a deliberate upstream substitution at the source. The path '/mac/' in the URL is slightly unusual for a Linux AppImage but not disqualifying. This is a standard AppImage packaging pattern for the AUR, but the combination of executing an unverified binary blob from a cloud storage bucket (rather than a tagged GitHub release or official package repository) constitutes a genuine, if modest, supply-chain risk. The cheaper model's MEDIUM rating is appropriate.

Triggered rules

MEDIUM source=() URL on a non-standard host 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 "https://twos.s3.us-west-2.amazonaws.com/mac/Twos-${pkgver}.AppImage"
MEDIUM AI review llm_review

An AI model (anthropic/claude-4.6-sonnet-20260217) reviewed this and agrees it is MEDIUM (confidence 72%): The PKGBUILD downloads a prebuilt AppImage binary from an S3 bucket (twos.s3.us-west-2.amazonaws.com) that is controlled by the upstream vendor (Twos/twosapp.com). The AppImage is then executed during the prepare() phase to extract its contents, and the extracted binary is installed system-wide. While S3 is not an inherently suspicious host and this appears to be the official vendor's distribution channel, S3 buckets can be misconfigured, taken over, or have objects replaced without notice. There is no GPG signature verification — only a sha256sum, which protects against accidental corruption but not against a deliberate upstream substitution at the source. The path '/mac/' in the URL is slightly unusual for a Linux AppImage but not disqualifying. This is a standard AppImage packaging pattern for the AUR, but the combination of executing an unverified binary blob from a cloud storage bucket (rather than a tagged GitHub release or official package repository) constitutes a genuine, if modest, supply-chain risk. The cheaper model's MEDIUM rating is appropriate.

PKGBUILD

1 offending line(s) highlighted
1# Maintainer: Edmundo Sanchez <zomundo at gmail dot com>
2pkgname=twos
3pkgbase=twos-appimage
4pkgver=7.5.0
5pkgrel=1
6pkgdesc='A simple and beautiful way to capture your thoughts, organize your life, and get things done.'
7arch=('x86_64')
8url='https://twosapp.com/'
9license=('unset')
10depends=('gtk3' 'libxss' 'libindicator-gtk2' 'nss' 'dbus-glib' 'libdbusmenu-gtk2')
11source=(
12 "https://twos.s3.us-west-2.amazonaws.com/mac/Twos-${pkgver}.AppImage"
13)
14sha256sums=('c4e13a0899635f8c29872222a9e4d86b5e5e06a54aa2cc8d682c327015ddbf61')
15
16prepare() {
17 chmod u+x ./Twos-${pkgver}.AppImage
18 ./Twos-${pkgver}.AppImage --appimage-extract
19}
20
21package() {
22 install -dm755 "${pkgdir}/usr/lib"
23 install -dm755 "${pkgdir}/usr/share"
24 install -dm755 "${pkgdir}/usr/bin"
25 install -dm755 "${pkgdir}/usr/share/applications"
26
27 cp -a "${srcdir}/squashfs-root" "${pkgdir}/usr/lib/${pkgname}"
28 find "${pkgdir}/usr/lib/${pkgname}" -type d -exec chmod 755 "{}" \;
29
30 cp -a "${srcdir}/squashfs-root/usr/share/icons" "${pkgdir}/usr/share"
31 chmod -R 755 "${pkgdir}/usr/share/icons"
32
33 sed -i -e 's/AppRun/twos/' "${pkgdir}/usr/lib/${pkgname}/twos.desktop"
34 ln -s "/usr/lib/${pkgname}/twos.desktop" "${pkgdir}/usr/share/applications/${pkgname}.desktop"
35 ln -s "/usr/lib/${pkgname}/twos" "${pkgdir}/usr/bin/${pkgname}"
36}
37

Scan history

Scanned at (UTC)SeverityRules
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

Report a package

Reports go to the AURWatch maintainer (one person) and are read by hand. No login required.

0 / 4000
Your suggestion