eusoft-ting-en-bin

maintainer zxp19821005 · 0 votes · scanned 2026-08-03 00:08:14.047287
MEDIUM
View on AUR ↗
Why flagged The PKGBUILD downloads a prebuilt .deb binary from static.frdic.com, which is the official CDN/distribution host for Eudic (欧路词典) software products — frdic.com is the domain associated with the Eudic/Eusoft company that makes this Chinese dictionary/language learning software. This is not a random personal host; it is the vendor's own distribution infrastructure. However, the URL is not versioned (it fetches 'ting_en.deb' without a version in the path), meaning the sha256sum provides integrity protection only for the specific version captured at PKGBUILD creation time — future updates to the remote file would break the checksum. The sha256sum is present and pinned, which mitigates substitution risk. The package installs app.asar (Electron application code) and native unpacked resources from this binary, which is executed code from a non-open-source vendor host. This is a standard pattern for proprietary Electron app AUR packages (-bin suffix), and the risk profile is consistent with other similar AUR packages (e.g., eudic, baidunetdisk-bin). The concern is real but typical for this class of package: a medium supply-chain risk due to executed proprietary binary from a vendor CDN without source verification, but not elevated beyond that.

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:21 "${pkgname%-bin}-${pkgver}.deb::https://static.frdic.com/pkg/${_appname}/${_appname}.deb"
MEDIUM AI review llm_review

An AI model (anthropic/claude-4.6-sonnet-20260217) reviewed this and agrees it is MEDIUM (confidence 72%): The PKGBUILD downloads a prebuilt .deb binary from static.frdic.com, which is the official CDN/distribution host for Eudic (欧路词典) software products — frdic.com is the domain associated with the Eudic/Eusoft company that makes this Chinese dictionary/language learning software. This is not a random personal host; it is the vendor's own distribution infrastructure. However, the URL is not versioned (it fetches 'ting_en.deb' without a version in the path), meaning the sha256sum provides integrity protection only for the specific version captured at PKGBUILD creation time — future updates to the remote file would break the checksum. The sha256sum is present and pinned, which mitigates substitution risk. The package installs app.asar (Electron application code) and native unpacked resources from this binary, which is executed code from a non-open-source vendor host. This is a standard pattern for proprietary Electron app AUR packages (-bin suffix), and the risk profile is consistent with other similar AUR packages (e.g., eudic, baidunetdisk-bin). The concern is real but typical for this class of package: a medium supply-chain risk due to executed proprietary binary from a vendor CDN without source verification, but not elevated beyond that.

PKGBUILD

1 offending line(s) highlighted
1# Maintainer: zxp19821005 <zxp19821005 at 163 dot com>
2_appname=ting_en
3pkgname="eusoft-${_appname//_/-}-bin"
4_zhname='每日英语听力'
5pkgver=10.2.0
6_electronversion=11
7pkgrel=1
8pkgdesc="Listening statistics, note synchronization, and voice highlighting follow-up make learning English easy and enjoyable for you.(Prebuilt version.Use system-wide electron)听力统计、笔记同步、语音高亮跟随,让您轻松愉快学英语"
9arch=('x86_64')
10url="http://dict.eudic.net/ting"
11license=('LicenseRef-custom')
12conflicts=(
13 "${pkgname%-bin}"
14 "eudic-${_appname}"
15)
16depends=(
17 "electron${_electronversion}"
18 'ffmpeg'
19)
20source=(
21 "${pkgname%-bin}-${pkgver}.deb::https://static.frdic.com/pkg/${_appname}/${_appname}.deb"
22 "LICENSE.html"
23 "${pkgname%-bin}.sh"
24)
25sha256sums=('5806324c371d9115f7e7f46ead8816a3a2ba5e797403369cd40ae49111c4f5fc'
26 '17651cf7ae49b0372b6b6812d8b3b066203892c9fbe0b04b25efec0ab038c12b'
27 'f2fe8c189974ffb9d445e9a42bd4f1d5b60185607c3fcafae79ab44be224e013')
28_get_electron_version() {
29 _electronversion="$(strings "${srcdir}/opt/${_zhname}/${_pkgname}" | grep '^Chrome/[0-9.]* Electron/[0-9]' | cut -d'/' -f3 | cut -d'.' -f1)"
30 echo -e "The electron version is: \033[1;31m${_electronversion}\033[0m"
31}
32prepare() {
33 sed -i -e "
34 s/@electronversion@/${_electronversion}/g
35 s/@appname@/${pkgname%-bin}/g
36 s/@runname@/app.asar/g
37 s/@cfgdirname@/${_appname}/g
38 s/@options@//g
39 " "${srcdir}/${pkgname%-bin}.sh"
40 bsdtar -xf "${srcdir}/data."*
41 sed -i -e"
42 s/\"\/opt\/${_zhname}\/${_appname}\"/${pkgname%-bin}/g
43 s/Icon=${_appname}/Icon=${pkgname%-bin}/g
44 " -i "${srcdir}/usr/share/applications/${_appname}.desktop"
45 ln -sf "/usr/bin/ffmpeg" "${srcdir}/opt/${_zhname}/resources/app.asar.unpacked/ffmpeg-linux-x64"
46}
47package() {
48 install -Dm755 "${srcdir}/${pkgname%-bin}.sh" "${pkgdir}/usr/bin/${pkgname%-bin}"
49 install -Dm644 "${srcdir}/opt/${_zhname}/resources/app.asar" -t "${pkgdir}/usr/lib/${pkgname%-bin}"
50 cp -Pr --no-preserve=ownership "${srcdir}/opt/${_zhname}/resources/app.asar.unpacked" "${pkgdir}/usr/lib/${pkgname%-bin}"
51 ln -sf "/usr/bin/ffmpeg" "${pkgdir}/usr/lib/${pkgname%-bin}/ffmpeg-linux-x64"
52 install -Dm644 "${srcdir}/opt/${_zhname}/swiftshader/"* -t "${pkgdir}/usr/lib/${pkgname%-bin}/swiftshader"
53 install -Dm644 "${srcdir}/usr/share/applications/${_appname}.desktop" "${pkgdir}/usr/share/applications/${pkgname%-bin}.desktop"
54 _icon_sizes=(32x32 128x128 256x256)
55 for _icons in "${_icon_sizes[@]}";do
56 install -Dm644 "${srcdir}/usr/share/icons/hicolor/${_icons}/apps/${_appname}.png" \
57 "${pkgdir}/usr/share/icons/hicolor/${_icons}/apps/${pkgname%-bin}.png"
58 done
59 install -Dm644 "${srcdir}/LICENSE.html" -t "${pkgdir}/usr/share/licenses/${pkgname}"
60}
61

Scan history

Scanned at (UTC)SeverityRules
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

Report a package

Reports go to the AURWatch maintainer (one person) and are read by hand. No login required.

0 / 4000
Your suggestion