openhab-beta
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:18
source=("https://ci.openhab.org/job/openHAB-Distribution/lastSuccessfulBuild/artifact/distributions/openhab/target/openhab-${_pkgver}-SNAPSHOT.zip"
llm_review
An AI model (anthropic/claude-4.6-sonnet-20260217) reviewed this and agrees it is MEDIUM (confidence 82%): The PKGBUILD downloads prebuilt binary artifacts (a ZIP runtime and two KAR plugin bundles) from ci.openhab.org's 'lastSuccessfulBuild' CI endpoint with sha256sums=SKIP for all three binaries. While ci.openhab.org is the official openHAB project CI server (not a personal or third-party host), the use of 'lastSuccessfulBuild' means the URL is not pinned to a specific build — it resolves to whatever the latest successful build is at download time. Combined with SKIP checksums, there is no integrity verification whatsoever. Any compromise of the CI server, a MITM, or a malicious artifact pushed to CI would result in execution of untrusted code on the user's system. The service file has a proper checksum. This is a genuine supply-chain concern (mutable CI artifact URL + no integrity check on executed binaries), though not clearly malicious — the host is the official project CI, not a personal server.
PKGBUILD
1 offending line(s) highlighted# Maintainer: Daniel Hillenbrand <codeworkx@bbqlinux.org>
pkgname=openhab-beta
_pkgver=2.5.0
pkgver=2.5.0_20190203
pkgrel=1
pkgdesc="openHAB2 open source home automation software"
arch=('any')
url="http://www.openhab.org/"
license=('EPL')
depends=('java-runtime-headless>=8')
makedepends=('unzip')
conflicts=('openhab-runtime' 'openhab-addons' 'openhab2')
backup=('etc/openhab/conf/services/addons.cfg'
'etc/openhab/conf/services/runtime.cfg')
source=("https://ci.openhab.org/job/openHAB-Distribution/lastSuccessfulBuild/artifact/distributions/openhab/target/openhab-${_pkgver}-SNAPSHOT.zip"
"https://ci.openhab.org/job/openHAB-Distribution/lastSuccessfulBuild/artifact/distributions/openhab-addons/target/openhab-addons-${_pkgver}-SNAPSHOT.kar"
"https://ci.openhab.org/job/openHAB-Distribution/lastSuccessfulBuild/artifact/distributions/openhab-addons-legacy/target/openhab-addons-legacy-${_pkgver}-SNAPSHOT.kar"
"openhab.service")
noextract=("openhab-${_pkgver}-SNAPSHOT.zip")
sha256sums=('SKIP'
'SKIP'
'SKIP'
'79b57f9f6b6e832f1bc60649990c147825a36e76858c43d3f1464f6b98530bdb')
pkgver() {
printf "${_pkgver}_%s" "$(date +%Y%m%d)"
}
prepare() {
mkdir -p "$srcdir/openhab"
cd "$srcdir/openhab"
unzip "$srcdir/openhab-${_pkgver}-SNAPSHOT.zip"
cp "$srcdir/openhab-addons-${_pkgver}-SNAPSHOT.kar" "$srcdir/openhab/addons"
cp "$srcdir/openhab-addons-legacy-${_pkgver}-SNAPSHOT.kar" "$srcdir/openhab/addons"
}
package() {
cd $pkgdir
mkdir -p etc/openhab
mkdir -p opt
mkdir -p usr/lib/systemd/system
cp $srcdir/openhab.service usr/lib/systemd/system
cp -r $srcdir/openhab opt/
mv opt/openhab/conf etc/openhab/conf
ln -s /etc/openhab/conf opt/openhab/conf
mv opt/openhab/addons etc/openhab/addons
ln -s /etc/openhab/addons opt/openhab/addons
}
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 |