publishport-bin
MEDIUM
maintainer wearzdk
1 votes
scanned 2026-11-01 05:59:34.516406
Why flagged
The package downloads a prebuilt .deb from a non-whitelisted, project-owned host (storage2.maoertech.cn) without source code access, posing a supply-chain risk if the host is compromised.
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:23
source=("publishport-${pkgver}-amd64.deb::https://storage2.maoertech.cn/desktop/publishport-${pkgver}-amd64.deb")
Medium
AI review
llm_review
An AI model (qwen/qwen3-235b-a22b-2507) reviewed this and agrees it is MEDIUM (confidence 95%): The package downloads a prebuilt .deb from a non-whitelisted, project-owned host (storage2.maoertech.cn) without source code access, posing a supply-chain risk if the host is compromised.
PKGBUILD
1 offending line(s) highlighted
1
# Maintainer: PublishPort <karentia@maoertech.cn>
2
#
3
# PublishPort 是闭源产品,安装包不放在 GitHub Releases,而是由发版 CI 构建后
4
# 上传到自有 storage(storage2.maoertech.cn),下载 URL 由版本号确定性推导。
5
# 因此本包是「重打包预编译产物」的 -bin 包:下载官方 .deb,解出文件装进系统。
6
# 版本号与 sha256sums 由发版工作流(.github/workflows/release-desktop.yml 的
7
# publish-aur 任务)在每次 desktop-v* tag 发布时自动改写并推送到 AUR。
8
pkgname=publishport-bin
9
pkgver=1.2.10
10
pkgrel=1
11
pkgdesc="让线上 AI 用你本机真实登录环境,一键发布内容到小红书/知乎/微博/B站/Twitter 等平台(GUI 客户端)"
12
arch=('x86_64')
13
url="https://publishport.app"
14
license=('LicenseRef-proprietary')
15
# webkit2gtk-4.1 已带来 gtk3 / libsoup3;二进制直接链接 gtk3,故显式列出。
16
# libayatana-appindicator 供托盘图标在运行时按需加载(不被 webkit 带入)。
17
depends=('webkit2gtk-4.1' 'gtk3' 'libayatana-appindicator')
18
provides=('publishport')
19
conflicts=('publishport')
20
# 预编译二进制,禁止 strip / 重新打包,避免破坏官方产物。
21
options=('!strip')
22
install="${pkgname}.install"
23
source=("publishport-${pkgver}-amd64.deb::https://storage2.maoertech.cn/desktop/publishport-${pkgver}-amd64.deb")
24
noextract=("publishport-${pkgver}-amd64.deb")
25
sha256sums=('866816d39b264e9f2f5a79c0cae7108577d120220d96cbad48759da62ef3e350')
26
27
package() {
28
cd "$srcdir"
29
# .deb 是 ar 归档,libarchive(bsdtar) 能直接拆;再解内层 data.tar.*。
30
bsdtar -xf "publishport-${pkgver}-amd64.deb"
31
bsdtar -xf data.tar.*
32
33
# 二进制装到 /usr/lib/publishport,/usr/bin 放符号链接做命令入口。
34
install -Dm755 "usr/bin/desktop" "$pkgdir/usr/lib/publishport/publishport"
35
install -dm755 "$pkgdir/usr/bin"
36
ln -s "/usr/lib/publishport/publishport" "$pkgdir/usr/bin/publishport"
37
38
# agent.js 必须放在 Tauri 实际解析的资源目录。Tauri 在 Linux 下按 productName
39
# 把资源目录定位到 /usr/lib/PublishPort(大写),与可执行文件实际所在目录无关
40
# (即使经 /usr/bin 符号链接启动也一样)——官方 .deb 正是放在这里。早先误以为
41
# 它按「可执行文件同级目录」解析、装进了 /usr/lib/publishport/resources(小写),
42
# 结果 Tauri 找不到 agent 入口、回退到构建机源码路径(/home/runner/...),
43
# bun 启动即失败,GUI 永远卡在「本地执行器连接中…」。保持与官方 .deb 一致。
44
install -Dm644 "usr/lib/PublishPort/resources/agent.js" \
45
"$pkgdir/usr/lib/PublishPort/resources/agent.js"
46
47
# 桌面入口:上游 .deb 用通用名 desktop,这里改用 publishport,避免命名污染。
48
install -Dm644 /dev/stdin "$pkgdir/usr/share/applications/publishport.desktop" <<'EOF'
49
[Desktop Entry]
50
Name=PublishPort
51
Comment=让线上 AI 经你本机的真实环境发布内容
52
Exec=publishport
53
Icon=publishport
54
StartupWMClass=publishport
55
Terminal=false
56
Type=Application
57
Categories=Network;Utility;
58
EOF
59
60
for size in 32x32 128x128 256x256@2; do
61
install -Dm644 "usr/share/icons/hicolor/${size}/apps/desktop.png" \
62
"$pkgdir/usr/share/icons/hicolor/${size}/apps/publishport.png"
63
done
64
}
65
Changes since previous scan
--- PKGBUILD @ 2026-11-01 00:21+++ PKGBUILD @ 2026-11-01 05:59@@ -6,7 +6,7 @@ # 版本号与 sha256sums 由发版工作流(.github/workflows/release-desktop.yml 的 # publish-aur 任务)在每次 desktop-v* tag 发布时自动改写并推送到 AUR。 pkgname=publishport-bin-pkgver=1.1.0+pkgver=1.2.10 pkgrel=1 pkgdesc="让线上 AI 用你本机真实登录环境,一键发布内容到小红书/知乎/微博/B站/Twitter 等平台(GUI 客户端)" arch=('x86_64')@@ -22,7 +22,7 @@ install="${pkgname}.install" source=("publishport-${pkgver}-amd64.deb::https://storage2.maoertech.cn/desktop/publishport-${pkgver}-amd64.deb") noextract=("publishport-${pkgver}-amd64.deb")-sha256sums=('6ed1fdd2f5d219a64a70b68476d7c077f263f5ef8b27cd7837a7711dfa66fe4e')+sha256sums=('866816d39b264e9f2f5a79c0cae7108577d120220d96cbad48759da62ef3e350') package() { cd "$srcdir"Scan history
| Scanned at (UTC) | Severity | Rules |
|---|---|---|
| 2026-11-01 05:59:34 | Medium | 2 |
| 2026-11-01 00:21:48 | Low | 2 |
| 2026-10-31 00:07:41 | Low | 2 |
| 2026-10-30 00:29:30 | Low | 2 |
| 2026-10-29 00:13:55 | Low | 2 |
| 2026-10-28 00:06:54 | Low | 2 |
| 2026-10-27 00:23:28 | Low | 2 |
| 2026-10-26 00:12:40 | Low | 2 |
| 2026-10-25 00:20:48 | Low | 2 |
| 2026-10-24 00:14:55 | Low | 2 |
| 2026-10-23 00:02:19 | Low | 2 |
| 2026-10-22 00:13:10 | Low | 2 |
| 2026-10-21 00:12:50 | Low | 2 |
| 2026-10-20 00:10:31 | Low | 2 |
| 2026-10-19 00:03:55 | Low | 2 |
| 2026-10-18 00:06:55 | Low | 2 |
| 2026-10-17 00:21:55 | Low | 2 |
| 2026-10-16 00:12:47 | Low | 2 |
| 2026-10-15 00:28:05 | Low | 2 |
| 2026-10-14 00:06:47 | Low | 2 |