syrinscape-fantasy-player

maintainer tgm4883 · 1 votes · scanned 2026-08-03 00:08:14.047287
MEDIUM
View on AUR ↗
Why flagged The PKGBUILD installs a proprietary prebuilt binary (a Syrinscape player tarball) from the official vendor domain syrinscape.com, which is legitimate. However, the custom DLAGENT is genuinely unusual and worth noting: it overrides ALL https:// downloads with a bash function that first fetches a page, greps for a JavaScript redirect URL, then fetches the actual binary from that redirected URL. This means the actual binary URL is not known at review time and is not covered by the sha256sum in source=() — the checksum listed is for the fantasy tarball but the source=() entry actually points to the scifi URL (note the mismatch: source uses 'linux-scifi' but the filename says 'linux-fantasy', while download_func fetches 'linux-fantasy'). The sha256sum provides some integrity guarantee for whatever ends up downloaded, but the redirect-following download mechanism bypasses normal makepkg verification and the source URL mismatch is a red flag. This is a real, if probably unintentional, supply-chain concern: the binary actually installed comes from a dynamically resolved redirect URL, not the checksummed source entry. The vendor domain is official, so this is not clearly malicious, but the pattern is a genuine medium-risk packaging issue.

Triggered rules

MEDIUM External download from an untrusted host, not in source=() external_download_not_in_source

curl/wget fetches a URL on a non-allowlisted host that is not part of source=(), so it is not checksum-verified by makepkg.

  • PKGBUILD:21 /usr/bin/curl "https://syrinscape.com/get-download/syrinscape-${pkgver//_/-}-linux-fantasy.tar.gz?type=linux&version=${pkgver//_/-}" 2>&1 | /usr/bin/grep -P "\tlocation.href" | /usr/bin/cut -d "'" -f 2 | /usr/bin/xargs -n1 /usr/bin/curl -o syrinscape-${pkgver//_/-}-linux-fantasy.tar.gz
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 source=("syrinscape-${pkgver//_/-}-linux-fantasy.tar.gz::https://www.syrinscape.com/get-download/syrinscape-${pkgver//_/-}-linux-scifi.tar.gz?type=linux&version=${pkgver//_/-}"
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 installs a proprietary prebuilt binary (a Syrinscape player tarball) from the official vendor domain syrinscape.com, which is legitimate. However, the custom DLAGENT is genuinely unusual and worth noting: it overrides ALL https:// downloads with a bash function that first fetches a page, greps for a JavaScript redirect URL, then fetches the actual binary from that redirected URL. This means the actual binary URL is not known at review time and is not covered by the sha256sum in source=() — the checksum listed is for the fantasy tarball but the source=() entry actually points to the scifi URL (note the mismatch: source uses 'linux-scifi' but the filename says 'linux-fantasy', while download_func fetches 'linux-fantasy'). The sha256sum provides some integrity guarantee for whatever ends up downloaded, but the redirect-following download mechanism bypasses normal makepkg verification and the source URL mismatch is a red flag. This is a real, if probably unintentional, supply-chain concern: the binary actually installed comes from a dynamically resolved redirect URL, not the checksummed source entry. The vendor domain is official, so this is not clearly malicious, but the pattern is a genuine medium-risk packaging issue.

PKGBUILD

2 offending line(s) highlighted
1# Maintainer: Thomas Mashos <thomas at mashos dot com>
2pkgname=syrinscape-fantasy-player
3pkgver=1.5.0_p1
4pkgrel=1
5pkgdesc="Soundscape creator and sound design app for fantasy games"
6arch=('x86_64')
7url="https://www.syrinscape.com"
8license=('Proprietary')
9groups=()
10depends=()
11options=(!strip)
12source=("syrinscape-${pkgver//_/-}-linux-fantasy.tar.gz::https://www.syrinscape.com/get-download/syrinscape-${pkgver//_/-}-linux-scifi.tar.gz?type=linux&version=${pkgver//_/-}"
13 "local://syrinscape-fantasy-player.desktop"
14 )
15sha256sums=('32559409ad083ee9f02482144761c4eb39e5a359d35b1fa0085b1e75d3703059' ## syrinscape-${pkgver//_/-}-linux-fantasy.tar.gz
16 'SKIP' ## syrinscape-fantasy-player.desktop
17 )
18
19# Look away, this is gross
20download_func() {
21 /usr/bin/curl "https://syrinscape.com/get-download/syrinscape-${pkgver//_/-}-linux-fantasy.tar.gz?type=linux&version=${pkgver//_/-}" 2>&1 | /usr/bin/grep -P "\tlocation.href" | /usr/bin/cut -d "'" -f 2 | /usr/bin/xargs -n1 /usr/bin/curl -o syrinscape-${pkgver//_/-}-linux-fantasy.tar.gz
22}
23export -f download_func; export pkgver; DLAGENTS=('https::/bin/bash -c download_func %o %u')
24
25prepare() {
26 mkdir -p "${srcdir}/usr/share/applications"
27 cp "syrinscape-fantasy-player.desktop" "${srcdir}/usr/share/applications/syrinscape-fantasy-player.desktop"
28 sed -i "s/VERSIONNUM/${pkgver//_/-}/g" "${srcdir}/usr/share/applications/syrinscape-fantasy-player.desktop"
29}
30
31package() {
32 mkdir -p "${pkgdir}/opt"
33 mv "Syrinscape" "${pkgdir}/opt/Syrinscape Fantasy Player"
34
35 mkdir -p "${pkgdir}/usr/share/applications"
36 mv "usr/share/applications/syrinscape-fantasy-player.desktop" "${pkgdir}/usr/share/applications/syrinscape-fantasy-player.desktop"
37}
38
39

Scan history

Scanned at (UTC)SeverityRules
2026-08-03 00:08:14 MEDIUM 3
2026-08-02 00:16:08 MEDIUM 3
2026-08-01 00:11:18 MEDIUM 3
2026-07-31 00:14:10 MEDIUM 3
2026-07-30 00:17:23 MEDIUM 3
2026-07-29 00:25:53 MEDIUM 3
2026-07-28 00:07:28 MEDIUM 3
2026-07-27 00:24:32 MEDIUM 3
2026-07-26 00:07:32 MEDIUM 3
2026-07-25 00:13:44 MEDIUM 3
2026-07-24 00:02:28 MEDIUM 3
2026-07-23 00:14:47 MEDIUM 3
2026-07-22 00:29:32 MEDIUM 3
2026-07-21 00:24:15 MEDIUM 3
2026-07-20 00:19:49 MEDIUM 3
2026-07-19 00:17:08 MEDIUM 3
2026-07-18 00:14:48 MEDIUM 3
2026-07-17 00:06:16 MEDIUM 3
2026-07-16 00:05:41 MEDIUM 3
2026-07-15 00:09:25 MEDIUM 3

Report a package

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

0 / 4000
Your suggestion