ultralightwebcursor-git
Triggered rules
privileged_install
The package grants elevated privileges or installs an update path outside pacman: a /etc/sudoers.d rule (often passwordless), a setuid/setgid binary, or a self-update script/service that can fetch and run future code with no checksum verification. The initial install may be verified, but the ongoing privilege + update surface is a real supply-chain / privilege-escalation risk.
-
PKGBUILD:102
chmod 4755 "${pkgdir}/usr/lib/kf6/kauth/ultralightwebcursor_helper"
zero_votes_recent
Uploaded within the last 14 days with 2 or fewer community votes — little peer review so far.
llm_review
An AI model (qwen/qwen3-235b-a22b-2507) reviewed this and agrees it is MEDIUM (confidence 95%): The package installs a setuid binary via KAuth helper and performs user-specific configuration changes using sudo, which constitutes a privileged self-installation pattern that could be abused for persistence or privilege escalation.
PKGBUILD
1 offending line(s) highlightedpkgname=ultralightwebcursor-git
_pkgname=Animated_UltralightWeb_Cursor
pkgver=1.0.1
pkgrel=1
pkgdesc="HTML/CSS/JS-based global animated cursor framework integrated with KDE 6 System Settings and KWin Effects"
arch=('x86_64')
url="https://github.com/LuYishan-4/Animated_UltralightWeb_Cursor"
license=('MIT')
depends=(
'qt6-base'
'qt6-declarative'
'kcmutils'
'kcoreaddons'
'kconfig'
'kconfigwidgets'
'ki18n'
'kauth'
'kwin'
)
makedepends=('git' 'cmake' 'extra-cmake-modules' 'p7zip')
provides=("ultralightwebcursor" "kcm-ultralightwebcursor")
conflicts=("ultralightwebcursor" "kcm-ultralightwebcursor")
install=ultralightwebcursor.install
source=("git+https://github.com/LuYishan-4/Animated_UltralightWeb_Cursor")
sha256sums=('SKIP')
pkgver() {
cd "${srcdir}/${_pkgname}"
(set -o pipefail; git describe --long --tags --abbrev=7 2>/dev/null | sed 's/\([^-]*-\)g/r\1/;s/-/./g' ||
printf "r%s.%s" "$(git rev-list --count HEAD)" "$(git rev-parse --short=7 HEAD)")
}
prepare() {
cd "${srcdir}/${_pkgname}"
# 1. Handle Ultralight SDK archive decompression with strict directory enforcement
echo "==> Verifying Ultralight SDK directory alignment..."
local sdk_target="sdk/ultralight-free-sdk-1.4.0-linux-x64"
if [ ! -f "${sdk_target}/include/AppCore/App.h" ]; then
echo "==> Target SDK headers not found. Re-extracting cleanly..."
rm -rf "${sdk_target}"
cd sdk
7z x ultralight-free-sdk-1.4.0-linux-x64.7z
cd ..
if [ -d "sdk/include" ] && [ -f "sdk/include/AppCore/App.h" ]; then
echo "==> SDK extracted flatly into sdk/. Re-structuring into target directory layout..."
mkdir -p "${sdk_target}"
mv sdk/bin sdk/include sdk/layers "${sdk_target}/" 2>/dev/null || true
fi
if [ -d "${sdk_target}/ultralight-free-sdk-1.4.0-linux-x64" ]; then
echo "==> Squashing nested double SDK directories..."
mv "${sdk_target}/ultralight-free-sdk-1.4.0-linux-x64" sdk/tmp_sdk
rm -rf "${sdk_target}"
mv sdk/tmp_sdk "${sdk_target}"
fi
fi
if [ ! -f "${sdk_target}/include/AppCore/App.h" ]; then
echo "==> ERROR: SDK extraction layout is still invalid."
exit 1
fi
echo "==> Generating compliant policy placeholder in source tree..."
cat <<EOF > GUI/org.ultralightwebcursor.policy
<?xml version="1.0" encoding="utf-8"?>
<policyconfig>
</policyconfig>
EOF
}
build() {
cd "${srcdir}/${_pkgname}"
mkdir -p build/GUI
touch build/GUI/org.ultralightwebcursor.policy
cmake -B build -S . \
-DCMAKE_BUILD_TYPE=Release \
-DCMAKE_INSTALL_PREFIX=/usr \
-DBUILD_TESTING=OFF \
-Wno-dev
touch build/GUI/org.ultralightwebcursor.policy
cmake --build build
}
package() {
cd "${srcdir}/${_pkgname}"
DESTDIR="${pkgdir}" cmake --install build
# KAuth Security Compliance:
if [ -f "${pkgdir}/usr/lib/kf6/kauth/ultralightwebcursor_helper" ]; then
chown root:root "${pkgdir}/usr/lib/kf6/kauth/ultralightwebcursor_helper"
chmod 4755 "${pkgdir}/usr/lib/kf6/kauth/ultralightwebcursor_helper"
fi
}
Changes since previous scan
--- PKGBUILD @ 2026-07-26 09:32+++ PKGBUILD @ 2026-08-03 00:08@@ -1,10 +1,10 @@ pkgname=ultralightwebcursor-git-_pkgname=UltralightWeb_Cursor+_pkgname=Animated_UltralightWeb_Cursor pkgver=1.0.1 pkgrel=1 pkgdesc="HTML/CSS/JS-based global animated cursor framework integrated with KDE 6 System Settings and KWin Effects" arch=('x86_64')-url="https://github.com/LuYishan-4/UltralightWeb_Cursor"+url="https://github.com/LuYishan-4/Animated_UltralightWeb_Cursor" license=('MIT') depends=( 'qt6-base'@@ -22,7 +22,7 @@ conflicts=("ultralightwebcursor" "kcm-ultralightwebcursor") install=ultralightwebcursor.install-source=("git+https://github.com/LuYishan-4/UltralightWeb_Cursor.git")+source=("git+https://github.com/LuYishan-4/Animated_UltralightWeb_Cursor") sha256sums=('SKIP') pkgver() {Scan history
| Scanned at (UTC) | Severity | Rules |
|---|---|---|
| 2026-08-03 00:08:14 | MEDIUM | 3 |
| 2026-08-02 00:16:08 | MEDIUM | 3 |
| 2026-08-01 00:11:18 | MEDIUM | 3 |
| 2026-07-31 00:14:10 | MEDIUM | 3 |
| 2026-07-30 00:17:23 | MEDIUM | 3 |
| 2026-07-29 00:25:53 | MEDIUM | 3 |
| 2026-07-28 00:07:28 | MEDIUM | 3 |
| 2026-07-27 00:24:32 | MEDIUM | 3 |
| 2026-07-26 17:32:42 | MEDIUM | 3 |
| 2026-07-26 15:32:35 | MEDIUM | 3 |
| 2026-07-26 09:32:02 | MEDIUM | 2 |
| 2026-07-26 05:33:58 | LOW | 3 |
| 2026-07-26 05:31:42 | MEDIUM | 3 |