cgm-life-dataexport

maintainer Auerhuhn · 0 votes · scanned 2026-08-03 00:08:14.047287
MEDIUM
View on AUR ↗
Why flagged The PKGBUILD downloads a prebuilt .deb from docs.cgmlife.com, which is a vendor-controlled but non-standard distribution host (not a major distro mirror or well-known CDN). The package installs a bundled Java application with executable JARs and a launcher script. A sha512sum is provided, which pins the specific binary, mitigating opportunistic substitution — but only for this exact version; future updates could silently introduce a different binary. The domain cgmlife.com appears to be the legitimate CGM Life / Clickdoc health data service (CGM = CompuGroup Medical), so this is not an obviously rogue host. However, the package does execute code from a proprietary binary pulled from a non-standard host with no GPG signature verification, which is the classic medium supply-chain pattern. The PKGBUILD itself is well-structured and the maintainer explicitly strips the bundled JRE in favor of system OpenJDK/OpenJFX, which is a positive sign of care. Overall: genuine medium risk due to unverified binary from a non-mainstream host, but not elevated to high because the domain is plausibly the legitimate upstream vendor and checksums are present.

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:20 "${pkgname}-${pkgver}.deb::https://docs.cgmlife.com/LIFEExportDesktopClient/PROD/${pkgname}-desktop-${pkgver}.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 from docs.cgmlife.com, which is a vendor-controlled but non-standard distribution host (not a major distro mirror or well-known CDN). The package installs a bundled Java application with executable JARs and a launcher script. A sha512sum is provided, which pins the specific binary, mitigating opportunistic substitution — but only for this exact version; future updates could silently introduce a different binary. The domain cgmlife.com appears to be the legitimate CGM Life / Clickdoc health data service (CGM = CompuGroup Medical), so this is not an obviously rogue host. However, the package does execute code from a proprietary binary pulled from a non-standard host with no GPG signature verification, which is the classic medium supply-chain pattern. The PKGBUILD itself is well-structured and the maintainer explicitly strips the bundled JRE in favor of system OpenJDK/OpenJFX, which is a positive sign of care. Overall: genuine medium risk due to unverified binary from a non-mainstream host, but not elevated to high because the domain is plausibly the legitimate upstream vendor and checksums are present.

PKGBUILD

1 offending line(s) highlighted
1# Maintainer: Claudia Pellegrino <aur ät cpellegrino.de>
2
3pkgname=cgm-life-dataexport
4pkgver=1.5.0
5pkgrel=1
6pkgdesc='Personal data exporter for Clickdoc (formerly CGM Life) accounts'
7arch=('any')
8url='https://one.cgm.com/clickdoc'
9license=('LicenseRef-unknown')
10_java=21
11depends=(
12 'bash'
13 "java-openjfx=${_java}" # provided by e.g. java21-openjfx or java21-openjfx-bin (AUR)
14 "java-runtime-openjdk=${_java}"
15)
16makedepends=('dpkg' 'jq' 'python-j2cli')
17options=('!debug' '!strip')
18
19source=(
20 "${pkgname}-${pkgver}.deb::https://docs.cgmlife.com/LIFEExportDesktopClient/PROD/${pkgname}-desktop-${pkgver}.deb"
21 "${pkgname}.bash.j2"
22 "${pkgname}.desktop"
23)
24
25sha512sums=(
26 '86e7fd805bbff930233bb8530a2bb233c861d5129056ac001799f0a315125da59c01b6f431616fa047761dbaed401a773226024b06c3d47e744fe250b4b052e9'
27 '00a28686c9be3aa4e0cf29efdf4063b274720dfbe0193a30dc2b4e7122693b67817d6915e169a6689bbd1f3c934899b358edcb3a76d14800ca3c4be7ba8d9f3a'
28 '65bf0d3ecb145fbcc07cd80b4a4a376f92aed0dd78ee03e20272299081da4bda2535abd955f875b289189c00687d22e7c4b774ff3d74573f065299cfc8821a61'
29)
30
31prepare() {
32 echo >&2 'Extracting upstream archive'
33 dpkg-deb -x "${pkgname}-${pkgver}.deb" "${pkgname}-${pkgver}"
34
35 echo >&2 'Asserting that bundled Java version matches depends entries'
36 diff -u \
37 --label 'Expected Java major version' <(echo "${_java}") \
38 --label 'Actual Java major version' <(
39 awk -F '"' -e '/JAVA_VERSION/ { print $2 }' \
40 "${pkgname}-${pkgver}/opt/${pkgname}-desktop/lib/runtime/release" \
41 | cut -d . -f 1
42 )
43
44 echo >&2 'Preparing the launcher'
45 jq -n \
46 --arg java "${_java}" \
47 --arg modulePath "$(
48 echo /usr/lib/jvm/"java-${_java}-openjdk"/lib/javafx.{base,controls,fxml,graphics,media,web}.jar \
49 | tr " " :
50 )" \
51 --arg modules "$(
52 awk -F '"' -e '/MODULES/ { gsub(/\s/, ",", $2); print $2 }' \
53 "${pkgname}-${pkgver}/opt/${pkgname}-desktop/lib/runtime/release"
54 )" \
55 --arg pkgver "${pkgver}" \
56 '{ $java, $modulePath, $modules, $pkgver }' \
57 | j2 -f json -o "${pkgname}-desktop" "${pkgname}.bash.j2" -
58}
59
60package() {
61 cd "${pkgname}-${pkgver}"
62
63 echo >&2 'Packaging the license'
64 install -D -m 644 -t "${pkgdir}/usr/share/licenses/${pkgname}" \
65 "opt/${pkgname}-desktop/share/doc/copyright"
66
67 echo >&2 'Packaging application icon'
68 install -D -m 644 -T \
69 "opt/${pkgname}-desktop/lib/${pkgname}-desktop.png" \
70 "${pkgdir}/usr/share/pixmaps/${pkgname}.png"
71
72 echo >&2 'Packaging desktop file'
73 install -D -m 644 -t "${pkgdir}/usr/share/applications" \
74 ../"${pkgname}.desktop"
75
76 echo >&2 'Packaging application files'
77 mkdir -p "${pkgdir}/usr/lib/${pkgname}"
78 cp -R --preserve=mode -t "${pkgdir}/usr/lib/${pkgname}" \
79 "opt/${pkgname}-desktop/lib/app" \
80
81 echo >&2 'Packaging the executable'
82 install -D -m 755 -t "${pkgdir}/usr/bin" ../"${pkgname}-desktop"
83}
84

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