trae-sg
The package downloads prebuilt binaries from a CDN domain (lf-cdn.trae.ai) that is not on standard whitelists but is plausibly owned by the project (trae.ai); however, the binaries are verified via b2sums, reducing supply-chain risk, and the installation process is transparent and follows standard practices for packaging an official binary release.
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 prebuilt binaries from a CDN domain (lf-cdn.trae.ai) that is not on standard whitelists but is plausibly owned by the project (trae.ai); however, the binaries are verified via b2sums, reducing supply-chain risk, and the installation process is transparent and follows standard practices for packaging an official binary release.
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:21
source_x86_64=("Trae-linux-x64-${pkgver}-${pkgrel}.tar.gz::https://lf-cdn.trae.ai/obj/trae-ai-sg/pkg/app/releases/stable/2.3.73738/linux/TraeCode-linux-x64.tar.gz")
PKGBUILD
1 offending line(s) highlighted# Maintainer: logan_reed <liulingzhang.work@icloud.com>
# Contributor: springtwr <springtwr@outlook.com>
pkgname=trae-sg
pkgver=2.3.73738
pkgrel=1
pkgdesc="AI-powered IDE by ByteDance (Singapore CDN)"
arch=('x86_64' 'aarch64')
url="https://www.trae.cn/"
license=('LicenseRef-Trae')
provides=("trae=$pkgver")
conflicts=('trae' 'trae-bin')
depends=('nss' 'alsa-lib' 'gtk3' 'at-spi2-core' 'libsecret' 'libxkbfile' 'zeromq')
optdepends=('libappindicator-gtk3: System tray support'
'xdg-utils: Open URLs and files with default applications'
'python: Python extension support'
'nodejs: Node.js extension scripts')
options=('!strip' '!debug')
install=trae.install
source=("trae.sh" "trae.desktop")
source_x86_64=("Trae-linux-x64-${pkgver}-${pkgrel}.tar.gz::https://lf-cdn.trae.ai/obj/trae-ai-sg/pkg/app/releases/stable/2.3.73738/linux/TraeCode-linux-x64.tar.gz")
source_aarch64=("Trae-linux-arm64-${pkgver}-${pkgrel}.tar.gz::https://lf-cdn.trae.ai/obj/trae-ai-sg/pkg/app/releases/stable/2.3.73738/linux/TraeCode-linux-arm64.tar.gz")
b2sums=('2331b0d37fff8478ea37cbf9e5c2e70a59631aae6efb44741fc6c1a8dce65557098e9dffa8c30148ef27432802bec3d1eda279021421e5d3f979e80900662726'
'656c5d6bea6ef15185e0d8ee0181276f6de3bfae8e66a2c65772a5f1354727952dd020dca057246139a2bab8f4805057fa2db367a6ba0a1b90d9ffd7fcab8412')
b2sums_x86_64=('8f61879518a2ac7332163854f2ff58e591577e18640687cac8a553cc08fac00d9687cfc6af71ce943690ac41e5a31ec0e90f4a968d0bca454cb4809b0cd21618')
b2sums_aarch64=('bca4ef9932b41d98f7fca05d50256d0d5ee7efe92d9a74f5217e234a3935dd9b7f840e1970d1edf777853e7c66a262d28aebea7219a73b9a7671992ad4df3753')
package() {
install -d "${pkgdir}/opt/trae"
for f in "${srcdir}"/*; do
case "${f##*/}" in
trae.sh|trae.desktop|*.tar.*) continue ;;
esac
cp -a "$f" "${pkgdir}/opt/trae/"
done
# SUID sandbox
chmod 4755 "${pkgdir}/opt/trae/chrome-sandbox"
# Launcher
install -Dm755 "${srcdir}/trae.sh" "${pkgdir}/usr/bin/trae"
# Desktop entry
install -Dm644 "${srcdir}/trae.desktop" "${pkgdir}/usr/share/applications/trae.desktop"
# Icon
install -Dm644 "${pkgdir}/opt/trae/resources/app/resources/linux/code.png" "${pkgdir}/usr/share/icons/hicolor/512x512/apps/trae.png"
# License
install -Dm644 "${pkgdir}/opt/trae/resources/app/LICENSE.txt" "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE"
install -Dm644 "${pkgdir}/opt/trae/resources/app/ThirdPartyNotices.txt" "${pkgdir}/usr/share/licenses/${pkgname}/ThirdPartyNotices"
install -Dm644 "${pkgdir}/opt/trae/LICENSES.chromium.html" "${pkgdir}/usr/share/licenses/${pkgname}/LICENSES.chromium.html"
# Shell completions
install -Dm644 "${pkgdir}/opt/trae/resources/completions/bash/trae" "${pkgdir}/usr/share/bash-completion/completions/trae"
install -Dm644 "${pkgdir}/opt/trae/resources/completions/zsh/_trae" "${pkgdir}/usr/share/zsh/site-functions/_trae"
# Remove unnecessary files
rm -rf "${pkgdir}/opt/trae/node_modules"
find "${pkgdir}/opt/trae" -name "*.asc" -delete
find "${pkgdir}/opt/trae" -name "*.bat" -delete
find "${pkgdir}/opt/trae" -type d -name "rush-logs" -exec rm -rf {} +
# Remove bundled GCC runtime libraries (conflict with system gcc-libs, breaks ckg indexing)
rm -fv "${pkgdir}/opt/trae/resources/app/modules/ckg/binary/libstdc++.so.6"
rm -fv "${pkgdir}/opt/trae/resources/app/modules/ckg/binary/libgcc_s.so.1"
}
Scan history
| Scanned at (UTC) | Severity | Rules |
|---|---|---|
| 2026-09-17 00:27:14 | Low | 2 |
| 2026-09-16 00:03:17 | Low | 2 |
| 2026-09-15 00:25:31 | Low | 2 |
| 2026-09-14 00:27:57 | Low | 2 |
| 2026-09-13 00:19:54 | Low | 2 |
| 2026-09-12 00:25:17 | Low | 2 |
| 2026-09-11 00:19:22 | Low | 2 |
| 2026-09-10 00:22:44 | Low | 2 |
| 2026-09-09 00:04:09 | Low | 2 |
| 2026-09-08 00:18:08 | Low | 2 |
| 2026-09-07 00:30:15 | Low | 2 |
| 2026-09-06 00:17:06 | Low | 2 |
| 2026-09-05 00:16:27 | Low | 2 |
| 2026-09-04 00:03:13 | Low | 2 |
| 2026-09-03 00:15:47 | Low | 2 |
| 2026-09-02 00:02:31 | Low | 2 |
| 2026-09-01 00:11:19 | Low | 2 |
| 2026-08-31 00:19:57 | Low | 2 |
| 2026-08-30 00:04:14 | Low | 2 |
| 2026-08-29 00:29:17 | Low | 2 |