sw4stm32
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:15
"http://www.ac6-tools.com/downloads/SW4STM32/install_sw4stm32_linux_64bits-v$pkgver.run"
llm_review
An AI model (anthropic/claude-4.6-sonnet-20260217) reviewed this and agrees it is MEDIUM (confidence 82%): The PKGBUILD downloads a prebuilt .run installer from ac6-tools.com (the official AC6/Ac6 vendor site for System Workbench for STM32, which is a legitimate embedded IDE vendor) and executes it via 'java -jar'. The checksum is SKIP'd, meaning there is no integrity verification of the downloaded binary. While ac6-tools.com is the actual upstream vendor host for this tool (not a random personal host), the SKIP checksum means any MITM or server-side substitution would go undetected. The .run file is executed directly during the package() phase, giving it full access to the build environment. This is a real supply-chain concern: an executed binary installer with no integrity check, even from a nominally legitimate vendor. The medium rating is appropriate — it's not clearly malicious, but the lack of checksum on an executed binary is a genuine risk.
PKGBUILD
1 offending line(s) highlighted# Maintainer: robertfoster
# Contributor: Marcin Kornat <rarvolt@rarvolt.net>
# Contributor: Romain Porte <microjoe@microjoe.org>
pkgname=sw4stm32
pkgver=2.9
pkgrel=1
pkgdesc="SystemWorkbench for STM32"
arch=('x86_64')
url="http://www.openstm32.org/System+Workbench+for+STM32"
license=('CUSTOM')
depends=("java-environment=8")
options=(!emptydirs !strip)
source=(
"http://www.ac6-tools.com/downloads/SW4STM32/install_sw4stm32_linux_64bits-v$pkgver.run"
$pkgname
$pkgname.png
$pkgname.desktop
auto-install.xml)
noextract=(install_sw4stm32_linux_64bits-v$pkgver.run)
optdepends=('arm-none-eabi-gcc: ARM compiler'
'arm-none-eabi-gdb: ARM GDB'
'arm-none-eabi-newlib: ARM bare metal files'
'arm-none-eabi-binutils: ARM binutils'
'openocd: firmware flashing tool')
package() {
HOME="$pkgdir/usr/lib/sw4stm32"
sed "s|@HOME@|$HOME|g" auto-install.xml >unattended.xml
cd $srcdir
chmod +x install_sw4stm32_linux_64bits-v$pkgver.run
java -jar install_sw4stm32_linux_64bits-v$pkgver.run unattended.xml
# Copy icon and desktop
install -Dm644 "sw4stm32.png" "${pkgdir}/usr/share/pixmaps/sw4stm32.png"
install -Dm644 "sw4stm32.desktop" "${pkgdir}/usr/share/applications/sw4stm32.desktop"
# Copy bash executable to path
install -Dm755 sw4stm32 "$pkgdir/usr/bin/sw4stm32"
# Copy udev rule manually
#for i in $(seq 1 3); do
# install -Dm644 "$HOME/.installation/49-stlinkv$i.rules" \
# "$pkgdir/etc/udev/rules.d/49-stlinkv$i.rules"
#done
# Extracting arm cross-compiler
CROSSPATH="$HOME/plugins/fr.ac6.mcu.externaltools.arm-none.linux64_1.17.0.201812190825/tools/st-gnu-arm-gcc-7-2018-q2-update_gdb-5_4-2016q3-linux.tar.bz2"
CROSSDEST=$(dirname $CROSSPATH)
tar -xf $CROSSPATH -C $(dirname $CROSSPATH)
rm $CROSSPATH
chmod 755 -R $CROSSDEST
# Clean the fakeroot
rm -rf $HOME/{.installation,stlinkserver/st-stlink*,.desktop_shortcut.sh,uninstall.jar}
# Change configuration folder
echo "-Dosgi.configuration.area=@user.home/.sw4stm32" >>$HOME/eclipse.bin.ini
}
sha256sums=('SKIP'
'b2fe312a41c77ab68bcbc0287998a32c66a72ca3a479d21e1ce563b05be9f781'
'91b0300e815029c7f3fbb9ba5641804a140623865c21cfa703451697fd877076'
'df786691de3e76d0ae66a74727ba3022c2bce76e8cfcb651418a1ae9e233c919'
'f421475096cd4e1191b19c59f183776874379d7b73c8a399996c7a8a130d32f8')
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 |