at-link-console-bin
The package downloads a prebuilt binary from the official vendor's domain (arterytek.com) for a legitimate MCU programming tool; the host is not whitelisted but is plausibly the project's official source, and the payload consists of executables and libraries intended for local installation, not remote code execution.
Triggered rules
llm_review
The static rules flagged this MEDIUM, but an AI model (qwen/qwen3-235b-a22b-2507) reviewed the full PKGBUILD and judged it LOW (confidence 95%): The package downloads a prebuilt binary from the official vendor's domain (arterytek.com) for a legitimate MCU programming tool; the host is not whitelisted but is plausibly the project's official source, and the payload consists of executables and libraries intended for local installation, not remote code execution.
1 higher static finding superseded - not the current verdict (shown for transparency)
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:35
source=("${_pkg_file_name}::https://www.arterytek.com/download/Program%20and%20Debug/Artery_ATLINK_Console_Linux-${arch}_V${pkgver}.zip")
PKGBUILD
1 offending line(s) highlighted# Maintainer: taotieren <admin@taotieren.com>
pkgname=at-link-console-bin
pkgver=3.0.20
pkgrel=3
pkgdesc="Artery AT LINK Console 是一款基于 MCU Bootloader 的命令行应用程序。支持AT32 MCU「在电路编程」Console工具"
arch=('x86_64')
url="https://www.arterytek.com/cn/support/tools.jsp"
license=('LicenseRef-Commercial')
provides=(${pkgname%-bin} AT-LINK_Console)
conflicts=(${pkgname%-bin})
replaces=()
depends=(
sh
libgcc_s.so
libstdc++.so
libusb
qt5-base
)
makedepends=('unzip')
optdepends=(
'artery-isp-console'
'at32-bootloader-doc'
'at32-ide'
'at32-ide-project-generate'
'at32-new-clock-configuration'
'at32-work-bench'
'at32-openocd'
'jlink-software-and-documentation: Segger JLink software & documentation pack for Linux'
)
backup=()
options=('!strip' '!debug' '!lto')
install=${pkgname}.install
_pkg_file_name=Artery_ATLINK_Console_V${pkgver}.zip
source=("${_pkg_file_name}::https://www.arterytek.com/download/Program%20and%20Debug/Artery_ATLINK_Console_Linux-${arch}_V${pkgver}.zip")
sha256sums=('2dd3f319ce6aa823fbe98ef2e1019289402ba9f1ee1e077ec32d073e06fe0074')
noextract=(${_pkg_file_name})
package() {
unzip -O gbk -o "${srcdir}"/${_pkg_file_name} -d "${srcdir}"
cd "${srcdir}"
install -dm0755 "${pkgdir}/opt/artery32/${pkgname%-bin}/" \
"${pkgdir}/usr/lib/"
cp -rv Document "${pkgdir}/opt/artery32/${pkgname%-bin}/Document"
# cd ${_pkg_file_name%_V${pkgver}.zip}_Linux-${arch}_V${pkgver}/
# 上游错误,下一版更新需要删除,改用上面的
cd ${_pkg_file_name%_V${pkgver}.zip}_Linux-${arch}_V${pkgver/10/09}/
install -Dm0755 ATLink_Console "${pkgdir}/opt/artery32/${pkgname%-bin}/ATLink_Console"
install -Dm0644 libATLINKLIB.so.1.0.0 "${pkgdir}/usr/lib/libATLINKLIB.so.1.0.0"
install -Dm0644 ATLink_Console.sh "${pkgdir}/opt/artery32/${pkgname%-bin}/ATLink_Console.sh.template"
install -Dm0644 download.sh "${pkgdir}/opt/artery32/${pkgname%-bin}/download.sh.template"
cd "${pkgdir}/usr/lib/"
for lib in lib*; do
ln -sf /usr/lib/"$lib" "${pkgdir}/usr/lib/${lib%.0.0}"
ln -sf /usr/lib/"$lib" "${pkgdir}/usr/lib/${lib%.1.0.0}"
done
# install -Dm0644 /dev/stdin "${pkgdir}/usr/lib/udev/rules.d/49-artery32-udev.rules" << EOF
# # Copy this file to /etc/udev/rules.d/
# # If rules fail to reload automatically, you can refresh udev rules
# # with the command "udevadm control --reload"
#
# ACTION!="add|change", GOTO="artery32_udev_rules_end"
#
# SUBSYSTEM=="gpio", MODE="0660", TAG+="uaccess"
#
# SUBSYSTEM!="usb|tty|hidraw", GOTO="artery32_udev_rules_end"
#
# # Artery tek
# ATTRS{idVendor}=="2e3c", ATTRS{idProduct}=="f000", MODE="660", TAG+="uaccess"
# ATTRS{idVendor}=="2e3c", ATTRS{idProduct}=="df11", MODE="660", TAG+="uaccess"
#
# # If you share your linux system with other users, or just don't like the
# # idea of write permission for everybody, you can replace MODE:="0666" with
# # OWNER:="yourusername" to create the device owned by you, or with
# # GROUP:="somegroupname" and mange access using standard unix groups.
#
# LABEL="artery32_udev_rules_end"
# EOF
install -Dm0755 /dev/stdin "${pkgdir}/usr/bin/${pkgname%-bin}" <<EOF
#!/bin/bash
/opt/artery32/${pkgname%-bin}/ATLink_Console "\$@"
EOF
}
Scan history
| Scanned at (UTC) | Severity | Rules |
|---|---|---|
| 2026-10-17 00:21:55 | Low | 2 |
| 2026-10-16 00:12:47 | Low | 2 |
| 2026-10-15 00:28:05 | Low | 2 |
| 2026-10-14 00:06:47 | Low | 2 |
| 2026-10-13 00:23:45 | Low | 2 |
| 2026-10-12 00:18:51 | Low | 2 |
| 2026-10-11 00:26:05 | Low | 2 |
| 2026-10-10 00:11:52 | Low | 2 |
| 2026-10-09 00:05:33 | Low | 2 |
| 2026-10-08 00:28:03 | Low | 2 |
| 2026-10-07 00:21:34 | Low | 2 |
| 2026-10-06 00:13:36 | Low | 2 |
| 2026-10-05 00:08:03 | Low | 2 |
| 2026-10-04 00:18:08 | Low | 2 |
| 2026-10-03 00:23:04 | Low | 2 |
| 2026-10-02 00:00:32 | Low | 2 |
| 2026-10-01 00:02:06 | Low | 2 |
| 2026-09-30 00:20:07 | Low | 2 |
| 2026-09-29 00:07:46 | Low | 2 |
| 2026-09-28 00:28:32 | Low | 2 |