xp-pen-tablet

maintainer labaman · 36 votes · scanned 2026-08-03 00:08:14.047287
MEDIUM
View on AUR ↗
Why flagged This PKGBUILD downloads a prebuilt binary .deb package from download01.xp-pen.com, which is the official XP-Pen vendor download server (consistent with their official download page at xp-pen.com/download). The package extracts and installs proprietary closed-source binaries and shared libraries directly into the system. The sha512sum is present and pins the specific binary, which mitigates silent substitution risk somewhat. However, the core concern remains: this is a closed-source, prebuilt binary blob from a vendor CDN host — if that host were compromised or the binary were backdoored, the checksum would not help (it only verifies the file hasn't changed in transit, not that the binary is safe). The package installs executables, .so libraries, a shell wrapper (PenTablet.sh), udev rules, systemd user services, and tmpfiles.d config — a broad attack surface if the binary were malicious. The sed modification to PenTablet.sh is benign (adds TMPDIR logic). The chown/chmod operations are reasonable hardening. This is a standard pattern for proprietary hardware driver packaging in the AUR (similar to wacom, huion, etc.), and download01.xp-pen.com is a known official XP-Pen distribution endpoint. The medium rating is appropriate: not clearly malicious, but installing unauditable closed-source binaries from a vendor CDN is an inherent supply-chain risk that cannot be fully mitigated.

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:15 source=("XPPenLinux${pkgver}-${_vendor_rel}.deb::https://download01.xp-pen.com/file/2026/04/XPPenLinux${pkgver}-${_vendor_rel}.deb")
MEDIUM AI review 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 binary .deb package from download01.xp-pen.com, which is the official XP-Pen vendor download server (consistent with their official download page at xp-pen.com/download). The package extracts and installs proprietary closed-source binaries and shared libraries directly into the system. The sha512sum is present and pins the specific binary, which mitigates silent substitution risk somewhat. However, the core concern remains: this is a closed-source, prebuilt binary blob from a vendor CDN host — if that host were compromised or the binary were backdoored, the checksum would not help (it only verifies the file hasn't changed in transit, not that the binary is safe). The package installs executables, .so libraries, a shell wrapper (PenTablet.sh), udev rules, systemd user services, and tmpfiles.d config — a broad attack surface if the binary were malicious. The sed modification to PenTablet.sh is benign (adds TMPDIR logic). The chown/chmod operations are reasonable hardening. This is a standard pattern for proprietary hardware driver packaging in the AUR (similar to wacom, huion, etc.), and download01.xp-pen.com is a known official XP-Pen distribution endpoint. The medium rating is appropriate: not clearly malicious, but installing unauditable closed-source binaries from a vendor CDN is an inherent supply-chain risk that cannot be fully mitigated.

PKGBUILD

1 offending line(s) highlighted
1# Maintainer: Mikhail Velichko <efklid at gmail dot com>
2# Contributor: Moon Sungjoon <sumoon at seoulsaram dot org>
3# Contributor: Hurstel Alexandre <alexandre at hurstel dot eu>
4# Contributor: Tobias Manske <aur at rad4day dot de>
5# Contributor: Mikata Riko <sanbikappa at qq dot com>
6
7pkgname=xp-pen-tablet
8pkgver=4.0.15
9_vendor_rel=260422
10pkgrel=${_vendor_rel}.2
11pkgdesc="XP-Pen (Official) Linux utility (New UI driver)"
12arch=('x86_64')
13url='https://www.xp-pen.com/download/index.html'
14license=('custom')
15source=("XPPenLinux${pkgver}-${_vendor_rel}.deb::https://download01.xp-pen.com/file/2026/04/XPPenLinux${pkgver}-${_vendor_rel}.deb")
16install=${pkgname}.install
17
18sha512sums=('ebaabc40973fa466b99af4e5b8158053bae07e13cdb009421df31b0b67c8479ad8c4dad0213061fa413f3c57011fd3940ef516d7bc0034796a152dc1c116c348')
19
20prepare() {
21 tar -xf data.tar.xz
22}
23
24package() {
25 cp -dr --no-preserve=ownership usr ${pkgdir}/
26 # per-user tempdir for manual launches (.desktop -> PenTablet.sh): keep Qt's
27 # single-instance socket+lockfile in /run/user/UID so parallel logins don't collide
28 # on a shared /tmp lockfile. The systemd service sets TMPDIR=%t; ${TMPDIR:-...} respects it.
29 sed -i '/export LD_LIBRARY_PATH/a if [ -n "$XDG_RUNTIME_DIR" ]; then export TMPDIR="${TMPDIR:-$XDG_RUNTIME_DIR}"; fi' "${pkgdir}/usr/lib/pentablet/PenTablet.sh"
30 # conf files: set ownership and permissions for pre-existing files at install time.
31 # new files created by the app at runtime inherit group via setgid on the directory (see tmpfiles.d below).
32 chown root:users "${pkgdir}"/usr/lib/pentablet/conf/xppen/*
33 chmod 0664 "${pkgdir}"/usr/lib/pentablet/conf/xppen/*
34 # libraries: read-only
35 chmod 0644 "${pkgdir}"/usr/lib/pentablet/lib/*.so.*
36 chmod 0644 "${pkgdir}/usr/lib/pentablet/platforms/libqxcb.so"
37 chmod 0644 "${pkgdir}/usr/share/applications/xppentablet.desktop"
38 chmod 0644 "${pkgdir}/usr/share/icons/hicolor/256x256/apps/xppentablet.png"
39 install -Dm0644 ${pkgdir}/usr/lib/pentablet/doc/EULA ${pkgdir}/usr/share/licenses/${pkgname}/LICENSE
40 # conf directory: tmpfiles.d sets setgid so files created by the app inherit group users
41 mkdir -p "${pkgdir}/usr/lib/tmpfiles.d"
42 cat <<EOF >"${pkgdir}/usr/lib/tmpfiles.d/xp-pen-tablet.conf"
43d /usr/lib/pentablet/conf/xppen 2775 root users - -
44EOF
45 #https://wiki.archlinux.org/title/Users_and_groups#Pre-systemd_groups
46 #use udev uaccess for device permission
47 mkdir -p ${pkgdir}/usr/lib/udev/rules.d/
48 cat <<EOF >${pkgdir}/usr/lib/udev/rules.d/10-xp-pen.rules
49KERNEL=="uinput",SUBSYSTEMS=="misc",MODE="0660",TAG+="uaccess",OPTIONS+="static_node=uinput"
50SUBSYSTEMS=="usb",ATTRS{idVendor}=="28bd",MODE="0660",TAG+="uaccess"
51EOF
52 #Using systemd user service instead of mandatory autostart
53 mkdir -p ${pkgdir}/usr/lib/systemd/user
54 cat <<EOF >$pkgdir/usr/lib/systemd/user/xppentablet.service
55[Unit]
56Description=XPPen Driver
57Requires=xdg-desktop-autostart.target
58After=xdg-desktop-autostart.target
59
60[Service]
61Environment=QT_QPA_PLATFORM=xcb
62# per-user tempdir (/run/user/UID): QtSingleApplication keeps its socket+lockfile here,
63# so parallel logins don't collide on a shared /tmp lockfile (see qtsingleapp-* handling)
64Environment=TMPDIR=%t
65ExecStart=/usr/lib/pentablet/PenTablet.sh /mini
66
67[Install]
68WantedBy=xdg-desktop-autostart.target
69EOF
70}
71
72

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