dehelper
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:20
source=("${pkgname}-${pkgver}.deb::https://static.frdic.com/pkg/${pkgname}.deb?v=${_date}")
llm_review
An AI model (anthropic/claude-4.6-sonnet-20260217) reviewed this and agrees it is MEDIUM (confidence 72%): This PKGBUILD downloads a prebuilt proprietary binary .deb from static.frdic.com (the CDN/static host for the Eudic/Frdic dictionary software vendor), extracts it, and installs the binary directly. The host is the official vendor's static asset server (frdic.com is the Chinese developer of Eudic dictionaries), not a random personal host, so this is a legitimate vendor distribution pattern. However, the URL uses a query parameter (?v=_date) rather than a versioned path, meaning the same URL could serve different content over time without the sha512sum changing in the PKGBUILD — though the sha512sum does pin the specific binary. The real concern is that this is a closed-source prebuilt binary from a Chinese software vendor installed directly, with no source verification beyond the checksum. The sha512sum provides integrity protection against CDN substitution. This is a standard pattern for proprietary Linux software distributed as .deb packages (similar to many AUR packages for commercial software). The risk is real but typical for this class of package — it is a medium concern due to the prebuilt binary from a vendor CDN, but not elevated beyond that.
PKGBUILD
1 offending line(s) highlighted# Maintainer: yjun <jerrysteve1101 at gmail dot com>
# Maintainer: sukanka <su975853527 at gmail dot com>
pkgname=dehelper
pkgver=13.5.2
_date=2024-04-19
_lang=de
_flang=German
pkgrel=1
pkgdesc="Proprietary ${_flang} dictionary software for linux"
arch=('x86_64')
url="https://www.eudic.net/v4/${_lang}/app/${pkgname}"
license=('unknown')
depends=(
'hicolor-icon-theme'
'qt5-speech'
'qt5-webkit'
)
provides=("eudic-${_lang}")
source=("${pkgname}-${pkgver}.deb::https://static.frdic.com/pkg/${pkgname}.deb?v=${_date}")
sha512sums=('071bf1f74f08792fbf598fadb6c87c803e7989f3408c5dbcfbfa8d8189ff459e954786677fc310b2fa31f623e780a3df54dee72e2a31f2649ad4a1e447e95c18')
# sometime use curl to download source deb, throws 404 not found.
# user other UA instead of origion one fixed it.
# https://wiki.archlinux.org/index.php/Nonfree_applications_package_guidelines#Custom_DLAGENTS
DLAGENTS=("https::/usr/bin/curl -A 'Mozilla' -fLC - --retry 3 --retry-delay 3 -o %o %u")
prepare() {
mkdir -p build
tar -xf data.tar.xz -C build
}
package() {
_dirname=eusoft-${pkgname}
install -dm755 ${pkgdir}/usr/share
cp -pvr build/usr/share/* ${pkgdir}/usr/share/
# link executable
install -dm755 ${pkgdir}/usr/bin/
ln -s /usr/share/${_dirname}/${pkgname} \
${pkgdir}/usr/bin/${pkgname}
# desktop entry
sed -i "s|/usr/share/${_dirname}/AppRun|${pkgname}|g" \
${pkgdir}/usr/share/applications/eusoft-${pkgname}.desktop
# qt plugin path
sed -i '4c Prefix = /usr/lib/qt/' \
${pkgdir}/usr/share/${_dirname}/qt.conf
# remove unused files.
rm -rf ${pkgdir}/usr/share/${_dirname}/{gstreamer-1.0,lib,libcrypto.so.1.0.0,libssl.so.1.0.0,AppRun,plugins,lib*}
}
# vim: ts=2 sw=2 et:
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 |