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-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 |
| 2026-10-13 00:23:45 | Medium | 2 |