aiot-ide

MEDIUM
maintainer OrPudding 1 votes scanned 2026-11-02 00:26:00.633185
View on AUR
Why flagged

The package downloads a prebuilt binary .deb from 'vela-ide.cnbj3-fusion.mi-fds.com', which is a Xiaomi/Mi CDN/storage subdomain (mi-fds.com is Xiaomi's file distribution service). The URL structure and package content (AIoT IDE for Xiaomi Vela/quickApp development) are consistent with an official Xiaomi developer tool. However, this is still a prebuilt, closed-source binary blob from a vendor CDN rather than a reproducible build from source, and the host is not the primary project domain (iot.mi.com). A sha256sum is provided, which mitigates substitution risk at the current version. The PKGBUILD itself is straightforward: it extracts the .deb and installs files. The main concern is the standard supply-chain risk of executing a proprietary prebuilt binary from a CDN — if the CDN were compromised or the URL reused for a different binary, the sha256 check would catch it for the pinned version but future updates could silently introduce malicious code. This is a legitimate medium-severity concern (prebuilt binary from unofficial/CDN host) but not an active attack.

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:40 source=("$pkgname-$pkgver.deb::https://vela-ide.cnbj3-fusion.mi-fds.com/vela-ide/ide/v1.7.0/AIoT_IDE_ubuntu.deb")
Medium AI review llm_review

An AI model (anthropic/claude-4.6-sonnet-20260217) reviewed this and agrees it is MEDIUM (confidence 72%): The package downloads a prebuilt binary .deb from 'vela-ide.cnbj3-fusion.mi-fds.com', which is a Xiaomi/Mi CDN/storage subdomain (mi-fds.com is Xiaomi's file distribution service). The URL structure and package content (AIoT IDE for Xiaomi Vela/quickApp development) are consistent with an official Xiaomi developer tool. However, this is still a prebuilt, closed-source binary blob from a vendor CDN rather than a reproducible build from source, and the host is not the primary project domain (iot.mi.com). A sha256sum is provided, which mitigates substitution risk at the current version. The PKGBUILD itself is straightforward: it extracts the .deb and installs files. The main concern is the standard supply-chain risk of executing a proprietary prebuilt binary from a CDN — if the CDN were compromised or the URL reused for a different binary, the sha256 check would catch it for the pinned version but future updates could silently introduce malicious code. This is a legitimate medium-severity concern (prebuilt binary from unofficial/CDN host) but not an active attack.

PKGBUILD

1 offending line(s) highlighted
1# Maintainer: OrPudding <t3164473115@163.com>
2pkgname=aiot-ide
3pkgver=1.7.0
4pkgrel=1
5pkgdesc="Code editing. Redefined. AIoT IDE is the first choice for developing quickApp."
6arch=('x86_64')
7url="https://iot.mi.com/vela/quickapp/"
8license=('custom')
9options=('!debug')
10depends=(
11 'ca-certificates'
12 'alsa-lib'
13 'at-spi2-core'
14 'atk'
15 'cairo'
16 'cups'
17 'curl'
18 'dbus'
19 'expat'
20 'gcc-libs'
21 'glib2'
22 'gtk3'
23 'libx11'
24 'libxcb'
25 'libxcomposite'
26 'libxdamage'
27 'libxext'
28 'libxfixes'
29 'libxkbcommon'
30 'libxkbfile'
31 'libxrandr'
32 'mesa'
33 'nspr'
34 'nss'
35 'pango'
36 'systemd-libs'
37 'xdg-utils'
38 'vulkan-icd-loader'
39)
40source=("$pkgname-$pkgver.deb::https://vela-ide.cnbj3-fusion.mi-fds.com/vela-ide/ide/v1.7.0/AIoT_IDE_ubuntu.deb")
41sha256sums=('37809fde16cac7838e757e81754236f235af7180a56ecf40c78ad8030f5533e6')
42
43prepare() {
44 # Extract DEB package
45 ar x "$pkgname-$pkgver.deb"
46 tar -xf data.tar.*
47}
48
49package() {
50 # Copy all files
51 cp -r usr "$pkgdir"
52
53 # Create executable symlink
54 install -d "$pkgdir/usr/bin/"
55 ln -s "/usr/share/$pkgname/bin/$pkgname" "$pkgdir/usr/bin/$pkgname"
56
57 # Fix permissions
58 find "$pkgdir/usr/share/$pkgname" -type d -exec chmod 755 {} \;
59 find "$pkgdir/usr/share/$pkgname" -type f -executable -exec chmod 755 {} \;
60
61 # Fix desktop files
62 find "$pkgdir/usr/share/applications" -name "*.desktop" -exec chmod 644 {} \;
63
64 # Install license
65 if [ -f "$pkgdir/usr/share/$pkgname/LICENSE.txt" ]; then
66 install -Dm644 "$pkgdir/usr/share/$pkgname/LICENSE.txt" \
67 "$pkgdir/usr/share/licenses/$pkgname/LICENSE"
68 elif [ -f "$pkgdir/usr/share/$pkgname/LICENSES.chromium.html" ]; then
69 install -Dm644 "$pkgdir/usr/share/$pkgname/LICENSES.chromium.html" \
70 "$pkgdir/usr/share/licenses/$pkgname/LICENSE.html"
71 else
72 install -Dm644 /dev/null "$pkgdir/usr/share/licenses/$pkgname/LICENSE"
73 echo "Proprietary license - see package source" > "$pkgdir/usr/share/licenses/$pkgname/LICENSE"
74 fi
75
76 # Fix icon permissions
77 if [ -d "$pkgdir/usr/share/pixmaps" ]; then
78 find "$pkgdir/usr/share/pixmaps" -type f -exec chmod 644 {} \;
79 fi
80
81 # Ensure sandbox is executable
82 if [ -f "$pkgdir/usr/share/$pkgname/chrome-sandbox" ]; then
83 chmod 4755 "$pkgdir/usr/share/$pkgname/chrome-sandbox"
84 fi
85}
86

Scan history

Scanned at (UTC)SeverityRules
2026-11-02 00:26:00 Medium 2
2026-11-01 00:21:48 Medium 2
2026-10-31 00:07:41 Medium 2
2026-10-30 00:29:30 Medium 2
2026-10-29 00:13:55 Medium 2
2026-10-28 00:06:54 Medium 2
2026-10-27 00:23:28 Medium 2
2026-10-26 00:12:40 Medium 2
2026-10-25 00:20:48 Medium 2
2026-10-24 00:14:55 Medium 2
2026-10-23 00:02:19 Medium 2
2026-10-22 00:13:10 Medium 2
2026-10-21 00:12:50 Medium 2
2026-10-20 00:10:31 Medium 2
2026-10-19 00:03:55 Medium 2
2026-10-18 00:06:55 Medium 2
2026-10-17 00:21:55 Medium 2
2026-10-16 00:12:47 Medium 2
2026-10-15 00:28:05 Medium 2
2026-10-14 00:06:47 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