expandrive-bin
The package downloads a prebuilt binary .deb from 'corp.hosted-by-files.com', which is not the official ExpanDrive distribution host (expandrive.com). This is a third-party/CDN-style host that is not verifiably controlled by the ExpanDrive vendor. A prebuilt binary executed on the user's system from an unofficial host constitutes a genuine supply-chain risk — if the host is compromised or the file is substituted, arbitrary code runs as the user. The sha256sum provides some integrity protection against in-transit tampering, but does not guarantee the binary was originally sourced from the legitimate vendor. The pattern is consistent with a maintainer using a personal or corporate file-hosting service rather than the official vendor download URL, which is a real (if not clearly malicious) supply-chain concern. Medium severity is appropriate.
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:26
"https://corp.hosted-by-files.com/builds/ExpanDrive/${pkgver}/linux/ExpanDrive_${pkgver%.*}_amd64.deb")
llm_review
An AI model (anthropic/claude-4.6-sonnet-20260217) reviewed this and agrees it is MEDIUM (confidence 72%): The package downloads a prebuilt binary .deb from 'corp.hosted-by-files.com', which is not the official ExpanDrive distribution host (expandrive.com). This is a third-party/CDN-style host that is not verifiably controlled by the ExpanDrive vendor. A prebuilt binary executed on the user's system from an unofficial host constitutes a genuine supply-chain risk — if the host is compromised or the file is substituted, arbitrary code runs as the user. The sha256sum provides some integrity protection against in-transit tampering, but does not guarantee the binary was originally sourced from the legitimate vendor. The pattern is consistent with a maintainer using a personal or corporate file-hosting service rather than the official vendor download URL, which is a real (if not clearly malicious) supply-chain concern. Medium severity is appropriate.
PKGBUILD
1 offending line(s) highlighted# Maintainer: Lionel Fernandes <lsfe87 at gmail dot com>
# Contributor: Wagner Skellington <kelson dot glint at gmail dot com>
# Contributor: Seth Murphy <seth.murphy18@gmail.com>
pkgname='expandrive-bin'
pkgver='2025.11.21.808'
pkgrel='1'
pkgdesc='A utility for managing multiple cloud storage services'
arch=('x86_64')
url='https://www.expandrive.com/'
license=('custom:proprietary')
depends=(
'alsa-lib'
'at-spi2-core'
'fuse2'
'gtk3'
'libnotify'
'libsecret'
'libxss'
'libxtst'
'nss'
'xdg-utils'
)
source=('LICENSE'
"https://corp.hosted-by-files.com/builds/ExpanDrive/${pkgver}/linux/ExpanDrive_${pkgver%.*}_amd64.deb")
sha256sums=('0d764524f7d542d267cc68a7fdfa07ebd3146e784aa89fc157fceb800001d823'
'b558f56dfcd9c7486d2498695847e06edf16960e7a1056f67345dce48d73036a')
prepare() {
# Create the package directory, if it doesn't already exist
if [ ! -d "$srcdir/data" ]; then
mkdir "$srcdir/data"
else
# If the directory exists, wipe its contents
rm -rf "$srcdir/data"
mkdir "$srcdir/data"
fi
tar -xf "$srcdir/data.tar.xz" -C "$srcdir/data"
# Remove unnecessary files from the package
rm -rf "$srcdir/data/opt/ExpanDrive/resources/app.asar.unpacked"
}
package() {
# Copy the source files to the package directory
cp -R "$srcdir/data/opt/" "$pkgdir/opt/"
cp -R "$srcdir/data/usr/" "$pkgdir/usr/"
# Install the LICENSE file in the correct place
install -Dm644 LICENSE "$pkgdir/usr/share/licenses/$pkgname/LICENSE"
}
post_install() {
# Link the ExpanDrive binary to /usr/local/bin
ln -sf '/opt/ExpanDrive/expandrive' '/usr/local/bin/expandrive'
}
pre_remove() {
# Remove ExpanDrive from /usr/local/bin
rm -f '/usr/local/bin/expandrive'
}
Scan history
| Scanned at (UTC) | Severity | Rules |
|---|---|---|
| 2026-09-17 00:27:14 | Medium | 2 |
| 2026-09-16 00:03:17 | Medium | 2 |
| 2026-09-15 00:25:31 | Medium | 2 |
| 2026-09-14 00:27:57 | Medium | 2 |
| 2026-09-13 00:19:54 | Medium | 2 |
| 2026-09-12 00:25:17 | Medium | 2 |
| 2026-09-11 00:19:22 | Medium | 2 |
| 2026-09-10 00:22:44 | Medium | 2 |
| 2026-09-09 00:04:09 | Medium | 2 |
| 2026-09-08 00:18:08 | Medium | 2 |
| 2026-09-07 00:30:15 | Medium | 2 |
| 2026-09-06 00:17:06 | Medium | 2 |
| 2026-09-05 00:16:27 | Medium | 2 |
| 2026-09-04 00:03:13 | Medium | 2 |
| 2026-09-03 00:15:47 | Medium | 2 |
| 2026-09-02 00:02:31 | Medium | 2 |
| 2026-09-01 00:11:19 | Medium | 2 |
| 2026-08-31 00:19:57 | Medium | 2 |
| 2026-08-30 00:04:14 | Medium | 2 |
| 2026-08-29 00:29:17 | Medium | 2 |