ddnsto-bin

maintainer taotieren · 0 votes · scanned 2026-08-03 00:08:14.047287
MEDIUM
View on AUR ↗
Why flagged Prebuilt binaries are downloaded from fw0.koolcenter.com (a non-official, non-project-owned host unrelated to the stated project URL web.ddnsto.com) and executed at build time to generate config; checksums are present but the host is a third-party CDN that could silently swap the binaries, making this an unverifiable prebuilt executable from a potentially swappable source.

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-4.6-sonnet-20260217) reviewed this and agrees it is MEDIUM (confidence 70%): Prebuilt binaries are downloaded from fw0.koolcenter.com (a non-official, non-project-owned host unrelated to the stated project URL web.ddnsto.com) and executed at build time to generate config; checksums are present but the host is a third-party CDN that could silently swap the binaries, making this an unverifiable prebuilt executable from a potentially swappable source.

PKGBUILD

1 offending line(s) highlighted
1# Maintainer: taotieren <admin@taotieren.com>
2
3pkgbase=ddnsto-bin
4pkgname=(ddnsto-bin ddnsto-lite-bin)
5_name=${pkgname%-bin}
6pkgver=4.2.2
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}-lite-${pkgver}.tar.gz"
23 "ddnsto.service"
24 "ddnsto.tmpfiles"
25 "ddnsto.sysusers"
26 "ddnsto-bin.install"
27 "ddnsto-lite-bin.install"
28)
29sha256sums=('5a76072663e38324c03408ef1900c112851eb821d592951d61d925436324695a'
30 'd6a18ba629e1eab7cad57f5399ef89ad875183a19d24a145529bfb84a27079c9'
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 if [ ${CARCH} = "x86_64" ]; then
47 ./${_name}.x86_64 example-config > config.yaml
48 install -vDm755 ${_name}.x86_64 ${pkgdir}/usr/bin/${_name}
49 elif [ ${CARCH} = "aarch64" ]; then
50 ./${_name}.aarch64 example-config > config.yaml
51 install -vDm755 ${_name}.aarch64 ${pkgdir}/usr/bin/${_name}
52 elif [ ${CARCH} = "mipsel" ]; then
53 ./${_name}.mipsel example-config > config.yaml
54 install -vDm755 ${_name}.mipsel ${pkgdir}/usr/bin/${_name}
55 elif [ ${CARCH} = "armv7h" ]; then
56 ./${_name}.arm example-config > config.yaml
57 install -vDm755 ${_name}.arm ${pkgdir}/usr/bin/${_name}
58 fi
59
60 sed -i -e 's|/tmp/logs|/var/log/ddnsto|g' \
61 -e 's|/data|/srv/ddnsto|g' \
62 config.yaml
63
64 install -vDm640 config.yaml -t ${pkgdir}/etc/ddnsto/
65 install -vDm644 ${srcdir}/ddnsto.service -t ${pkgdir}/usr/lib/systemd/system/
66 install -vdm755 ${pkgdir}/var/log/ddnsto \
67 ${pkgdir}/var/lib/ddnsto
68
69 install -vdm775 ${pkgdir}/srv/ddnsto
70
71 install -Dvm644 "${srcdir}/ddnsto.sysusers" "${pkgdir}/usr/lib/sysusers.d/ddnsto.conf"
72 install -Dvm644 "${srcdir}/ddnsto.tmpfiles" "${pkgdir}/usr/lib/tmpfiles.d/ddnsto.conf"
73}
74
75package_ddnsto-lite-bin() {
76 pkgdesc+=" - Zig"
77 provides=(${pkgbase%-bin})
78 conflicts=(${pkgbase%-bin})
79 backup=('etc/ddnsto/config.yaml')
80 install=${pkgname}.install
81
82 cd "${srcdir}/${_name}-lite-${pkgver}/"
83 if [ ${CARCH} = "x86_64" ]; then
84 ./${_name}.x86_64 example-config > config.yaml
85 install -vDm755 ${_name}.x86_64 ${pkgdir}/usr/bin/${_name}
86 elif [ ${CARCH} = "aarch64" ]; then
87 ./${_name}.aarch64 example-config > config.yaml
88 install -vDm755 ${_name}.aarch64 ${pkgdir}/usr/bin/${_name}
89 elif [ ${CARCH} = "mipsel" ]; then
90 ./${_name}.mipsel example-config > config.yaml
91 install -vDm755 ${_name}.mipsel ${pkgdir}/usr/bin/${_name}
92 elif [ ${CARCH} = "armv7h" ]; then
93 ./${_name}.arm example-config > config.yaml
94 install -vDm755 ${_name}.arm ${pkgdir}/usr/bin/${_name}
95 fi
96
97 sed -i -e 's|/tmp/logs|/var/log/ddnsto|g' \
98 -e 's|/data|/srv/ddnsto|g' \
99 config.yaml
100
101 install -vDm640 config.yaml -t ${pkgdir}/etc/ddnsto/
102 install -vDm644 ${srcdir}/ddnsto.service -t ${pkgdir}/usr/lib/systemd/system/
103 install -vdm755 ${pkgdir}/var/log/ddnsto \
104 ${pkgdir}/var/lib/ddnsto
105
106 install -vdm775 ${pkgdir}/srv/ddnsto
107
108 install -Dvm644 "${srcdir}/ddnsto.sysusers" "${pkgdir}/usr/lib/sysusers.d/ddnsto.conf"
109 install -Dvm644 "${srcdir}/ddnsto.tmpfiles" "${pkgdir}/usr/lib/tmpfiles.d/ddnsto.conf"
110}
111

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