vllm-xpu
The package pipes bootstrap.pypa.io/get-pip.py directly to a Python interpreter at build time (unverified remote code execution), then installs packages from https://wheels.vllm.ai/xpu/ — a non-official, non-whitelisted wheel index that could serve arbitrary prebuilt binaries; while wheels.vllm.ai appears to be the vLLM project's own distribution host and bootstrap.pypa.io is the canonical pip bootstrap, the combination of piping a remote script to a shell and pulling prebuilt wheels from an extra index with no checksum verification represents a meaningful supply-chain risk.
Triggered rules
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:56
curl -sS https://bootstrap.pypa.io/get-pip.py | "$pkgdir/opt/vllm-xpu/bin/python"
install_untrusted_index
An install command is pointed at a custom package index / registry on a non-allowlisted host (--index-url / --registry / --extra-index-url), a classic dependency-confusion vector.
-
PKGBUILD:74
$_pip install -v --extra-index-url https://wheels.vllm.ai/xpu/ -r "$_req_file" -
PKGBUILD:78
$_pip install -v --extra-index-url https://wheels.vllm.ai/xpu/ .
zero_votes_recent
Uploaded within the last 14 days with 2 or fewer community votes — little peer review so far.
llm_review
An AI model (anthropic/claude-sonnet-4.6) reviewed this and agrees it is MEDIUM (confidence 72%): The package pipes bootstrap.pypa.io/get-pip.py directly to a Python interpreter at build time (unverified remote code execution), then installs packages from https://wheels.vllm.ai/xpu/ — a non-official, non-whitelisted wheel index that could serve arbitrary prebuilt binaries; while wheels.vllm.ai appears to be the vLLM project's own distribution host and bootstrap.pypa.io is the canonical pip bootstrap, the combination of piping a remote script to a shell and pulling prebuilt wheels from an extra index with no checksum verification represents a meaningful supply-chain risk.
PKGBUILD
3 offending line(s) highlighted# Maintainer: cantosun99 <privat at cantosun dot de>
pkgname=vllm-xpu
pkgver=0.32.0
pkgrel=1
pkgdesc="vLLM optimized for Intel Arc GPUs"
arch=('x86_64')
url="https://github.com/vllm-project/vllm"
license=('MIT')
# python311 is required because vLLM and Triton XPU explicitly reject Python 3.14
depends=('python311' 'intel-compute-runtime' 'level-zero-loader' 'intel-gmmlib' 'intel-deep-learning-essentials')
makedepends=('python311' 'cmake' 'ninja' 'gcc' 'curl')
provides=('vllm')
conflicts=('vllm')
source=("vllm-${pkgver}.tar.gz::https://github.com/vllm-project/vllm/archive/refs/tags/v${pkgver}.tar.gz")
sha256sums=('bf592c132f27bbb5f65cff0bbd2ee873eae722b79c8286934fd5b5cf88b43d61')
install=$pkgname.install
build() {
cd "vllm-${pkgver}"
# Source Intel OneAPI environment for the SYCL compiler
if [ -f /opt/intel/oneapi/setvars.sh ]; then
source /opt/intel/oneapi/setvars.sh > /dev/null 2>&1 || true
else
echo "ERROR: /opt/intel/oneapi/setvars.sh not found."
echo "Please ensure intel-deep-learning-essentials is fully installed."
exit 1
fi
# Set XPU target and limit RAM usage (MAX_JOBS)
export VLLM_TARGET_DEVICE=xpu
export MAX_JOBS=${MAX_JOBS:-$(nproc)}
# Fix for setuptools-scm failing on GitHub release tarballs (missing .git folder)
export SETUPTOOLS_SCM_PRETEND_VERSION=$pkgver
}
package() {
cd "vllm-${pkgver}"
# Re-source OneAPI for the package step
if [ -f /opt/intel/oneapi/setvars.sh ]; then
source /opt/intel/oneapi/setvars.sh > /dev/null 2>&1 || true
fi
export VLLM_TARGET_DEVICE=xpu
export MAX_JOBS=${MAX_JOBS:-$(nproc)}
export SETUPTOOLS_SCM_PRETEND_VERSION=$pkgver
# Create an isolated virtual environment directly in the install prefix.
# We use --without-pip just in case Arch's python311 split package removed ensurepip.
# This perfectly bypasses PEP 668 (EXTERNALLY-MANAGED) restrictions!
/usr/bin/python3.11 -m venv --without-pip "$pkgdir/opt/vllm-xpu"
# Download and install pip directly into the isolated venv
curl -sS https://bootstrap.pypa.io/get-pip.py | "$pkgdir/opt/vllm-xpu/bin/python"
local _pip="$pkgdir/opt/vllm-xpu/bin/python -m pip"
# Upgrade pip and wheel
$_pip install --upgrade pip wheel setuptools
# Find the correct XPU requirements file (vLLM changed its folder structure recently)
local _req_file=""
if [ -f requirements-xpu.txt ]; then
_req_file="requirements-xpu.txt"
elif [ -f requirements/xpu.txt ]; then
_req_file="requirements/xpu.txt"
fi
# Install XPU specific requirements.
# We force the extra index URL to guarantee pip finds triton==3.7.2+xpu!
if [ -n "$_req_file" ]; then
$_pip install -v --extra-index-url https://wheels.vllm.ai/xpu/ -r "$_req_file"
fi
# Build and install vLLM
$_pip install -v --extra-index-url https://wheels.vllm.ai/xpu/ .
# Fix shebang paths that were hardcoded to the build directory.
# During package creation, pip writes shebangs pointing to the build tree
# (e.g., /home/user/.../pkg/vllm-xpu/opt/vllm-xpu/bin/python), which no longer
# exists after installation. Rewrite them to point to the final install location.
local _build_python="$pkgdir/opt/vllm-xpu/bin/python"
local _final_python="/opt/vllm-xpu/bin/python"
find "$pkgdir/opt/vllm-xpu/bin" -type f -print0 | \
xargs -0 sed -i "s|#!${_build_python}|#!${_final_python}|g"
# Create wrapper scripts in /usr/bin
install -d "$pkgdir/usr/bin"
# Wrapper for OpenAI API server (legacy entry point alias)
cat <<'EOF' > "$pkgdir/usr/bin/vllm-xpu"
#!/bin/bash
[ -f /opt/intel/oneapi/setvars.sh ] && source /opt/intel/oneapi/setvars.sh > /dev/null 2>&1 || true
exec /opt/vllm-xpu/bin/vllm serve "$@"
EOF
chmod +x "$pkgdir/usr/bin/vllm-xpu"
# Wrapper for vllm CLI (e.g. vllm serve, vllm bench)
cat <<'EOF' > "$pkgdir/usr/bin/vllm-serve-xpu"
#!/bin/bash
[ -f /opt/intel/oneapi/setvars.sh ] && source /opt/intel/oneapi/setvars.sh > /dev/null 2>&1 || true
exec /opt/vllm-xpu/bin/vllm "$@"
EOF
chmod +x "$pkgdir/usr/bin/vllm-serve-xpu"
}
Scan history
| Scanned at (UTC) | Severity | Rules |
|---|---|---|
| 2026-10-18 11:24:11 | Medium | 4 |
| 2026-10-18 11:22:05 | Medium | 4 |