kimi-desktop-bin
A prebuilt proprietary binary .deb is downloaded from a GitHub Pages host (kimi-moonshot.github.io) that is not the official vendor domain (kimi.moonshot.cn), making it an unofficial/unverifiable distribution channel where the binary could be silently swapped; however a checksum is provided and the host appears to be a project-affiliated GitHub org rather than random personal cloud storage.
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:25
source=('Kimi_x86_64.deb::https://kimi-moonshot.github.io/download/Kimi_x86_64.deb')
llm_review
An AI model (anthropic/claude-sonnet-4.6) reviewed this and agrees it is MEDIUM (confidence 70%): A prebuilt proprietary binary .deb is downloaded from a GitHub Pages host (kimi-moonshot.github.io) that is not the official vendor domain (kimi.moonshot.cn), making it an unofficial/unverifiable distribution channel where the binary could be silently swapped; however a checksum is provided and the host appears to be a project-affiliated GitHub org rather than random personal cloud storage.
PKGBUILD
1 offending line(s) highlightedpkgname=kimi-desktop-bin
pkgver=1.0.0
pkgrel=3
pkgdesc='Kimi AI assistant desktop client'
arch=('x86_64')
url='https://kimi.moonshot.cn/'
license=('LicenseRef-proprietary')
depends=(
'cairo'
'curl'
'gcc-libs'
'gdk-pixbuf2'
'glib2'
'glibc'
'gtk3'
'libayatana-appindicator'
'libsoup'
'openssl'
'pango'
'webkit2gtk'
'wget'
)
provides=('kimi-desktop')
conflicts=('kimi-desktop')
source=('Kimi_x86_64.deb::https://kimi-moonshot.github.io/download/Kimi_x86_64.deb')
noextract=('Kimi_x86_64.deb')
sha256sums=('822abf05bd669201c9984e828b2624e67e0923ac3cb5a6bcc72f91bc61324e7c')
pkgver() {
local control_archive version
control_archive="$(
bsdtar -tf "${srcdir}/Kimi_x86_64.deb" |
awk '/^control\.tar(\..+)?$/ { print; exit }'
)"
version="$(
bsdtar -xOf "${srcdir}/Kimi_x86_64.deb" "${control_archive}" |
bsdtar -xOf - control |
sed -n 's/^Version: //p'
)"
printf '%s\n' "${version//-/.}"
}
package() {
local data_archive
data_archive="$(
bsdtar -tf "${srcdir}/Kimi_x86_64.deb" |
awk '/^data\.tar(\..+)?$/ { print; exit }'
)"
bsdtar -xOf "${srcdir}/Kimi_x86_64.deb" "${data_archive}" |
bsdtar -xf - --no-same-owner -C "${pkgdir}"
# Upstream also ships a stale launcher for a nonexistent executable.
rm -f "${pkgdir}/usr/share/applications/com-pake-kimi.desktop"
# The upstream 400x400 directory is not part of the hicolor theme index.
# Install the icon in the unthemed fallback so launchers can find it.
install -d "${pkgdir}/usr/share/pixmaps"
mv "${pkgdir}/usr/share/icons/hicolor/400x400/apps/kimi.png" \
"${pkgdir}/usr/share/pixmaps/kimi.png"
rmdir \
"${pkgdir}/usr/share/icons/hicolor/400x400/apps" \
"${pkgdir}/usr/share/icons/hicolor/400x400" \
"${pkgdir}/usr/share/icons/hicolor" \
"${pkgdir}/usr/share/icons"
# Avoid conflicting with the /usr/bin/kimi executable provided by kimi-code.
mv "${pkgdir}/usr/bin/kimi" "${pkgdir}/usr/bin/kimi-desktop"
sed -i 's/^Exec=kimi\([[:space:]]\|$\)/Exec=kimi-desktop\1/' \
"${pkgdir}/usr/share/applications/kimi.desktop"
}
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 |