curseforge-appimage
The package downloads a prebuilt AppImage from curseforge.overwolf.com, which is the official distribution domain for the CurseForge client; while the host is not a standard code forge, it is a legitimate and expected source for this software, and the AppImage is not executed during build but repackaged, posing minimal risk.
Triggered rules
llm_review
The static rules flagged this MEDIUM, but an AI model (qwen/qwen3-235b-a22b-2507) reviewed the full PKGBUILD and judged it LOW (confidence 95%): The package downloads a prebuilt AppImage from curseforge.overwolf.com, which is the official distribution domain for the CurseForge client; while the host is not a standard code forge, it is a legitimate and expected source for this software, and the AppImage is not executed during build but repackaged, posing minimal risk.
1 higher static finding superseded - not the current verdict (shown for transparency)
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:24
"CurseForge-${pkgver/_/-}.AppImage::https://curseforge.overwolf.com/electron/linux/CurseForge-${pkgver/_/-}.AppImage"
PKGBUILD
1 offending line(s) highlighted# Maintainer: txtsd <aur.archlinux@ihavea.quest>
# Contributor: Csubee <csubee@csubee.hu>
# Contributor: Neptune <neptune650@proton.me>
# Contributor: Polarian <polarian@polarian.dev>
# Contributor: Saghm Rossi <aur@saghm.com>
pkgname=curseforge-appimage
pkgver=1.324.0_41180
pkgrel=1
pkgdesc="CurseForge desktop client for Linux (AppImage)"
arch=('x86_64')
depends=(
fuse2
glibc
hicolor-icon-theme
zlib
)
url="https://curseforge.com"
license=('LicenseRef-overwolf' 'MIT' 'LicenseRef-chromium-licenses')
provides=(curseforge)
conflicts=(curseforge)
options=(!strip !debug)
source=(
"CurseForge-${pkgver/_/-}.AppImage::https://curseforge.overwolf.com/electron/linux/CurseForge-${pkgver/_/-}.AppImage"
'LICENSE'
)
sha256sums=('728e04c70ecd9b9ee6f66d68c8543d872a67ba56551477ceea2a29a77a563c3f'
'135c7ffeb81f4a7ee95a5879651b679e0d1ef9d13c7aa7c262386ad97b48d62f')
prepare() {
# mv CurseForge-*.AppImage CurseForge.AppImage
chmod +x "CurseForge-${pkgver/_/-}.AppImage"
./CurseForge-${pkgver/_/-}.AppImage --appimage-extract > /dev/null
sed -i 's/Exec=.*/Exec=\/usr\/bin\/curseforge %U/' squashfs-root/curseforge.desktop
}
package() {
install -Dm755 "CurseForge-${pkgver/_/-}.AppImage" "${pkgdir}/opt/${pkgname}/CurseForge-${pkgver/_/-}.AppImage"
install -dm755 "${pkgdir}/usr/bin"
ln -s "/opt/${pkgname}/CurseForge-${pkgver/_/-}.AppImage" "${pkgdir}/usr/bin/curseforge"
install -dm755 "${pkgdir}/usr/share/icons"
cp -r --no-preserve=mode,ownership "squashfs-root/usr/share/icons" "${pkgdir}/usr/share"
install -Dm644 "squashfs-root/curseforge.desktop" -t "${pkgdir}/usr/share/applications"
install -Dm644 "LICENSE" "${pkgdir}/usr/share/licenses/${pkgname}/CURSEFORGE-LICENSE"
install -Dm644 "squashfs-root/LICENSE.electron.txt" -t "${pkgdir}/usr/share/licenses/${pkgname}"
install -Dm644 "squashfs-root/LICENSES.chromium.html" -t "${pkgdir}/usr/share/licenses/${pkgname}"
}
Changes since previous scan
--- PKGBUILD @ 2026-10-26 00:12+++ PKGBUILD @ 2026-11-01 00:21@@ -5,7 +5,7 @@ # Contributor: Saghm Rossi <aur@saghm.com> pkgname=curseforge-appimage-pkgver=1.323.0_40840+pkgver=1.324.0_41180 pkgrel=1 pkgdesc="CurseForge desktop client for Linux (AppImage)" arch=('x86_64')@@ -24,7 +24,7 @@ "CurseForge-${pkgver/_/-}.AppImage::https://curseforge.overwolf.com/electron/linux/CurseForge-${pkgver/_/-}.AppImage" 'LICENSE' )-sha256sums=('836abdf550ee8b1d6d24cc8216a133d21fd187e7e54daa332db2e63beecae0f0'+sha256sums=('728e04c70ecd9b9ee6f66d68c8543d872a67ba56551477ceea2a29a77a563c3f' '135c7ffeb81f4a7ee95a5879651b679e0d1ef9d13c7aa7c262386ad97b48d62f') prepare() {Scan history
| Scanned at (UTC) | Severity | Rules |
|---|---|---|
| 2026-11-01 00:21:48 | Low | 2 |
| 2026-10-31 00:07:41 | Low | 2 |
| 2026-10-30 00:29:30 | Low | 2 |
| 2026-10-29 00:13:55 | Low | 2 |
| 2026-10-28 00:06:54 | Low | 2 |
| 2026-10-27 00:23:28 | Low | 2 |
| 2026-10-26 11:44:54 | Medium | 1 |
| 2026-10-26 00:12:40 | Low | 2 |
| 2026-10-25 00:20:48 | Low | 2 |
| 2026-10-24 00:14:55 | Low | 2 |
| 2026-10-23 00:02:19 | Low | 2 |
| 2026-10-22 00:13:10 | Low | 2 |
| 2026-10-21 00:12:50 | Low | 2 |
| 2026-10-20 00:10:31 | Low | 2 |
| 2026-10-19 23:26:39 | Medium | 1 |
| 2026-10-19 00:03:55 | Low | 2 |
| 2026-10-18 00:06:55 | Low | 2 |
| 2026-10-17 00:21:55 | Low | 2 |
| 2026-10-16 00:12:47 | Low | 2 |
| 2026-10-15 00:28:05 | Low | 2 |