stm32cubeprog
The source is a legitimate STM32CubeProgrammer installer from STMicroelectronics' official cloudfront domain, used to build the package from the vendor's own release; the non-whitelisted host is a CDN, but the content is a verifiable official tool with a matching checksum.
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 source is a legitimate STM32CubeProgrammer installer from STMicroelectronics' official cloudfront domain, used to build the package from the vendor's own release; the non-whitelisted host is a CDN, but the content is a verifiable official tool with a matching checksum.
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:35
"SetupSTM32CubeProgrammer_linux_64.zip::https://www.st.com/cloudfront/publish/stm32cubeprg-lin-v${pkgver//./-}/${pkgver}/en/SetupSTM32CubeProgrammer_linux_64.zip"
PKGBUILD
1 offending line(s) highlighted# Maintainer: yjun <jerrysteve1101@gmail.com>
# Maintainer: Maik93 <michael.mugnai@gmail.com>
# Maintainer: taotieren <admin@taotieren.com>
# Maintainer: GPereira <goncalo_pereira@outlook.pt>
# Maintainer: CloverGit <clovergit@hotmail.com>
pkgname=stm32cubeprog
pkgver=2.23.0
pkgrel=4
pkgdesc='An all-in-one multi-OS software tool for programming STM32 products.'
arch=('x86_64')
url='https://www.st.com/en/development-tools/stm32cubeprog.html'
license=('custom:SLA0048')
depends=(
'gtk3'
'libglvnd'
)
optdepends=(
'archlinux-java-run: System Java runtime for STM32CubeProgrammer (Wayland)'
'java-openjfx-bin: System JavaFX runtime for STM32CubeProgrammer (Wayland)'
'stlink: udev rules for ST-LINK devices'
)
makedepends=(
'gendesk'
'icoutils'
)
provides=('stm32cubeprogrammer')
options=('!strip' '!debug')
source=(
"SetupSTM32CubeProgrammer_linux_64.zip::https://www.st.com/cloudfront/publish/stm32cubeprg-lin-v${pkgver//./-}/${pkgver}/en/SetupSTM32CubeProgrammer_linux_64.zip"
'SLA0048_STM32CubeProg.pdf'
'STM32CubeProgrammer_Wayland'
)
sha256sums=('6a9e60a5a048c45eb3241f9bb66bdc2e6cbd0119fb2e42568dc059fc6167442a'
'c6d92c00dee63e0f4a54d8ea62f82a646243c3e1480142ae3e7f4ca5d77d5702'
'5a34b8b2345f1ef4dff221d8d529dc1ef78e3c1e1bfb86f35edaf865b2fc5b26')
prepare() {
cd "${srcdir}"
chmod u+x jre/bin/java
gendesk -f -n \
--pkgname "${pkgname}" \
--pkgdesc "${pkgdesc}" \
--path "/opt/${pkgname}/bin" \
--name "STM32CubeProgrammer" \
--exec "/opt/${pkgname}/bin/STM32CubeProgrammer" \
--icon "${pkgname}" \
--categories "Development"
gendesk -f -n \
--pkgname "${pkgname}_wayland" \
--pkgdesc "${pkgdesc}" \
--path "/opt/${pkgname}/bin" \
--name "STM32CubeProgrammer (Wayland)" \
--exec "/opt/${pkgname}/bin/STM32CubeProgrammer_Wayland" \
--icon "${pkgname}" \
--categories "Development"
# STM32CubeMX also bundles a copy of STM32TrustedPackageCreator. However,
# UM2238 identifies it as part of the STM32CubeProgrammer tool set.
# Therefore, this package provides its public command wrappers and desktop entry,
# while the copy bundled with STM32CubeMX remains private to that package.
gendesk -f -n \
--pkgname "${pkgname}-trusted-package-creator" \
--pkgdesc "STM32 Trusted Package Creator" \
--path "/opt/${pkgname}/bin" \
--name "STM32 Trusted Package Creator" \
--exec "/opt/${pkgname}/bin/STM32TrustedPackageCreator" \
--icon "stm32trustedpackagecreator" \
--categories "Development"
}
build() {
cd "${srcdir}"
rm -rf build icon
mkdir -p build icon
./jre/bin/java "-DINSTALL_PATH=${srcdir}/build" -jar "SetupSTM32CubeProgrammer-${pkgver}.exe" -options-system
icotool -x "build/util/Programmer.ico" -o "icon"
icotool -x "build/util/STM32TrustedPackageCreator.ico" -o "icon"
}
package() {
install -dm755 "${pkgdir}/opt/${pkgname}"
cp -a --no-preserve=ownership "${srcdir}/build/." "${pkgdir}/opt/${pkgname}"
# icons
for entry in \
'Programmer:stm32cubeprog' \
'STM32TrustedPackageCreator:stm32trustedpackagecreator'; do
prefix=${entry%%:*}
icon_name=${entry#*:}
for icon_file in "${srcdir}/icon/${prefix}_"*x32.png; do
size=${icon_file##*_}
size=${size%%x*}
install -Dm644 "${icon_file}" \
"${pkgdir}/usr/share/icons/hicolor/${size}x${size}/apps/${icon_name}.png"
done
done
# documentation
install -Dm644 "${pkgdir}/opt/${pkgname}/doc/Readme.txt" -t "${pkgdir}/usr/share/doc/${pkgname}"
install -Dm644 "${pkgdir}/opt/${pkgname}/doc/license.txt" -t "${pkgdir}/usr/share/licenses/${pkgname}"
install -Dm644 "${srcdir}/SLA0048_STM32CubeProg.pdf" -t "${pkgdir}/usr/share/licenses/${pkgname}"
# desktop entries
install -Dm644 "${srcdir}/${pkgname}.desktop" "${pkgdir}/usr/share/applications/${pkgname}.desktop"
install -Dm644 "${srcdir}/${pkgname}_wayland.desktop" \
"${pkgdir}/usr/share/applications/${pkgname}_wayland.desktop"
install -Dm644 "${srcdir}/${pkgname}-trusted-package-creator.desktop" \
"${pkgdir}/usr/share/applications/${pkgname}-trusted-package-creator.desktop"
install -Dm755 "${srcdir}/STM32CubeProgrammer_Wayland" \
"${pkgdir}/opt/${pkgname}/bin/STM32CubeProgrammer_Wayland"
# command wrappers
for entry in \
'stm32cubeprogrammer:STM32CubeProgrammer' \
'stm32cubeprogrammer_wayland:STM32CubeProgrammer_Wayland' \
'stm32_programmer_cli:STM32_Programmer.sh' \
'stm32_keygen_cli:STM32_KeyGen_CLI' \
'stm32_signingtool_cli:STM32_SigningTool_CLI' \
'stm32trustedpackagecreator:STM32TrustedPackageCreator' \
'stm32trustedpackagecreator_cli:STM32TrustedPackageCreator_CLI'; do
wrapper_name=${entry%%:*}
target_name=${entry#*:}
install -Dm755 /dev/stdin "${pkgdir}/usr/bin/${wrapper_name}" <<EOF
#!/bin/sh
exec "/opt/${pkgname}/bin/${target_name}" "\$@"
EOF
done
# remove unused installer components
rm -rf \
"${pkgdir}/opt/${pkgname}/updater" \
"${pkgdir}/opt/${pkgname}/.installationinformation"
}
# vim: set sw=2 ts=2 et:
Changes since previous scan
--- PKGBUILD @ 2026-09-14 00:27+++ PKGBUILD @ 2026-09-17 00:27@@ -6,7 +6,7 @@ pkgname=stm32cubeprog pkgver=2.23.0-pkgrel=3+pkgrel=4 pkgdesc='An all-in-one multi-OS software tool for programming STM32 products.' arch=('x86_64') url='https://www.st.com/en/development-tools/stm32cubeprog.html'@@ -18,6 +18,8 @@ ) optdepends=(+ 'archlinux-java-run: System Java runtime for STM32CubeProgrammer (Wayland)'+ 'java-openjfx-bin: System JavaFX runtime for STM32CubeProgrammer (Wayland)' 'stlink: udev rules for ST-LINK devices' ) @@ -30,12 +32,14 @@ options=('!strip' '!debug') source=(- "SetupSTM32CubeProgrammer_linux_64-${pkgver}.zip::https://www.st.com/cloudfront/publish/stm32cubeprg-lin-v${pkgver//./-}/${pkgver}/en/SetupSTM32CubeProgrammer_linux_64.zip"+ "SetupSTM32CubeProgrammer_linux_64.zip::https://www.st.com/cloudfront/publish/stm32cubeprg-lin-v${pkgver//./-}/${pkgver}/en/SetupSTM32CubeProgrammer_linux_64.zip" 'SLA0048_STM32CubeProg.pdf'+ 'STM32CubeProgrammer_Wayland' ) sha256sums=('6a9e60a5a048c45eb3241f9bb66bdc2e6cbd0119fb2e42568dc059fc6167442a'- 'c6d92c00dee63e0f4a54d8ea62f82a646243c3e1480142ae3e7f4ca5d77d5702')+ 'c6d92c00dee63e0f4a54d8ea62f82a646243c3e1480142ae3e7f4ca5d77d5702'+ '5a34b8b2345f1ef4dff221d8d529dc1ef78e3c1e1bfb86f35edaf865b2fc5b26') prepare() { cd "${srcdir}"@@ -48,6 +52,15 @@ --path "/opt/${pkgname}/bin" \ --name "STM32CubeProgrammer" \ --exec "/opt/${pkgname}/bin/STM32CubeProgrammer" \+ --icon "${pkgname}" \+ --categories "Development"++ gendesk -f -n \+ --pkgname "${pkgname}_wayland" \+ --pkgdesc "${pkgdesc}" \+ --path "/opt/${pkgname}/bin" \+ --name "STM32CubeProgrammer (Wayland)" \+ --exec "/opt/${pkgname}/bin/STM32CubeProgrammer_Wayland" \ --icon "${pkgname}" \ --categories "Development" @@ -104,12 +117,18 @@ # desktop entries install -Dm644 "${srcdir}/${pkgname}.desktop" "${pkgdir}/usr/share/applications/${pkgname}.desktop"+ install -Dm644 "${srcdir}/${pkgname}_wayland.desktop" \+ "${pkgdir}/usr/share/applications/${pkgname}_wayland.desktop" install -Dm644 "${srcdir}/${pkgname}-trusted-package-creator.desktop" \ "${pkgdir}/usr/share/applications/${pkgname}-trusted-package-creator.desktop"++ install -Dm755 "${srcdir}/STM32CubeProgrammer_Wayland" \+ "${pkgdir}/opt/${pkgname}/bin/STM32CubeProgrammer_Wayland" # command wrappers for entry in \ 'stm32cubeprogrammer:STM32CubeProgrammer' \+ 'stm32cubeprogrammer_wayland:STM32CubeProgrammer_Wayland' \ 'stm32_programmer_cli:STM32_Programmer.sh' \ 'stm32_keygen_cli:STM32_KeyGen_CLI' \ 'stm32_signingtool_cli:STM32_SigningTool_CLI' \Scan history
| Scanned at (UTC) | Severity | Rules |
|---|---|---|
| 2026-09-17 00:27:14 | Low | 2 |
| 2026-09-16 00:03:17 | Low | 2 |
| 2026-09-15 00:25:31 | Low | 2 |
| 2026-09-14 13:17:35 | Medium | 1 |
| 2026-09-14 00:27:57 | Low | 2 |
| 2026-09-13 00:19:54 | Low | 2 |
| 2026-09-12 00:25:17 | Low | 2 |
| 2026-09-11 00:19:22 | Low | 2 |
| 2026-09-10 00:22:44 | Low | 2 |
| 2026-09-09 00:04:09 | Low | 2 |
| 2026-09-08 00:18:08 | Low | 2 |
| 2026-09-07 00:30:15 | Low | 2 |
| 2026-09-06 00:17:06 | Low | 2 |
| 2026-09-05 00:16:27 | Low | 2 |
| 2026-09-04 00:03:13 | Low | 2 |
| 2026-09-03 00:15:47 | Low | 2 |
| 2026-09-02 00:02:31 | Low | 2 |
| 2026-09-01 00:11:19 | Low | 2 |
| 2026-08-31 00:19:57 | Low | 2 |
| 2026-08-30 00:04:14 | Low | 2 |