js-design-electron-bin

maintainer zxp19821005 · 1 votes · scanned 2026-08-03 00:08:14.047287
MEDIUM
View on AUR ↗
Why flagged The package downloads a prebuilt AppImage from a non-standard host (download.js.design), which is not on common trust whitelists and could allow supply-chain tampering of an executable with a skipped checksum; however, it is plausibly the official project's own distribution domain.

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:16 "${pkgname%-bin}-${pkgver}-x86_64.AppImage::https://download.js.design/assets/download/%E5%8D%B3%E6%97%B6%E8%AE%BE%E8%AE%A1%20Linux%E7%89%88.AppImage"
MEDIUM AI review llm_review

An AI model (qwen/qwen3-235b-a22b-07-25) reviewed this and agrees it is MEDIUM (confidence 85%): The package downloads a prebuilt AppImage from a non-standard host (download.js.design), which is not on common trust whitelists and could allow supply-chain tampering of an executable with a skipped checksum; however, it is plausibly the official project's own distribution domain.

PKGBUILD

1 offending line(s) highlighted
1# Maintainer: zxp19821005 <zxp19821005 at 163 dot com>
2_pkgname=js.design
3pkgname="${_pkgname//./-}-electron-bin"
4pkgver=1.0.7
5_electronversion=15
6pkgrel=5
7pkgdesc="A professional UI design software tailored for Chinese designers.(Prebuilt version.Use system-wide electron)即时设计"
8arch=('x86_64')
9url="https://js.design"
10license=("LicenseRef-custom")
11conflicts=("${_pkgname//./-}")
12depends=(
13 "electron${_electronversion}"
14)
15source=(
16 "${pkgname%-bin}-${pkgver}-x86_64.AppImage::https://download.js.design/assets/download/%E5%8D%B3%E6%97%B6%E8%AE%BE%E8%AE%A1%20Linux%E7%89%88.AppImage"
17 "LICENSE.txt"
18 "${pkgname%-bin}.sh"
19)
20sha256sums=('3697482be454c0191810f39b0b93eb3c28eb5e9c77c6c3ad0634269f8e1a2bd5'
21 'f1c8afcb7fbd3ad91d1f8b4bea8d66a21f9cb85be22b16ce652b66ca9473c616'
22 'a774c2f54fbbeeaac3cefc0f7250796d30c86d27f0fd40b7eaf9c0fdb021623d')
23pkgver() {
24 cd "${srcdir}/squashfs-root"
25 grep "X-AppImage-Version" "${_pkgname}.desktop" | sed "s/X-AppImage-Version=//g"
26}
27_get_app_dir() {
28 find "${srcdir}" -type f -name "resources.pak" -exec dirname {} + | head -n 1
29}
30_check_electron_version() {
31 echo "Verifying Electron version..."
32 local _app_dir=$(_get_app_dir)
33 local _main_exe=""
34 if [[ -n "${_app_dir}" ]]; then
35 _main_exe=$(find "${_app_dir}" -maxdepth 1 -type f -executable -printf '%s %p\n' | sort -nr | head -n 1 | cut -d' ' -f2-)
36 fi
37 if [[ -n "${_main_exe}" ]]; then
38 local _elec_ver=$(strings "${_main_exe}" | grep '^Chrome/[0-9.]* Electron/[0-9]' | cut -d'/' -f3 | cut -d'.' -f1 | head -n 1)
39 if [[ -n "${_elec_ver}" ]]; then
40 if [[ "${_elec_ver}" != "${_electronversion}" ]]; then
41 echo -e "\033[1;31mWarning: Electron version mismatch! Detected: ${_elec_ver}, Expected: ${_electronversion}\033[0m"
42 else
43 echo -e "Electron version verified: \033[1;31m${_elec_ver}\033[0m"
44 fi
45 fi
46 else
47 echo -e "\033[1;33mNote: Could not find Electron binary for version verification.\033[0m"
48 fi
49}
50prepare() {
51 sed -i -e "
52 s/@electronversion@/${_electronversion}/g
53 s/@appname@/${pkgname%-bin}/g
54 s/@runname@/app.asar/g
55 s/@cfgdirname@/${_pkgname}/g
56 " "${srcdir}/${pkgname%-bin}.sh"
57 if [ ! -x "${srcdir}/${pkgname%-bin}-${pkgver}-${CARCH}.AppImage" ];then
58 chmod +x "${srcdir}/${pkgname%-bin}-${pkgver}-${CARCH}.AppImage"
59 fi
60 if [ -d "${srcdir}/squashfs-root" ];then
61 rm -rf "${srcdir}/squashfs-root"
62 fi
63 "${srcdir}/${pkgname%-bin}-${pkgver}-${CARCH}.AppImage" --appimage-extract > /dev/null
64 _check_electron_version
65 local _app_dir=$(_get_app_dir)
66 sed -i -e "
67 s/AppRun --no-sandbox/${pkgname%-bin}/g
68 s/Icon=${_pkgname}/Icon=${pkgname%-bin}/g
69 " "${_app_dir}/${_pkgname}.desktop"
70}
71package() {
72 install -Dm755 "${srcdir}/${pkgname%-bin}.sh" "${pkgdir}/usr/bin/${pkgname%-bin}"
73 install -Dm755 -d "${pkgdir}/usr/lib/${pkgname%-bin}"
74 local _app_dir=$(_get_app_dir)
75 cp -a "${_app_dir}/resources/". "${pkgdir}/usr/lib/${pkgname%-bin}/"
76 install -Dm644 "${_app_dir}/${_pkgname}.desktop" "${pkgdir}/usr/share/applications/${pkgname%-bin}.desktop"
77 find "${srcdir}" -type f \( -name "*.png" -o -name "*.svg" \) -path "*share/icons/*" | while read -r _i; do
78 _extension="${_i##*.}"
79 _icon_path="${_i#*share/icons/}"
80 _target_dir="/usr/share/icons/$(dirname "${_icon_path}")"
81 install -Dm644 "${_i}" "${pkgdir}${_target_dir}/${pkgname%-bin}.${_extension}"
82 done
83 install -Dm644 "${srcdir}/LICENSE.txt" -t "${pkgdir}/usr/share/licenses/${pkgname}"
84}
85

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