cgm-life-dataexport

MEDIUM
maintainer Auerhuhn 0 votes scanned 2026-09-17 00:27:14.276658
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-09-17 00:27:14 Medium 2
2026-09-16 00:03:17 Medium 2
2026-09-15 00:25:31 Medium 2
2026-09-14 00:27:57 Medium 2
2026-09-13 00:19:54 Medium 2
2026-09-12 00:25:17 Medium 2
2026-09-11 00:19:22 Medium 2
2026-09-10 00:22:44 Medium 2
2026-09-09 00:04:09 Medium 2
2026-09-08 00:18:08 Medium 2
2026-09-07 00:30:15 Medium 2
2026-09-06 00:17:06 Medium 2
2026-09-05 00:16:27 Medium 2
2026-09-04 00:03:13 Medium 2
2026-09-03 00:15:47 Medium 2
2026-09-02 00:02:31 Medium 2
2026-09-01 00:11:19 Medium 2
2026-08-31 00:19:57 Medium 2
2026-08-30 00:04:14 Medium 2
2026-08-29 00:29:17 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