fire-tool
The PKGBUILD downloads a prebuilt binary .deb from cloud.embedfire.com (the vendor's own cloud storage, not a standard package repository) and installs a compiled Qt application binary directly into /opt. While embedfire.com appears to be a legitimate Chinese embedded-systems vendor (野火/Embedfire), the source URL points to a mutable artifact with no versioning in the filename (fireTools.deb rather than fireTools-1.0.1.5.deb), meaning the file could be silently replaced without changing the URL. The sha512sum provides some protection against substitution at build time, but the lack of a versioned URL means the checksum will break on any upstream update rather than catching a malicious swap. The core concern is a prebuilt, unstripped binary executable from a non-standard cloud host being installed and run with user privileges — this is a genuine medium-severity supply-chain concern, not a false positive, though there is no evidence of active malice.
Triggered rules
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:33
source_x86_64=("https://cloud.embedfire.com/software/FireTools/fireTools.deb")
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 binary .deb from cloud.embedfire.com (the vendor's own cloud storage, not a standard package repository) and installs a compiled Qt application binary directly into /opt. While embedfire.com appears to be a legitimate Chinese embedded-systems vendor (野火/Embedfire), the source URL points to a mutable artifact with no versioning in the filename (fireTools.deb rather than fireTools-1.0.1.5.deb), meaning the file could be silently replaced without changing the URL. The sha512sum provides some protection against substitution at build time, but the lack of a versioned URL means the checksum will break on any upstream update rather than catching a malicious swap. The core concern is a prebuilt, unstripped binary executable from a non-standard cloud host being installed and run with user privileges — this is a genuine medium-severity supply-chain concern, not a false positive, though there is no evidence of active malice.
PKGBUILD
1 offending line(s) highlighted# Generated by debtap
# Maintainer: taotieren <admin@taotieren.com>
pkgname=fire-tool
pkgver=1.0.1.5
pkgrel=6
pkgdesc="Embedfire Tool support Serial communication, TCP/UDP communication, camera and PID debuggingVisit https://www.embedfire.com for more information."
arch=('x86_64')
url="https://www.embedfire.com"
license=('unknown')
depends=(
gcc-libs
glib2
glibc
freetype2
fontconfig
libglvnd
libx11
libxext
libxcb
libxkbcommon
libxkbcommon-x11
qt5-base
qt5-networkauth
qt5-serialport
qt5-svg
qt5-xcb-private-headers
zlib
)
makedepends=()
# groups=()
options=('!strip' '!emptydirs')
source_x86_64=("https://cloud.embedfire.com/software/FireTools/fireTools.deb")
sha512sums_x86_64=('b6ea80999c5f440aa7b080b4fb535d446a1150f7fd538658921a2112e1d3e4a5ccb363dc4e20ca58ceb6784db337add10312f217b177ada93a383948e6b232a6')
package() {
# Extract package data
tar xf data.tar.xz -C "${pkgdir}"
install -dm755 "${pkgdir}/usr/share/applications/" \
"${pkgdir}/usr/bin/"
install -Dm644 "${pkgdir}/opt/fireTools/icon/icon.png" "${pkgdir}/usr/share/pixmaps/firetools.png"
ln -sf "/opt/fireTools/bin/fireTools" "${pkgdir}/usr/bin/firetools"
cat >"${pkgdir}/usr/share/applications/firetools.desktop" <<EOF
[Desktop Entry]
Type=Application
Exec=/usr/bin/firetools
Name=Multi-function debugging assistant
Name[zh_CN]=多功能调试助手
Icon=firetools.png
Terminal=false
Path=/opt/fireTools/bin
StartupNotify=true
EOF
rm -rf "${pkgdir}/opt/fireTools/lib"
rm -rf "${pkgdir}/opt/fireTools/icon"
rm -rf "${pkgdir}/opt/fireTools/fireTools.desktop"
rm -rf "${pkgdir}/opt/fireTools/run.sh"
}
Scan history
| Scanned at (UTC) | Severity | Rules |
|---|---|---|
| 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 |