ddnsto-micro-bin

MEDIUM
maintainer taotieren 0 votes base ddnsto-bin scanned 2026-10-17 00:21:55.226236
View on AUR
Why flagged

Prebuilt binaries are downloaded from fw0.koolcenter.com (a non-official, non-project-owned CDN/mirror host unrelated to the ddnsto project's own infrastructure at web.ddnsto.com) and executed at build time (./'${_bin}' example-config); while checksums are provided, the host is a third-party distribution point that could silently swap binaries, making this a supply-chain risk for prebuilt executables.

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:21 "https://fw0.koolcenter.com/binary/ddnsto/linux-binary/${_name}-standard-${pkgver}.tar.gz"
Medium AI review llm_review

An AI model (anthropic/claude-sonnet-4.6) reviewed this and agrees it is MEDIUM (confidence 70%): Prebuilt binaries are downloaded from fw0.koolcenter.com (a non-official, non-project-owned CDN/mirror host unrelated to the ddnsto project's own infrastructure at web.ddnsto.com) and executed at build time (./'${_bin}' example-config); while checksums are provided, the host is a third-party distribution point that could silently swap binaries, making this a supply-chain risk for prebuilt executables.

PKGBUILD

1 offending line(s) highlighted
1# Maintainer: taotieren <admin@taotieren.com>
2
3pkgbase=ddnsto-bin
4pkgname=(ddnsto-bin ddnsto-micro-bin)
5_name=${pkgname%-bin}
6pkgver=4.2.6
7pkgrel=1
8pkgdesc="DDNSTO is a stable, fast and easy-to-use intranet penetration tool"
9arch=(
10 x86_64
11 aarch64
12 armv7h
13 mipsel
14)
15url="https://web.ddnsto.com"
16license=('LicenseRef-ddnsto')
17depends=()
18makedepends=()
19optdepends=()
20source=(
21 "https://fw0.koolcenter.com/binary/ddnsto/linux-binary/${_name}-standard-${pkgver}.tar.gz"
22 "https://fw0.koolcenter.com/binary/ddnsto/linux-binary/${_name}-micro-${pkgver}.tar.gz"
23 "ddnsto.service"
24 "ddnsto.tmpfiles"
25 "ddnsto.sysusers"
26 "ddnsto-bin.install"
27 "ddnsto-micro-bin.install"
28)
29sha256sums=('4521d0b2ffeb35c4f539380c604c5d40577cb03d3938c98064324c098c276a3b'
30 '90b0531d6d76edbb5d2e76f87bef5b2fba6a23d521d679dabc2f02fe91f82ee2'
31 '99d7c3c20776645a08de44062cea1b32fd37288e35d61821e90c45e132dd5f14'
32 '57f54bcf6013b0a2fe03923d4119a36cb8c6584f70b07dbd6d0c1d31f4fe8d72'
33 'b068dcd630d7ce9a3b0bf904340f9438572d84cd4c75ad49102a274a4be37dd6'
34 '113b1efa3502b9a62272cdf3f747f9ef39f452829e9f079b3975086d233f25aa'
35 '113b1efa3502b9a62272cdf3f747f9ef39f452829e9f079b3975086d233f25aa')
36options=(!debug !strip emptydirs)
37
38package_ddnsto-bin() {
39 pkgdesc+=" - Go"
40 provides=(${pkgbase%-bin})
41 conflicts=(${pkgbase%-bin})
42 backup=('etc/ddnsto/config.yaml')
43 install=${pkgname}.install
44
45 cd "${srcdir}/${_name}-standard-${pkgver}/"
46 local _bin
47 case "${CARCH}" in
48 x86_64) _bin="${_name}.x86_64" ;;
49 aarch64) _bin="${_name}.aarch64" ;;
50 mipsel) _bin="${_name}.mipsel" ;;
51 armv7h)
52 if [ -f "${_name}.arm32hf" ]; then
53 _bin="${_name}.arm32hf"
54 else
55 _bin="${_name}.arm"
56 fi
57 ;;
58 *)
59 error "不支持的架构:${CARCH}"
60 return 1
61 ;;
62 esac
63
64 ./"${_bin}" example-config > config.yaml
65 install -vDm755 "${_bin}" "${pkgdir}/usr/bin/${_name}"
66
67 sed -i -e 's|/tmp/logs|/var/log/ddnsto|g' \
68 -e 's|/data|/srv/ddnsto|g' \
69 config.yaml
70
71 install -vDm640 config.yaml -t ${pkgdir}/etc/ddnsto/
72 install -vDm644 ${srcdir}/ddnsto.service -t ${pkgdir}/usr/lib/systemd/system/
73 install -vdm755 ${pkgdir}/var/log/ddnsto \
74 ${pkgdir}/var/lib/ddnsto
75
76 install -vdm775 ${pkgdir}/srv/ddnsto
77
78 install -Dvm644 "${srcdir}/ddnsto.sysusers" "${pkgdir}/usr/lib/sysusers.d/ddnsto.conf"
79 install -Dvm644 "${srcdir}/ddnsto.tmpfiles" "${pkgdir}/usr/lib/tmpfiles.d/ddnsto.conf"
80}
81
82package_ddnsto-micro-bin() {
83 pkgdesc+=" - Rust"
84 provides=(${pkgbase%-bin})
85 conflicts=(${pkgbase%-bin})
86 backup=('etc/ddnsto/config.yaml')
87 install=${pkgname}.install
88
89 cd "${srcdir}/${_name}-micro-${pkgver}/"
90 local _bin
91 case "${CARCH}" in
92 x86_64) _bin="${_name}.x86_64" ;;
93 aarch64) _bin="${_name}.aarch64" ;;
94 mipsel) _bin="${_name}.mipsel" ;;
95 armv7h)
96 if [ -f "${_name}.arm32hf" ]; then
97 _bin="${_name}.arm32hf"
98 else
99 _bin="${_name}.arm"
100 fi
101 ;;
102 *)
103 error "不支持的架构:${CARCH}"
104 return 1
105 ;;
106 esac
107
108 ./"${_bin}" example-config > config.yaml
109 install -vDm755 "${_bin}" "${pkgdir}/usr/bin/${_name}"
110
111 sed -i -e 's|/tmp/logs|/var/log/ddnsto|g' \
112 -e 's|/data|/srv/ddnsto|g' \
113 config.yaml
114
115 install -vDm640 config.yaml -t ${pkgdir}/etc/ddnsto/
116 install -vDm644 ${srcdir}/ddnsto.service -t ${pkgdir}/usr/lib/systemd/system/
117 install -vdm755 ${pkgdir}/var/log/ddnsto \
118 ${pkgdir}/var/lib/ddnsto
119
120 install -vdm775 ${pkgdir}/srv/ddnsto
121
122 install -Dvm644 "${srcdir}/ddnsto.sysusers" "${pkgdir}/usr/lib/sysusers.d/ddnsto.conf"
123 install -Dvm644 "${srcdir}/ddnsto.tmpfiles" "${pkgdir}/usr/lib/tmpfiles.d/ddnsto.conf"
124}
125

Scan history

Scanned at (UTC)SeverityRules
2026-10-17 00:21:55 Medium 2
2026-10-16 03:15:40 Medium 2
2026-10-16 03:14:05 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