flax
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:18
source=(https://vps2.flaxengine.com/store/builds/Package_$(echo $pkgver | cut -d "." -f 1)_$(echo $pkgver | cut -d "." -f 2)_0$(echo $pkgver | cut -d "." -f 3)/{FlaxEditorLinux,Linux}.zip)
llm_review
An AI model (anthropic/claude-4.6-sonnet-20260217) reviewed this and agrees it is MEDIUM (confidence 72%): The PKGBUILD downloads prebuilt binaries (FlaxEditorLinux.zip and Linux.zip) from vps2.flaxengine.com, which is a subdomain of the official Flax Engine domain (flaxengine.com). This is the vendor's own distribution infrastructure, not a random personal host. The sha256sums are hardcoded, providing integrity verification. However, the host is a VPS subdomain rather than a canonical release CDN (e.g., GitHub releases), and there is no GPG signature verification — only hash checks. The binaries are extracted and executed directly (/opt/flax/Binaries/Editor/Linux/Development/FlaxEditor). Additionally, the package() function references 'desktop_files.tar.gz' and '.run.sh' which are not listed in source=() at all, meaning they are expected to be present in $startdir (the git clone of the AUR package) — this is a non-standard pattern that could allow a compromised AUR repository to inject arbitrary files. The missing sources from source=() is the more concerning issue: .run.sh is chmod +x'd and installed, but its provenance is not verified via the standard source/checksum mechanism. Overall this is a real medium-severity supply-chain concern due to the untracked sources (.run.sh, desktop_files.tar.gz) installed without integrity verification in the standard PKGBUILD sense, combined with prebuilt binary installation.
PKGBUILD
1 offending line(s) highlighted# Maintainer: Totchi Lagawi <chatnoir420 at gmx dot com>
# Fomer maintainer: Crawcik <crawcik@gmail.com>
pkgname=flax
pkgver=1.12.6912
pkgrel=1
pkgdesc="Flax Engine – multi-platform 3D game engine"
arch=('x86_64')
url="https://flaxengine.com"
license=('Flax EULA')
depends=(glibc libx11 libxcursor libxinerama zlib libvorbis libxcb gcc-libs)
makedepends=(dotnet-host)
optdepends=('dotnet-sdk: Dotnet 8 SDK'
'vulkan-driver: Vulkan graphics driver'
'portaudio: PortAudio audio driver'
'libpulse: PulseAudio audio driver'
'jack: JACK audio driver')
source=(https://vps2.flaxengine.com/store/builds/Package_$(echo $pkgver | cut -d "." -f 1)_$(echo $pkgver | cut -d "." -f 2)_0$(echo $pkgver | cut -d "." -f 3)/{FlaxEditorLinux,Linux}.zip)
noextract=({FlaxEditorLinux,Linux}.zip)
conflicts=(flax-git)
sha256sums=('d7d6c835e0845e9b7de67ec2f79df62df67a82cb645b43be9e8c8c28d28dbb45'
'7be2ec219d2abcf5631aee307a9a52ee0051dc8f67fe5d0a542a17a4676c67b3')
package() {
cd "$srcdir"
echo "Extracting Editor..."
mkdir -p "$pkgdir/opt/flax/"
bsdtar -xf "FlaxEditorLinux.zip" -C "$pkgdir/opt/flax"
echo "Extracting Platform files..."
mkdir -p "$pkgdir/opt/flax/Source/Platforms/Linux"
bsdtar -xf "Linux.zip" -C "$pkgdir/opt/flax/Source/Platforms/Linux"
mkdir -p "$pkgdir/usr/bin/"
ln -sf "/opt/flax/Binaries/Editor/Linux/Development/FlaxEditor" "$pkgdir/usr/bin/flax"
echo "Extracting Desktop files..."
cd "$startdir"
bsdtar -xf "desktop_files.tar.gz" -C "$pkgdir/usr/"
cp --no-preserve=mode,ownership ".run.sh" "$pkgdir/opt/flax/"
chmod +x "$pkgdir/opt/flax/.run.sh"
dotnet --list-sdks > /dev/null 2>/dev/null
if [ $? -eq 0 ]; then
_newest=0
for _ver in $(dotnet --list-sdks | cut -b 1); do
if [[ "$_ver" -gt "$_newest" ]]; then
_newest=$_ver
fi
done
if [[ $_newest -lt 8 ]]; then
echo "Flax engine is using Dotnet 8 SDK. Older versions might cause problems."
echo "Please upgrade throught pacman or manually install Dotnet 8 SDK & Runtime!"
fi
else
echo "Command 'dotnet' wasn't detected. Do you have dotnet 8 installed and/or in \$PATH?"
echo "Please install via pacman or manually Dotnet 8 SDK & Runtime!"
fi
}
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 |