eusoft-ting-es-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 CDN/distribution host for Eudic (欧路词典/frdic.com), the developer of this Spanish listening app. This is the vendor's own distribution infrastructure rather than a completely unrelated third-party host — frdic.com is the official domain for Eusoft/Eudic products, and static.frdic.com is their standard asset delivery host used across multiple Eudic AUR packages. However, the URL is not versioned (it fetches _pkgname.deb without a version in the path), meaning the artifact could silently change without a pkgver bump, and the sha256sum would catch substitution only at build time. The package installs app.asar and app.asar.unpacked (Node.js/Electron application code) from this binary, which is executed code. The sha256sum is pinned, which mitigates the mutable-URL risk somewhat. Overall this is a standard pattern for Eudic/Eusoft AUR packages and the host is the vendor's own CDN, making this closer to a legitimate vendor binary than a truly unofficial host, but the unversioned URL and executed binary nature keep it at medium rather than clean.

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:22 "${pkgname%-bin}-${pkgver}.deb::https://static.frdic.com/pkg/${_pkgname}/${_pkgname}.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 CDN/distribution host for Eudic (欧路词典/frdic.com), the developer of this Spanish listening app. This is the vendor's own distribution infrastructure rather than a completely unrelated third-party host — frdic.com is the official domain for Eusoft/Eudic products, and static.frdic.com is their standard asset delivery host used across multiple Eudic AUR packages. However, the URL is not versioned (it fetches _pkgname.deb without a version in the path), meaning the artifact could silently change without a pkgver bump, and the sha256sum would catch substitution only at build time. The package installs app.asar and app.asar.unpacked (Node.js/Electron application code) from this binary, which is executed code. The sha256sum is pinned, which mitigates the mutable-URL risk somewhat. Overall this is a standard pattern for Eudic/Eusoft AUR packages and the host is the vendor's own CDN, making this closer to a legitimate vendor binary than a truly unofficial host, but the unversioned URL and executed binary nature keep it at medium rather than clean.

PKGBUILD

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

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