termark-bin

maintainer zxp19821005 · 0 votes · scanned 2026-08-18 00:03:42.021799
MEDIUM
View on AUR ↗
Why flagged Downloads a prebuilt AppImage binary from a non-standard host (f.next-terminal.com) that is not clearly the project's official release infrastructure; while checksums are provided and the binary is unpacked/repackaged rather than run directly, the source host is unverifiable and could be swapped to deliver malicious code.

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:27 source_aarch64=("${pkgname%-bin}-${pkgver}-aarch64.AppImage::https://f.next-terminal.com/${pkgname%-bin}/${_pkgname}-${pkgver}-arm64.AppImage")
LOW Few votes, recently uploaded zero_votes_recent

Uploaded within the last 14 days with 2 or fewer community votes — little peer review so far.

MEDIUM AI review llm_review

An AI model (anthropic/claude-sonnet-4.6) reviewed this and agrees it is MEDIUM (confidence 70%): Downloads a prebuilt AppImage binary from a non-standard host (f.next-terminal.com) that is not clearly the project's official release infrastructure; while checksums are provided and the binary is unpacked/repackaged rather than run directly, the source host is unverifiable and could be swapped to deliver malicious code.

PKGBUILD

1 offending line(s) highlighted
1# Maintainer: zxp19821005 <zxp19821005 at 163 dot com>
2pkgname=termark-bin
3_pkgname=Termark
4pkgver=1.3.0
5_electronversion=41
6pkgrel=1
7pkgdesc=" One SSH client, for every device.Manage assets and credentials, connect hosts, transfer files, and use AI to handle daily operations more efficiently.(Prebuilt version.Use system-wide electron)"
8arch=(
9 'aarch64'
10 'x86_64'
11)
12url="https://www.termark.app"
13license=('LicenseRef-custom')
14provides=("${pkgname%-bin}=${pkgver}")
15conflicts=("${pkgname%-bin}")
16depends=(
17 "electron${_electronversion}"
18 'nodejs'
19)
20makedepends=(
21 'asar'
22)
23source=(
24 "LICENSE.html::${url}/privacy.html"
25 "${pkgname%-bin}.sh"
26)
27source_aarch64=("${pkgname%-bin}-${pkgver}-aarch64.AppImage::https://f.next-terminal.com/${pkgname%-bin}/${_pkgname}-${pkgver}-arm64.AppImage")
28source_x86_64=("${pkgname%-bin}-${pkgver}-x86_64.AppImage::https://f.next-terminal.com/${pkgname%-bin}/${_pkgname}-${pkgver}.AppImage")
29sha256sums=('ce2e251a5542df30cf43a6550c0502921a6e15bbd0b7b124575ea99854a101e8'
30 'a774c2f54fbbeeaac3cefc0f7250796d30c86d27f0fd40b7eaf9c0fdb021623d')
31sha256sums_aarch64=('f600199fdef474aa1a77cd2af986c7689cfc6a5ff835aa141dc14ecdd98264ee')
32sha256sums_x86_64=('4b9a090884ac9d8e39096814974e1d453996c04e4cdf3689e151dbf147692c03')
33_get_app_dir() {
34 find "${srcdir}" -type f -name "resources.pak" -exec dirname {} + | head -n 1
35}
36_check_electron_version() {
37 echo "Verifying Electron version..."
38 local _main_exe=$(find "$(_get_app_dir)" -maxdepth 1 -type f -executable -printf '%s %p\n' | sort -nr | head -1 | cut -d' ' -f2-)
39 [[ -z "${_main_exe}" ]] && echo -e "\033[1;33mNote: Could not find Electron binary.\033[0m" && return
40 local _elec_ver=$(strings "${_main_exe}" | grep -oP 'Electron/\K[0-9]+' | head -1)
41 [[ -z "${_elec_ver}" ]] && echo -e "\033[1;33mNote: Could not determine Electron version.\033[0m" && return
42 [[ "${_elec_ver}" != "${_electronversion}" ]] &&
43 echo -e "\033[1;31mWarning: Electron version mismatch! Detected: ${_elec_ver}, Expected: ${_electronversion}\033[0m" ||
44 echo -e "Electron version verified: \033[1;31m${_elec_ver}\033[0m"
45}
46prepare() {
47 sed -i -e "
48 s/@electronversion@/${_electronversion}/g
49 s/@appname@/${pkgname%-bin}/g
50 s/@runname@/app.asar/g
51 s/@cfgdirname@/${pkgname%-bin}/g
52 " "${srcdir}/${pkgname%-bin}.sh"
53 if [ ! -x "${srcdir}/${pkgname%-bin}-${pkgver}-${CARCH}.AppImage" ];then
54 chmod +x "${srcdir}/${pkgname%-bin}-${pkgver}-${CARCH}.AppImage"
55 fi
56 if [ -d "${srcdir}/squashfs-root" ];then
57 rm -rf "${srcdir}/squashfs-root"
58 fi
59 "${srcdir}/${pkgname%-bin}-${pkgver}-${CARCH}.AppImage" --appimage-extract > /dev/null
60 _check_electron_version
61 local _app_dir=$(_get_app_dir)
62 sed -i "s/AppRun --no-sandbox/${pkgname%-bin}/g" "${_app_dir}/${pkgname%-bin}.desktop"
63 asar e "${_app_dir}/resources/app.asar" "${srcdir}/app.asar.unpacked"
64 find "${srcdir}/app.asar.unpacked/electron-dist" -type f -exec sed -i "s/process.resourcesPath/\'\/usr\/lib\/${pkgname%-bin}\'/g" {} +
65 asar p "${srcdir}/app.asar.unpacked" "${_app_dir}/resources/app.asar"
66 rm -rf "${_app_dir}/resources/app.asar.unpacked/node_modules/node-pty/prebuilds/"{darwin-*,win32-*}
67 case "${CARCH}" in
68 aarch64)
69 rm -rf "${_app_dir}/resources/app.asar.unpacked/node_modules/node-pty/prebuilds/linux-x64"
70 ;;
71 x86_64)
72 rm -rf "${_app_dir}/resources/app.asar.unpacked/node_modules/node-pty/prebuilds/linux-arm64"
73 ;;
74 esac
75 find "${_app_dir}/resources" -type d -perm 700 -exec chmod 755 {} +
76}
77package() {
78 install -Dm755 "${srcdir}/${pkgname%-bin}.sh" "${pkgdir}/usr/bin/${pkgname%-bin}"
79 install -Dm755 -d "${pkgdir}/usr/lib/${pkgname%-bin}"
80 local _app_dir=$(_get_app_dir)
81 cp -a "${_app_dir}/resources/". "${pkgdir}/usr/lib/${pkgname%-bin}/"
82 find "${srcdir}" -type f \( -name "*.png" -o -name "*.svg" \) -path "*share/icons/*" | while read -r _i; do
83 _extension="${_i##*.}"
84 _icon_path="${_i#*share/icons/}"
85 _target_dir="/usr/share/icons/$(dirname "${_icon_path}")"
86 install -Dm644 "${_i}" "${pkgdir}${_target_dir}/${pkgname%-bin}.${_extension}"
87 done
88 install -Dm644 "${_app_dir}/${pkgname%-bin}.desktop" -t "${pkgdir}/usr/share/applications"
89 install -Dm644 "${srcdir}/LICENSE.html" -t "${pkgdir}/usr/share/licenses/${pkgname}"
90}

Scan history

Scanned at (UTC)SeverityRules
2026-08-18 00:03:42 MEDIUM 3
2026-08-17 00:18:29 MEDIUM 3
2026-08-16 00:03:42 MEDIUM 3
2026-08-15 00:26:13 MEDIUM 3
2026-08-14 00:03:41 MEDIUM 3
2026-08-13 00:17:07 MEDIUM 3
2026-08-12 11:28:28 MEDIUM 3
2026-08-12 11:23:23 MEDIUM 3

Report a package

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

0 / 4000
Your suggestion