coolvlviewer-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:50
"http://sldev.free.fr/binaries/CoolVLViewer-${pkgver}-Linux-x86_64-Setup"
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 binary installer from sldev.free.fr, which is the official (though personal/hobbyist-style) distribution host for the Cool VL Viewer project — a long-standing third-party Second Life viewer maintained by Henri Beauchamp. The domain is the project's canonical upstream, not a random personal host. However, the binary is executed directly during build() (chmod +x + run as installer), and only a SHA1 checksum is used for integrity verification. SHA1 is cryptographically weak and insufficient for verifying an executed binary. The combination of: (1) a prebuilt binary installer being executed, (2) hosted on a free-tier personal domain (free.fr) with no TLS in the source URL (http://), and (3) only SHA1 integrity checking, constitutes a genuine medium-severity supply-chain risk. If the host were compromised or the binary silently replaced, the weak checksum provides little protection. This is not clearly malicious, but it is a real concern for an executed binary package.
PKGBUILD
1 offending line(s) highlighted# Maintainer: Alex Tharp <alex at toastercup dot io>
_appname="coolvlviewer"
pkgname="${_appname}-bin"
provides=("${_appname}")
conflicts=("${_appname}")
pkgver=1.32.2.44
pkgrel=1
pkgdesc="A third-party viewer for Second Life and OpenSim grids"
url="http://sldev.free.fr"
license=("GPL-2.0-or-later")
arch=("x86_64")
depends=(
"apr-util"
"atk"
"gconf"
"glib2>=2.32"
"glu"
"lib32-libidn"
"lib32-libsndfile"
"lib32-util-linux"
"lib32-zlib"
"libcups"
"libgl"
"libidn"
"libxcomposite"
"libxcrypt-compat"
"libxcursor"
"libxrandr"
"libxss"
"libxtst"
"mesa"
"pangox-compat"
"sdl"
)
optdepends=(
"alsa-lib: for ALSA support"
"gst-plugins-bad: for video support"
"gst-plugins-good: for video support"
"gst-plugins-ugly: for video support"
"lib32-alsa-lib: for ALSA support"
"lib32-freealut: for OpenAL support"
"lib32-libidn11: for voice support"
"libpulse: for PulseAudio support"
"nvidia-utils: for NVIDIA support"
"pepper-flash: for inworld Flash support"
"wine: for SLVoice support"
)
install="${_appname}.install"
source=(
"http://sldev.free.fr/binaries/CoolVLViewer-${pkgver}-Linux-x86_64-Setup"
"${_appname}.desktop"
)
sha1sums=(
"1deb49fb1e89b2c61ddce1a5f556b69a27418af0"
"314763ee16ca2e2224c402ec18bf5b24157ce8b8"
)
build() {
cd "${srcdir}"
chmod +x "CoolVLViewer-${pkgver}-Linux-x86_64-Setup"
./CoolVLViewer-${pkgver}-Linux-x86_64-Setup --mode silent --destination "${srcdir}/${_appname}/"
}
package() {
install -D -m644 "${srcdir}/${_appname}.desktop" "${pkgdir}/usr/share/applications/${_appname}.desktop"
install -D -m755 "${srcdir}/${_appname}/cvlv_icon.png" "${pkgdir}/usr/share/pixmaps/clvl_icon.png"
install -D -m644 "${srcdir}/${_appname}/licenses.txt" "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE"
# Move Data to Destination Directory
install -d "${pkgdir}/opt/"
mv "${_appname}/" "${pkgdir}/opt/"
# Change Permissions of files to root:games
chown -R root:games "${pkgdir}/opt/${_appname}"
chmod -R g+rw "${pkgdir}/opt/${_appname}"
# Make Binary Group-Executable
chmod g+x "${pkgdir}/opt/${_appname}/cool_vl_viewer"
install -d "${pkgdir}/usr/bin"
ln -s "/opt/${_appname}/cool_vl_viewer" "${pkgdir}/usr/bin/${_appname}"
}
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 |