voicevox-engine

maintainer oech3 · 0 votes · scanned 2026-08-03 00:08:14.047287
MEDIUM
View on AUR ↗
Why flagged The PKGBUILD has two genuine supply-chain concerns: (1) It downloads a prebuilt binary 7z archive from GitHub releases (voicevox_engine-linux-cpu-x64-${pkgver}.7z.001) containing shared libraries (libonnxruntime.so, libvoicevox_core.so) that will be installed and executed. While GitHub releases from the official VOICEVOX project is a legitimate upstream source, these are prebuilt native binaries with checksums, which is a real but moderate risk. (2) It runs 'pip install kanalizer pyopenjtalk' from PyPI without pinning versions or verifying checksums, meaning any future compromise of those PyPI packages would affect users. The kanalizer and pyopenjtalk packages are then installed into the final package. The open_jtalk dictionary is from r9y9's GitHub releases (the pyopenjtalk maintainer), which is the canonical source. Overall: prebuilt native .so files from official upstream + unpinned pip installs of PyPI packages constitute a real medium-severity supply-chain concern, not a false positive, though there is no evidence of active malice.

Triggered rules

MEDIUM pip install of an external package pip_install_external

`pip install <package>` fetches an unpinned package from PyPI at build time, outside source=() and makepkg's checksums.

  • PKGBUILD:27 venv/bin/pip install kanalizer pyopenjtalk
MEDIUM AI review llm_review

An AI model (anthropic/claude-4.6-sonnet-20260217) reviewed this and agrees it is MEDIUM (confidence 72%): The PKGBUILD has two genuine supply-chain concerns: (1) It downloads a prebuilt binary 7z archive from GitHub releases (voicevox_engine-linux-cpu-x64-${pkgver}.7z.001) containing shared libraries (libonnxruntime.so, libvoicevox_core.so) that will be installed and executed. While GitHub releases from the official VOICEVOX project is a legitimate upstream source, these are prebuilt native binaries with checksums, which is a real but moderate risk. (2) It runs 'pip install kanalizer pyopenjtalk' from PyPI without pinning versions or verifying checksums, meaning any future compromise of those PyPI packages would affect users. The kanalizer and pyopenjtalk packages are then installed into the final package. The open_jtalk dictionary is from r9y9's GitHub releases (the pyopenjtalk maintainer), which is the canonical source. Overall: prebuilt native .so files from official upstream + unpinned pip installs of PyPI packages constitute a real medium-severity supply-chain concern, not a false positive, though there is no evidence of active malice.

PKGBUILD

1 offending line(s) highlighted
1
2
3pkgname=voicevox-engine
4pkgver=0.24.1
5pkgrel=1
6pkgdesc='A http server for text-to-speech'
7arch=('x86_64')
8license=('LGPL-3.0-only+nonfree')
9url=https://github.com/VOICEVOX/voicevox_engine
10_syspymods=(fastapi importlib-metadata jaraco.text jinja markupsafe numpy platformdirs pydantic pydantic-core python-multipart semver soxr soundfile yaml
11pyworld) #AUR
12depends=(python ${_syspymods[@]/#/python-})
13makedepends=(python-{build,setuptools,installer})
14source=("${url}/archive/refs/tags/${pkgver}.tar.gz"
15https://github.com/r9y9/open_jtalk/releases/download/v1.11.1/open_jtalk_dic_utf_8-1.11.tar.gz
16#${url}/releases/download/${pkgver}/voicevox_engine-linux-nvidia-${pkgver}.7z.00{1,2}
17${url}/releases/download/${pkgver}/voicevox_engine-linux-cpu-x64-${pkgver}.7z.001) # should be built from src
18noextract=(*.7z.*)
19sha256sums=('0488d3b98b4e2876c3070c2287347df92cacf724f0e986c60cad7aabffb6cf7e'
20 'fe6ba0e43542cef98339abdffd903e062008ea170b04e7e2a35da805902f382a'
21 'edc810a1a2a0540b4e38abfeb6b08e9284fa06508f1d1cab6c2379260645aa11')
22
23build(){
24 bsdtar -xf voicevox_engine-linux-cpu-x64-${pkgver}.7z.001 linux-cpu-x64/{*.json,libonnxruntime.so,libvoicevox_core.so,*.json,model,resources}
25 # buldle missing modules as a workaround
26 python -m venv venv --system-site-packages
27 venv/bin/pip install kanalizer pyopenjtalk
28
29 cd ${pkgname/-/_}-$pkgver
30 rm -rf resources # avoid build err. non production engine
31 python -m build --wheel --no-isolation
32}
33
34package() {
35 python -m installer --destdir="$srcdir" voicevox_engine-${pkgver}/dist/*.whl
36 install -d "$pkgdir"/usr/lib/VOICEVOX
37 mv linux-cpu-x64 "$pkgdir"/usr/lib/VOICEVOX/vv-engine
38 mv usr/lib/python*/site-packages/* -t "$pkgdir"/usr/lib/VOICEVOX/vv-engine
39 mv venv/lib/python*/site-packages/{kanalizer,pyopenjtalk}* -t "$pkgdir"/usr/lib/VOICEVOX/vv-engine
40 mv open_jtalk* -t "$pkgdir"/usr/lib/VOICEVOX/vv-engine/pyopenjtalk
41 sed '1c#!/usr/bin/python' voicevox_engine-${pkgver}/run.py | install -Dm755 /dev/stdin "$pkgdir"/usr/lib/VOICEVOX/vv-engine/run
42}
43

Scan history

Scanned at (UTC)SeverityRules
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

Report a package

Reports go to the AURWatch maintainer (one person) and are read by hand. No login required.

0 / 4000
Your suggestion