openvsp-bin
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:40
source=("${pkgname}-${pkgver}.deb"::"https://openvsp.org/download.php?file=zips/current/linux/OpenVSP-${pkgver}-Ubuntu-24.04_amd64.deb"
llm_review
An AI model (anthropic/claude-4.6-sonnet-20260217) reviewed this and agrees it is MEDIUM (confidence 72%): This PKGBUILD installs prebuilt Debian binaries from openvsp.org (the official OpenVSP project website) directly onto an Arch system. While openvsp.org is the legitimate upstream vendor site, the package is still distributing pre-compiled binaries rather than building from source, which is a supply-chain concern if the host is compromised. Additionally, it pulls a specific older version of libxml2 from the Arch Linux archive (archive.archlinux.org) and installs it as a system library at /usr/lib/libxml2.so.2, which could conflict with or shadow the system's libxml2. Both sources have sha256sums. The main concerns are: (1) executed prebuilt binaries from a non-Arch source, and (2) installing a pinned older libxml2 into /usr/lib which could affect other packages. However, openvsp.org is the genuine upstream project site, and archive.archlinux.org is an official Arch mirror. This is a legitimate but non-standard packaging approach that carries real supply-chain risk (prebuilt binaries, older library shadowing) without being clearly malicious — consistent with MEDIUM severity.
PKGBUILD
1 offending line(s) highlighted# Maintainer: rpx <rpx at clearlight dot systems>
#
# Debian-compiled binaries.
# requires libxml2.so.2 from Arch archive.
# Thanks to Enzi, Unity Engine Forum:
# https://discussions.unity.com/t/arch-libxml2-so-2-is-missing/1637394
pkgname=openvsp-bin
pkgdesc='A parametric aircraft geometry tool'
pkgver=3.45.3
pkgrel=1
arch=('i686' 'x86_64')
url='https://openvsp.org'
license=('NASA OPEN SOURCE AGREEMENT VERSION 1.3')
depends=(
'cblas'
'cminpack'
'freeglut'
'gcc'
'git'
'glew'
'libxml2'
'pandoc'
'python'
'swig')
optdepends=(
'doxygen: generate documentation'
'graphviz: generate documentation')
makedepends=('cmake' 'unzip')
conflicts=('openvsp')
_name=OpenVSP-OpenVSP_${pkgver}
# requires libxml2.so.2 from Arch archive.
libxml2_pkgver=2.13.8
libxml2_pkgrel=1
source=("${pkgname}-${pkgver}.deb"::"https://openvsp.org/download.php?file=zips/current/linux/OpenVSP-${pkgver}-Ubuntu-24.04_amd64.deb"
"https://archive.archlinux.org/packages/l/libxml2/libxml2-${libxml2_pkgver}-1-x86_64.pkg.tar.zst")
sha256sums=('bddf907e18881b28a949e0d67b8043adbdd1ba98f5698473097ea8c1cbd8bf67'
'2a1b0ab11ff213a57268d20fff183e3fd3e4ab9191aeed473de336b77bdfa6e1')
prepare() {
mkdir -p "${srcdir}/build"
mkdir -p "${srcdir}/lib"
}
build() {
# Debian package is just an ar archive containing two tars.
ar x ${pkgname}-${pkgver}.deb
# Delete the remainder
rm debian-binary control.tar.gz ${pkgname}-${pkgver}.deb
# Put the package into form standard for compilation from source
mv data.tar.gz "${srcdir}/build/OpenVSP-${pkgver}-Linux.tar.gz"
bsdtar -xf "${srcdir}/libxml2-${libxml2_pkgver}-1-x86_64.pkg.tar.zst" -C "${srcdir}" $"usr/lib/libxml2.so.${libxml2_pkgver}"
}
package() {
cd ${srcdir}/build
tar xvf "OpenVSP-${pkgver}-Linux.tar.gz"
mv ./opt/OpenVSP "./OpenVSP-${pkgver}-Linux" && rmdir opt
cd "./OpenVSP-${pkgver}-Linux"
mkdir -p ${pkgdir}/usr/share/${pkgname}
# binaries
# cp vsp vspaero vspscript vsploads vspaero_adjoint vspaero_complex vspaero_opt vspviewer \
# ${pkgdir}/usr/share/${pkgname}
cp vsp vspaero vspscript vsploads vspaero_opt vspviewer \
${pkgdir}/usr/share/${pkgname}
# misc
cp README.md ${pkgdir}/usr/share/${pkgname}
cp LICENSE ${pkgdir}/usr/share/${pkgname}
cp vspIcon.png ${pkgdir}/usr/share/${pkgname}
cp -r airfoil ${pkgdir}/usr/share/${pkgname}
cp -r CustomScripts ${pkgdir}/usr/share/${pkgname}
cp -r help ${pkgdir}/usr/share/${pkgname}
cp -r matlab ${pkgdir}/usr/share/${pkgname}
test -d python && cp -r python ${pkgdir}/usr/share/${pkgname}
cp -r scripts ${pkgdir}/usr/share/${pkgname}
cp -r textures ${pkgdir}/usr/share/${pkgname}
cp -r vspaero_ex ${pkgdir}/usr/share/${pkgname}
# binary symlinks, relative
mkdir -p ${pkgdir}/usr/bin
cd ${pkgdir}/usr/share/${pkgname}
# ln -sr vsp vspaero vspscript vsploads vspaero_adjoint vspaero_complex vspaero_opt vspviewer \
# ${pkgdir}/usr/bin/
ln -sr vsp vspaero vspscript vsploads vspaero_opt vspviewer \
${pkgdir}/usr/bin/
# libraries missing in Arch
mkdir -p ${pkgdir}/usr/lib
# libxml2.so.2
install -m 755 "${srcdir}/usr/lib/libxml2.so.${libxml2_pkgver}" "$pkgdir/usr/lib/libxml2.so.${libxml2_pkgver}"
ln -sf $"libxml2.so.${libxml2_pkgver}" "$pkgdir/usr/lib/libxml2.so.2"
}
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 |