live2d-kanban-desktop-bin

MEDIUM
maintainer zxp19821005 0 votes scanned 2026-11-01 00:21:48.120785
View on AUR
Why flagged

The PKGBUILD downloads a prebuilt AppImage (containing app.asar and unpacked native modules) from a legitimate GitHub release with a pinned checksum, which is standard practice for Electron app packaging in AUR. However, there are two notable concerns: (1) The Live2D Cubism Core JS library is fetched from cubism.live2d.com with 'SKIP' for its checksum, meaning any change to that file on the CDN would go undetected — this is a real supply-chain risk since it is executed JavaScript loaded into the Electron app. (2) The app.asar itself is a prebuilt binary blob whose contents cannot be easily audited. The GitHub source has a proper checksum, so that part is pinned. The SKIP checksum on the live2dcubismcore.min.js is the primary concern — it is an executed script from a third-party CDN with no integrity verification, which constitutes a genuine medium-severity supply-chain risk.

Triggered rules

Medium source=() URL on a non-standard host 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:22 "live2dcubismcore.min-${pkgver}.js::https://cubism.live2d.com/sdk-web/cubismcore/live2dcubismcore.min.js"
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 downloads a prebuilt AppImage (containing app.asar and unpacked native modules) from a legitimate GitHub release with a pinned checksum, which is standard practice for Electron app packaging in AUR. However, there are two notable concerns: (1) The Live2D Cubism Core JS library is fetched from cubism.live2d.com with 'SKIP' for its checksum, meaning any change to that file on the CDN would go undetected — this is a real supply-chain risk since it is executed JavaScript loaded into the Electron app. (2) The app.asar itself is a prebuilt binary blob whose contents cannot be easily audited. The GitHub source has a proper checksum, so that part is pinned. The SKIP checksum on the live2dcubismcore.min.js is the primary concern — it is an executed script from a third-party CDN with no integrity verification, which constitutes a genuine medium-severity supply-chain risk.

PKGBUILD

1 offending line(s) highlighted
1# Maintainer: zxp19821005 <zxp19821005 at 163 dot com>
2_appname=kanban-desktop
3pkgname="live2d-${_appname}-bin"
4pkgver=2.8.0
5_electronversion=22
6pkgrel=7
7pkgdesc="An AI Based live2d Kanban for Desktop Users Using Electron.基于Electron制作的桌面看板娘,支持日程提醒、小窗模式、ChatGPT集成、网页搜索、本地moc模型加载与独立设置界面等"
8arch=('x86_64')
9url="https://studio.zerolite.cn/2022/07/02/waifuprojv2/"
10_ghurl="https://github.com/JimHans/live2d-kanban-desktop"
11license=('GPL-3.0-only')
12conflicts=("${pkgname%-bin}")
13provides=("${pkgname%-bin}")
14depends=(
15 "electron${_electronversion}"
16)
17makedepends=(
18 'gendesk'
19)
20source=(
21 "${pkgname%-bin}-${pkgver}.tar.gz::${_ghurl}/releases/download/v${pkgver}/${_appname}-${pkgver}-AppImage.tar.gz"
22 "live2dcubismcore.min-${pkgver}.js::https://cubism.live2d.com/sdk-web/cubismcore/live2dcubismcore.min.js"
23 "${pkgname%-bin}-${pkgver}.png::https://raw.githubusercontent.com/JimHans/live2d-kanban-desktop/v${pkgver}/assets/app.png"
24 "${pkgname%-bin}.sh"
25)
26sha256sums=('ec355432de2d20013c2c80c576dda280da5c4103441f72784a3b998a2af6094f'
27 'SKIP'
28 '105e68828a678c96212f99c8159ad29c94032f8c2de2a0035af097164b247d7f'
29 '291f50480f5a61bc9c68db7d44cd0412071128706baa868a9cb854f8779a1980')
30prepare() {
31 sed -i -e "
32 s/@electronversion@/${_electronversion}/g
33 s/@appname@/${pkgname%-bin}/g
34 s/@runname@/app.asar/g
35 s/@cfgdirname@/${_appname}/g
36 s/@options@//g
37 " "${srcdir}/${pkgname%-bin}.sh"
38 gendesk -q -f -n --pkgname="${pkgname%-bin}" --pkgdesc="${pkgdesc}" --categories="Utility" --name="${pkgname%-bin}" --exec="${pkgname%-bin} %U"
39 }
40package() {
41 install -Dm755 "${srcdir}/${pkgname%-bin}.sh" "${pkgdir}/usr/bin/${pkgname%-bin}"
42 install -Dm644 "${srcdir}/${_appname}-${pkgver}/resources/app.asar" -t "${pkgdir}/usr/lib/${pkgname%-bin}"
43 cp -r "${srcdir}/${_appname}-${pkgver}/resources/app.asar.unpacked" "${pkgdir}/usr/lib/${pkgname%-bin}"
44 install -Dm755 "${srcdir}/live2dcubismcore.min-${pkgver}.js" "${pkgdir}/usr/lib/${pkgname%-bin}/live2dcubismcore.min.js"
45 install -Dm644 "${srcdir}/${pkgname%-bin}.desktop" -t "${pkgdir}/usr/share/applications"
46 install -Dm644 "${srcdir}/${pkgname%-bin}-${pkgver}.png" "${pkgdir}/usr/share/pixmaps/${pkgname%-bin}.png"
47}

Scan history

Scanned at (UTC)SeverityRules
2026-11-01 00:21:48 Medium 2
2026-10-31 00:07:41 Medium 2
2026-10-30 00:29:30 Medium 2
2026-10-29 00:13:55 Medium 2
2026-10-28 00:06:54 Medium 2
2026-10-27 00:23:28 Medium 2
2026-10-26 00:12:40 Medium 2
2026-10-25 00:20:48 Medium 2
2026-10-24 00:14:55 Medium 2
2026-10-23 00:02:19 Medium 2
2026-10-22 00:13:10 Medium 2
2026-10-21 00:12:50 Medium 2
2026-10-20 00:10:31 Medium 2
2026-10-19 00:03:55 Medium 2
2026-10-18 00:06:55 Medium 2
2026-10-17 00:21:55 Medium 2
2026-10-16 00:12:47 Medium 2
2026-10-15 00:28:05 Medium 2
2026-10-14 00:06:47 Medium 2
2026-10-13 00:23:45 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