ca-certificates-icp_br

maintainer rafaelff · 10 votes · scanned 2026-08-03 00:08:14.047287
LOW
View on AUR ↗
Why flagged The package downloads a certificate bundle from an official Brazilian government host for adding trusted CAs;虽非标准域名 but plausibly official, and installs only static certificate files as data, not executable code.

Triggered rules

LOW AI review downgraded a static finding 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 certificate bundle from an official Brazilian government host for adding trusted CAs;虽非标准域名 but plausibly official, and installs only static certificate files as data, not executable code.

1 higher static finding superseded - not the current verdict (shown for transparency)
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:16 source=("$_source.zip::http://acraiz.icpbrasil.gov.br/credenciadas/CertificadosAC-ICP-Brasil/ACcompactado.zip")

PKGBUILD

1 offending line(s) highlighted
1# Maintainer: Rafael Fontenelle <rafaelff@gnome.org>
2# Contributor: Tiago Brait <tiagobrait AT gmail DOT com>
3
4pkgname=ca-certificates-icp_br
5pkgver=20260714
6pkgrel=1
7pkgdesc="Brazilian government Certification Authorities"
8arch=('any')
9url="https://www.gov.br/iti/pt-br/assuntos/repositorio/repositorio-ac-raiz"
10license=('unknown')
11depends=('ca-certificates-utils')
12makedepends=('unzip')
13changelog=CHANGELOG.md
14
15_source="icpbr_certs-${pkgver}-${pkgrel}"
16source=("$_source.zip::http://acraiz.icpbrasil.gov.br/credenciadas/CertificadosAC-ICP-Brasil/ACcompactado.zip")
17noextract=("$_source.zip")
18sha512sums=('68498a13ba6b8b18b7b099db6edaac8c84cce65f2bf74a18bf261750ceae1e2fe7da8c828b03ec848bdf143d79ec8659d4879b6dfc94eb20bf7e4cfc71e3406c')
19 # This checksum must match: http://acraiz.icpbrasil.gov.br/credenciadas/CertificadosAC-ICP-Brasil/hashsha512.txt
20
21prepare() {
22 rm -rf "$_source" && mkdir "$_source"
23 unzip "$_source.zip" -d "$_source"
24}
25
26package() {
27 cd "$_source"
28
29 find * -print0 | while read -d $'\0' cert; do
30 # Edit filenames removing whitespaces and prepending 'icp_br'
31 mv "$cert" "icp_br.${cert//' '/'_'}"
32 done
33 install -d -m0755 "$pkgdir/usr/share/ca-certificates/trust-source/anchors"
34 install -m0644 *.crt "$pkgdir/usr/share/ca-certificates/trust-source/anchors"
35}
36

Changes since previous scan

--- PKGBUILD @ 2026-07-16 00:05
+++ PKGBUILD @ 2026-08-03 00:08
@@ -2,7 +2,7 @@
# Contributor: Tiago Brait <tiagobrait AT gmail DOT com>
pkgname=ca-certificates-icp_br
-pkgver=20260706
+pkgver=20260714
pkgrel=1
pkgdesc="Brazilian government Certification Authorities"
arch=('any')
@@ -15,7 +15,7 @@
_source="icpbr_certs-${pkgver}-${pkgrel}"
source=("$_source.zip::http://acraiz.icpbrasil.gov.br/credenciadas/CertificadosAC-ICP-Brasil/ACcompactado.zip")
noextract=("$_source.zip")
-sha512sums=('d26638955d930a18782683b665ac92447285eb0a4b54eb0665409faafcdab55ed846d9818e98a0c13848fc50538f81f1d0799c71afca40f34d0890ef01885e3d')
+sha512sums=('68498a13ba6b8b18b7b099db6edaac8c84cce65f2bf74a18bf261750ceae1e2fe7da8c828b03ec848bdf143d79ec8659d4879b6dfc94eb20bf7e4cfc71e3406c')
# This checksum must match: http://acraiz.icpbrasil.gov.br/credenciadas/CertificadosAC-ICP-Brasil/hashsha512.txt
prepare() {

Scan history

Scanned at (UTC)SeverityRules
2026-08-03 00:08:14 LOW 2
2026-08-02 00:16:08 LOW 2
2026-08-01 00:11:18 LOW 2
2026-07-31 00:14:10 LOW 2
2026-07-30 00:17:23 LOW 2
2026-07-29 00:25:53 LOW 2
2026-07-28 00:07:28 LOW 2
2026-07-27 00:24:32 LOW 2
2026-07-26 00:07:32 LOW 2
2026-07-25 00:13:44 LOW 2
2026-07-24 00:02:28 LOW 2
2026-07-23 00:14:47 LOW 2
2026-07-22 00:29:32 LOW 2
2026-07-21 00:24:15 LOW 2
2026-07-20 00:19:49 LOW 2
2026-07-19 00:17:08 LOW 2
2026-07-18 00:14:48 LOW 2
2026-07-17 00:06:16 LOW 2
2026-07-16 19:52:44 MEDIUM 1
2026-07-16 00:05:41 LOW 2

Report a package

Reports go to the AURWatch maintainer (one person) and are read by hand. No login required.

0 / 4000
Your suggestion