bootstrap-studio
The package downloads a prebuilt AppImage executable from a non-whitelisted host (releases.bootstrapstudio.io), which is not a standard trusted source, creating a supply-chain risk if the host is compromised or spoofed.
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:28
source=("${pkgname}-${pkgver}.AppImage::https://releases.bootstrapstudio.io/${pkgver}/Bootstrap%20Studio.AppImage")
llm_review
An AI model (qwen/qwen3-235b-a22b-2507) reviewed this and agrees it is MEDIUM (confidence 90%): The package downloads a prebuilt AppImage executable from a non-whitelisted host (releases.bootstrapstudio.io), which is not a standard trusted source, creating a supply-chain risk if the host is compromised or spoofed.
PKGBUILD
1 offending line(s) highlighted# Maintainer: nathawat <nathawat at noreply dot codeberg dot org>
# Contributor: Mohamed tarek <Mokhamed_tarek@mail.ru>
# Contributor: rotzelbart <tausendkubik@gmail.com>
# Contributor: TechVio <68242352+techvio1@users.noreply.github.com>
# Contributor: chn <g897331845@gmail.com>
# Contributor: Hunter Wittenborn <git@hunterwittenborn.me>
# Contributor: Alfin Bakhtiar Ilhami <alfin at nuclea dot id>
# Contributor: Jan-Tarek Butt <tarek at ring0 dot de>
pkgname=bootstrap-studio
pkgver=9.0.1
pkgrel=1
pkgdesc="A powerful desktop application that helps you design and publish beautiful websites"
arch=("x86_64")
license=('LicenseRef-custom')
url="https://bootstrapstudio.io/"
depends=(
'alsa-lib'
'gtk3'
'libcups'
'nss'
)
optdepends=(
'xdg-utils: Open URLs and browser previews'
)
options=('!strip')
source=("${pkgname}-${pkgver}.AppImage::https://releases.bootstrapstudio.io/${pkgver}/Bootstrap%20Studio.AppImage")
b2sums=('f3352e998419339159a5f0a127e33f4945de523b01c1531a6cebfbeae0085453508a830076c849e9d1da4a39e35e64a479c7a8f514fdffc8e50f22780cced742')
prepare() {
chmod +x "${pkgname}-${pkgver}.AppImage"
./"${pkgname}-${pkgver}.AppImage" --appimage-extract &> /dev/null
sed -i 's|^Exec=.*|Exec=bootstrap-studio %U|' squashfs-root/bstudio.desktop
}
package() {
# Application files
install -d "${pkgdir}/opt/${pkgname}"
cp -Lr "${srcdir}/squashfs-root" "${pkgdir}/opt/${pkgname}"
find "${pkgdir}/opt/${pkgname}" -type d -exec chmod 755 {} +
# Launcher
install -d "${pkgdir}/usr/bin"
cat > "${pkgdir}/usr/bin/${pkgname}" << EOF
#!/bin/sh
exec /opt/${pkgname}/squashfs-root/AppRun "\$@"
EOF
chmod 755 "${pkgdir}/usr/bin/${pkgname}"
# Desktop entry & icons
install -Dm644 "${srcdir}/squashfs-root/bstudio.desktop" \
"${pkgdir}/usr/share/applications/bstudio.desktop"
cp -r "${srcdir}/squashfs-root/usr/share/icons" "${pkgdir}/usr/share/"
# Licenses
install -Dm644 "${srcdir}/squashfs-root/LICENSE.electron.txt" \
"${pkgdir}/usr/share/licenses/${pkgname}/LICENSE.electron.txt"
install -Dm644 "${srcdir}/squashfs-root/LICENSES.chromium.html" \
"${pkgdir}/usr/share/licenses/${pkgname}/LICENSES.chromium.html"
}
Changes since previous scan
--- PKGBUILD @ 2026-10-25 00:20+++ PKGBUILD @ 2026-11-01 00:21@@ -8,60 +8,55 @@ # Contributor: Jan-Tarek Butt <tarek at ring0 dot de> pkgname=bootstrap-studio-pkgver=8.0.1+pkgver=9.0.1 pkgrel=1-pkgdesc="Bootstrap Studio is a powerful tool which web developers and designers use to create layouts and fully functional websites using the Bootstrap framework."+pkgdesc="A powerful desktop application that helps you design and publish beautiful websites" arch=("x86_64")-license=("custom")+license=('LicenseRef-custom') url="https://bootstrapstudio.io/" depends=(- 'alsa-lib'- 'gtk3'- 'libcups'- 'nss'+ 'alsa-lib'+ 'gtk3'+ 'libcups'+ 'nss' )+optdepends=(+ 'xdg-utils: Open URLs and browser previews'+)+options=('!strip') -source=("https://releases.bootstrapstudio.io/${pkgver}/Bootstrap%20Studio.AppImage"- "bstudio.desktop")-b2sums=('c7dd0e6493fb6317cf4f6da7f2bd83a0e13de4de44a9f8a2455521de07240a8b86512a6ccfbbc0799ff17c09753502b16a9aaefc34ecefee91874775e448a814'- '6588d6c99396a05eafa74ca0e4d0c1113ff927f0fc6afc6cf549bf251b1f03a742d0a39d5e1b8bffd0052b49196357daafef371c1ebd49efc16ef353ab3d9daa')+source=("${pkgname}-${pkgver}.AppImage::https://releases.bootstrapstudio.io/${pkgver}/Bootstrap%20Studio.AppImage")+b2sums=('f3352e998419339159a5f0a127e33f4945de523b01c1531a6cebfbeae0085453508a830076c849e9d1da4a39e35e64a479c7a8f514fdffc8e50f22780cced742')+ prepare() {- # Extract AppImage- echo "Extracting AppImage..."- mv "Bootstrap%20Studio.AppImage" "Bootstrap Studio.AppImage"- chmod +x "Bootstrap Studio.AppImage"- ./"Bootstrap Studio.AppImage" --appimage-extract &> /dev/null+ chmod +x "${pkgname}-${pkgver}.AppImage"+ ./"${pkgname}-${pkgver}.AppImage" --appimage-extract &> /dev/null+ sed -i 's|^Exec=.*|Exec=bootstrap-studio %U|' squashfs-root/bstudio.desktop } package() {- # Copy package files- echo "Copying package files..."- mkdir -p "${pkgdir}/opt/${pkgname}"- cp -Lr "${srcdir}/squashfs-root" "${pkgdir}/opt/${pkgname}"+ # Application files+ install -d "${pkgdir}/opt/${pkgname}"+ cp -Lr "${srcdir}/squashfs-root" "${pkgdir}/opt/${pkgname}"+ find "${pkgdir}/opt/${pkgname}" -type d -exec chmod 755 {} + - # Set permissions- chmod a+rx "${pkgdir}/opt/${pkgname}/" -R+ # Launcher+ install -d "${pkgdir}/usr/bin"+ cat > "${pkgdir}/usr/bin/${pkgname}" << EOF+#!/bin/sh+exec /opt/${pkgname}/squashfs-root/AppRun "\$@"+EOF+ chmod 755 "${pkgdir}/usr/bin/${pkgname}" - # Create launcher script- mkdir -p "${pkgdir}/usr/bin"- cat > "${pkgdir}/usr/bin/${pkgname}" << EOF-#!/bin/bash-if [ \$# -eq 0 ]; then- /opt/${pkgname}/squashfs-root/AppRun-else- /opt/${pkgname}/squashfs-root/AppRun "\$@"-fi-EOF- chmod +x "${pkgdir}/usr/bin/${pkgname}"+ # Desktop entry & icons+ install -Dm644 "${srcdir}/squashfs-root/bstudio.desktop" \+ "${pkgdir}/usr/share/applications/bstudio.desktop"+ cp -r "${srcdir}/squashfs-root/usr/share/icons" "${pkgdir}/usr/share/" - # Copy .desktop file- mkdir -p "${pkgdir}/usr/share/applications"- cp -Lr "${srcdir}/bstudio.desktop" "${pkgdir}/usr/share/applications/"-- # Copy icons- mkdir -p "${pkgdir}/usr/share/icons/hicolor/"{128x128,192x192,256x256,512x512}"/apps/"- for i in 128x128 192x192 256x256 512x512; do- cp -Lr "${srcdir}/squashfs-root/usr/share/icons/hicolor/0x0/apps/bstudio.png" "${pkgdir}/usr/share/icons/hicolor/${i}/apps/"- done+ # Licenses+ install -Dm644 "${srcdir}/squashfs-root/LICENSE.electron.txt" \+ "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE.electron.txt"+ install -Dm644 "${srcdir}/squashfs-root/LICENSES.chromium.html" \+ "${pkgdir}/usr/share/licenses/${pkgname}/LICENSES.chromium.html" } Scan history
| Scanned at (UTC) | Severity | Rules |
|---|---|---|
| 2026-11-01 00:21:48 | Medium | 2 |
| 2026-10-31 00:07:41 | Medium | 2 |
| 2026-10-30 00:29:30 | Medium | 2 |
| 2026-10-29 00:13:55 | Medium | 2 |
| 2026-10-28 00:06:54 | Medium | 2 |
| 2026-10-27 00:23:28 | Medium | 2 |
| 2026-10-26 00:12:40 | Medium | 2 |
| 2026-10-25 03:41:34 | Medium | 2 |
| 2026-10-25 00:20:48 | Medium | 2 |
| 2026-10-24 00:14:55 | Medium | 2 |
| 2026-10-23 00:02:19 | Medium | 2 |
| 2026-10-22 00:13:10 | Medium | 2 |
| 2026-10-21 00:12:50 | Medium | 2 |
| 2026-10-20 00:10:31 | Medium | 2 |
| 2026-10-19 00:03:55 | Medium | 2 |
| 2026-10-18 00:06:55 | Medium | 2 |
| 2026-10-17 00:21:55 | Medium | 2 |
| 2026-10-16 00:12:47 | Medium | 2 |
| 2026-10-15 00:28:05 | Medium | 2 |
| 2026-10-14 00:06:47 | Medium | 2 |