live2d-kanban-desktop-bin

MEDIUM
maintainer zxp19821005 0 votes scanned 2026-09-17 00:27:14.276658
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-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

Report a package

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

0 / 4000
Your suggestion