outline-client-appimage

maintainer razykov · 10 votes · 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 (s3.amazonaws.com/outline-releases/client/linux/...) and installs it as an executable. This is the official Outline client release host used by Jigsaw/Google for distributing Outline client binaries, so it is not a random personal host. However, S3 buckets can be misconfigured, taken over, or the bucket name could be squatted, and AppImages are self-contained executable bundles that run arbitrary code. The sha512sums are present and pin the specific binary, which mitigates substitution risk significantly. The PKGBUILD also executes the AppImage during prepare() to extract assets, meaning the binary runs at build time. On balance: the source is the legitimate upstream distribution channel for Outline, checksums are provided, and this pattern (AppImage from vendor S3) is common in AUR. The medium rating is borderline — the main residual concern is that S3 bucket ownership is not as verifiable as a GitHub release signed by a known key, and the AppImage executes at build time. Keeping medium is defensible but this is close to clean for a well-known open-source project with pinned checksums.

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:15 source=("${_appimage}::https://s3.amazonaws.com/outline-releases/client/linux/${pkgver}/1/Outline-Client.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 (s3.amazonaws.com/outline-releases/client/linux/...) and installs it as an executable. This is the official Outline client release host used by Jigsaw/Google for distributing Outline client binaries, so it is not a random personal host. However, S3 buckets can be misconfigured, taken over, or the bucket name could be squatted, and AppImages are self-contained executable bundles that run arbitrary code. The sha512sums are present and pin the specific binary, which mitigates substitution risk significantly. The PKGBUILD also executes the AppImage during prepare() to extract assets, meaning the binary runs at build time. On balance: the source is the legitimate upstream distribution channel for Outline, checksums are provided, and this pattern (AppImage from vendor S3) is common in AUR. The medium rating is borderline — the main residual concern is that S3 bucket ownership is not as verifiable as a GitHub release signed by a known key, and the AppImage executes at build time. Keeping medium is defensible but this is close to clean for a well-known open-source project with pinned checksums.

PKGBUILD

1 offending line(s) highlighted
1# Contributor: Barfin
2# Maintainer: Vyacheslav Razykov <v.razykov@gmail.com>
3
4_name=outline-client
5pkgname=${_name}-appimage
6pkgver=1.19.0
7pkgrel=1
8pkgdesc="The Outline clients use the popular Shadowsocks protocol, and lean on the Cordova and Electron frameworks."
9arch=(x86_64)
10conflicts=('outline-client-appimage-wayland' 'outline-client-appimage-git')
11url="https://getoutline.org"
12license=("Apache-2.0")
13
14_appimage="Outline-Client_${pkgver}.AppImage"
15source=("${_appimage}::https://s3.amazonaws.com/outline-releases/client/linux/${pkgver}/1/Outline-Client.AppImage"
16 "${pkgname}.install")
17options=('!strip' '!debug')
18depends=('fuse2' 'nss')
19install=${pkgname}.install
20
21sha512sums=('cb385e59b4fdf617a86210362c978224e50fe13364eeeb2a2503fa84b11e690e8c7c8fdd8c493d7ff1cb1f1211b7e72565f89a090b5cbf1701d421b21d0118ec'
22 'a1704e707b0b0a927fae068647eccb426bb51ad2081d27ee18e8991949e9135d28fe502d1a1dba27d333025edd235614b195758d14be2d0eeb97172bea851ddd')
23
24prepare() {
25 chmod +x "${_appimage}"
26
27 # Extract files from AppImage
28 ./${_appimage} --appimage-extract usr/share/icons/hicolor > /dev/null
29 ./${_appimage} --appimage-extract Outline.desktop > /dev/null
30}
31
32build() {
33 # Configuring .desktop for work outside of AppImage container
34 sed -i -E "s|Exec=AppRun|Exec=env DESKTOPINTEGRATION=false /usr/bin/${_name}|"\
35 "squashfs-root/Outline.desktop"
36
37 # Fix permissions
38 chmod -R a-x+rX squashfs-root/usr
39}
40
41package() {
42 # AppImage
43 install -Dm755 "${_appimage}" "${pkgdir}/opt/${_name}/Outline-Client.AppImage"
44
45 # Desktop file
46 install -Dm644 "squashfs-root/Outline.desktop"\
47 "${pkgdir}/usr/share/applications/${_name}.desktop"
48
49 # Icon images
50 install -dm755 "${pkgdir}/usr/share/"
51 cp -a "squashfs-root/usr/share/icons" "${pkgdir}/usr/share/"
52
53 # Symlink executable
54 install -dm755 "${pkgdir}/usr/bin"
55 ln -s "/opt/${_name}/Outline-Client.AppImage" "${pkgdir}/usr/bin/${_name}"
56
57 # Symlink perl shasum
58 ln --symbolic "/usr/bin/core_perl/shasum" "${pkgdir}/usr/bin/shasum"
59}
60
61

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