qqmusic-bin
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:18
"qqmusic_${pkgver}_amd64.deb::https://c.y.qq.com/cgi-bin/file_redirect.fcg?bid=dldir&file=ecosfile_plink%2Fmusic_clntupate%2Flinux%2Fother%2Fqqmusic_${pkgver}_amd64.deb&sign=${sign}"
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 c.y.qq.com, which is Tencent's own CDN/redirect endpoint for QQ Music Linux downloads — this is the official upstream distribution channel for this proprietary application, not a random personal host. The URL uses a signed redirect (the 'sign' variable contains a hash token), which is consistent with Tencent's CDN signing mechanism. However, the package still qualifies as medium risk because: (1) it installs a prebuilt proprietary binary from a vendor CDN rather than building from source, which is the inherent supply-chain risk of all *-bin AUR packages; (2) the hex-patching of app.asar at install time modifies the shipped binary in ways that are opaque without reverse engineering; (3) the sha512sums are present and pin the downloaded artifacts, which mitigates substitution risk. The cheaper model's concern about the host is largely a false positive — c.y.qq.com is Tencent's legitimate distribution infrastructure — but the prebuilt-binary-from-vendor pattern is genuinely medium by AUR standards. No piracy or broken flags apply.
PKGBUILD
1 offending line(s) highlighted# Maintainer: Rukkhadevata123 <3083913301@qq.com>
# Contributor: MYT1 <myt1 @ QQ.com>
# Contributor: Sukanka <su975853527 [AT] gmail.com>
# Contributor: Zhong Lufan <lufanzhong@gmail.com>
pkgname=qqmusic-bin
_pkgname=qqmusic
pkgver=1.1.8
pkgrel=1
pkgdesc="腾讯QQ音乐"
arch=("x86_64")
url="https://y.qq.com/"
license=("CC0-1.0")
depends=('nss' 'libxss' 'gtk3' 'alsa-lib')
provides=("$_pkgname")
sign=1-d1ca4d5c5a8369b26af88e881ba3ac544066a899dcaea29778b35c9f648e6fee-68cb7c1c
source=(
"qqmusic_${pkgver}_amd64.deb::https://c.y.qq.com/cgi-bin/file_redirect.fcg?bid=dldir&file=ecosfile_plink%2Fmusic_clntupate%2Flinux%2Fother%2Fqqmusic_${pkgver}_amd64.deb&sign=${sign}"
"$url/i/user_terms.html"
"${_pkgname}".sh
)
sha512sums=('0da75cddd70340dfb3551af39200b6c90a3b506db539a0276d4a4f50d593f3559dcfa16819a68634ef0b85247d1add1737f699fd24942f1da8915ee867f4b2ee'
'7ec79376e96b6f3839719e568e8f96c5ec2a3d084ea50538b5ffb15a839b3a1a763460d5b4dce69cbe5d0516cc1305198a58d3fee8ca618430272c102e9617a2'
'bd04c44159d1cdbf1a248e919802c8459a859ac29f4e3a94c04d1b32e1677fd5c0bb068a2d69778a966936d500c9e66e76ac2c435bfadff67a96ea859f1f18c2')
package(){
cd "${srcdir}"
install -Dm644 ${srcdir}/user_terms.html "${pkgdir}/usr/share/licenses/${pkgname}/user_terms.html"
tar -xvf data.tar.xz -C "${pkgdir}"
install -Dm755 ${_pkgname}.sh "${pkgdir}/usr/bin/${_pkgname}"
local desktopfile="${pkgdir}/usr/share/applications/${_pkgname}.desktop"
sed -i '3c Exec=qqmusic %U' "$desktopfile"
sed -i 'N;2aName[zh_CN]=QQ音乐\nKeywords=qqmusic' "$desktopfile"
sed -i '$a\MimeType=application\/x-ogg;application\/oog;audio\/x-vorbis+ogg;audio\/vorbis;audio\/x-vorbis;audio\/x-scpls;audio\/x-mp3;audio\/x-mpeg;audio\/x-mpegurl;audio\/x-flac;audio\/x-mp4;audio\/x-stm;audio\/x-xm;' "${pkgdir}/usr/share/applications/qqmusic.desktop"
sed '4s/.*/Keywords=Audio;Song;MP3;CD;Podcast;MTP;iPod;Playlist;Last.fm;UPnP;DLNA;Radio;/g' -i "${pkgdir}/usr/share/applications/qqmusic.desktop"
# Hex patch
# 1. Fix orphaned processes
# 2. Fix search
local _subst="
s|\xA4\x8B\x7A\xB9\x8D\xCF\x54\xAE|\xA4\x8B\x7A\xB9\x85\xEF\x54\xAE|
s|\xB3\x1D\xF5\xCB\x24\xBC|\xA3\x63\xBB\xC9\x3F\xBC|
"
sed "$_subst" -i "${pkgdir}/opt/qqmusic/resources/app.asar"
chmod g-w -R "${pkgdir}" # Fix directory permissions
}
Scan history
| Scanned at (UTC) | Severity | Rules |
|---|---|---|
| 2026-08-03 00:08:14 | MEDIUM | 2 |
| 2026-08-02 00:16:08 | MEDIUM | 2 |
| 2026-08-01 00:11:18 | MEDIUM | 2 |
| 2026-07-31 00:14:10 | MEDIUM | 2 |
| 2026-07-30 00:17:23 | MEDIUM | 2 |
| 2026-07-29 00:25:53 | MEDIUM | 2 |
| 2026-07-28 00:07:28 | MEDIUM | 2 |
| 2026-07-27 00:24:32 | MEDIUM | 2 |
| 2026-07-26 00:07:32 | MEDIUM | 2 |
| 2026-07-25 00:13:44 | MEDIUM | 2 |
| 2026-07-24 00:02:28 | MEDIUM | 2 |
| 2026-07-23 00:14:47 | MEDIUM | 2 |
| 2026-07-22 00:29:32 | MEDIUM | 2 |
| 2026-07-21 00:24:15 | MEDIUM | 2 |
| 2026-07-20 00:19:49 | MEDIUM | 2 |
| 2026-07-19 00:17:08 | MEDIUM | 2 |
| 2026-07-18 00:14:48 | MEDIUM | 2 |
| 2026-07-17 00:06:16 | MEDIUM | 2 |
| 2026-07-16 00:05:41 | MEDIUM | 2 |
| 2026-07-15 00:09:25 | MEDIUM | 2 |