Compare commits

..

12 Commits

Author SHA1 Message Date
Stéphane Lesimple fd7caec415 Merge remote-tracking branch 'origin/source-build' 2026-06-02 18:17:06 +02:00
github-actions[bot] 68116d87fd update: fwdb from v349+i20260227+615b to v349+i20260512+1cce, 19 microcode changes
built from commit 645a79846b
 dated 2026-06-01 20:56:45 +0000
 by github-actions[bot] (41898282+github-actions[bot]@users.noreply.github.com)
2026-06-01 20:58:15 +00:00
github-actions[bot] c060a2d2c9 Merge pull request #571 from speed47/test
built from commit 0045d237fa
 dated 2026-06-01 20:44:44 +0000
 by Stéphane Lesimple (speed47_github@speed47.net)

 Prepare next release
2026-06-01 20:46:12 +00:00
github-actions[bot] fe0d3f49f4 Merge pull request #566 from speed47/test
built from commit 3e2b6cc734
 dated 2026-04-20 11:02:38 +0000
 by Stéphane Lesimple (speed47_github@speed47.net)

 Prepare release v26.33.0420xxx
2026-04-20 11:04:05 +00:00
Stéphane Lesimple 73b67b4a80 Merge branch 'master' into source-build 2026-04-04 16:25:35 +00:00
github-actions[bot] ea6b8efd18 fix: add rebleet to --variant
built from commit 7a7408d124
 dated 2026-04-04 18:17:35 +0200
 by Stéphane Lesimple (speed47_github@speed47.net)
2026-04-04 16:23:18 +00:00
github-actions[bot] 24d92540a7 enh: add known fixed ucode versions for CVE-2023-23583 (Reptar) and CVE-2024-45332 (BPI)
built from commit cccb3c0081
 dated 2026-04-04 17:50:04 +0200
 by Stéphane Lesimple (speed47_github@speed47.net)
2026-04-04 16:08:25 +00:00
github-actions[bot] 553a9ec60f Merge pull request #532 from speed47/test
built from commit 6fac2d8ff1
 dated 2026-04-02 21:32:39 +0000
 by Stéphane Lesimple (speed47_github@speed47.net)

 Retbleed / Downfall overhald / doc updates
2026-04-02 21:33:46 +00:00
Stéphane Lesimple 75ad60f42a Merge branch 'master' into source-build 2026-04-02 16:53:03 +00:00
github-actions[bot] 931c955765 Merge pull request #530 from speed47/test
built from commit d3c0f1a24d
 dated 2026-04-02 16:49:41 +0000
 by Stéphane Lesimple (speed47_github@speed47.net)

 chore: workflows revamp
2026-04-02 16:50:52 +00:00
github-actions[bot] c5ef0c488a Merge branch 'test' into source
built from commit 952fe6a87f
 dated 2026-04-02 18:40:05 +0200
 by Stéphane Lesimple (speed47_github@speed47.net)
2026-04-02 16:41:33 +00:00
github-actions[bot] 99301d1cbb chore: add stalebot in dryrun
built from commit afadf53f7f
 dated 2026-04-02 13:13:19 +0200
 by Stéphane Lesimple (speed47_github@speed47.net)
2026-04-02 13:33:36 +02:00
4 changed files with 18 additions and 34 deletions
+1 -1
View File
@@ -13,7 +13,7 @@ jobs:
autoupdate: autoupdate:
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- uses: actions/checkout@v6 - uses: actions/checkout@v5
with: with:
ref: source ref: source
- name: Install prerequisites - name: Install prerequisites
+1 -4
View File
@@ -8,7 +8,7 @@ on:
action: action:
description: "dry-run" description: "dry-run"
required: true required: true
default: "apply" default: "dryrun"
type: choice type: choice
options: options:
- dryrun - dryrun
@@ -30,7 +30,4 @@ jobs:
days-before-close: 7 days-before-close: 7
stale-issue-label: stale stale-issue-label: stale
remove-stale-when-updated: true remove-stale-when-updated: true
close-issue-reason: completed
stale-issue-message: "If there are no further comments or activity on this issue, it'll be closed automatically in 7 days."
close-issue-message: "Automatically closing this issue due to inactivity, don't hesitate to open a new issue if needed."
debug-only: ${{ case(inputs.action == 'dryrun', true, false) }} debug-only: ${{ case(inputs.action == 'dryrun', true, false) }}
+7 -7
View File
@@ -45,14 +45,14 @@ jobs:
# workflow file itself MUST stay on the default branch, as GitHub only # workflow file itself MUST stay on the default branch, as GitHub only
# honors `schedule:` triggers on the default branch. # honors `schedule:` triggers on the default branch.
- name: Checkout vuln-watch branch (scripts + prompt) - name: Checkout vuln-watch branch (scripts + prompt)
uses: actions/checkout@v6 uses: actions/checkout@v5
with: with:
ref: vuln-watch ref: vuln-watch
fetch-depth: 1 fetch-depth: 1
persist-credentials: false persist-credentials: false
- name: Set up Python - name: Set up Python
uses: actions/setup-python@v6 uses: actions/setup-python@v5
with: with:
python-version: '3.12' python-version: '3.12'
@@ -84,7 +84,7 @@ jobs:
- name: Download previous state artifact - name: Download previous state artifact
if: steps.prev.outputs.run_id != '' if: steps.prev.outputs.run_id != ''
uses: actions/download-artifact@v8 uses: actions/download-artifact@v5
continue-on-error: true # tolerate retention expiry continue-on-error: true # tolerate retention expiry
with: with:
name: vuln-watch-state name: vuln-watch-state
@@ -115,7 +115,7 @@ jobs:
# implemented?". Only fetched on days with something to classify. # implemented?". Only fetched on days with something to classify.
- name: Checkout checker code (test branch) for coverage grep - name: Checkout checker code (test branch) for coverage grep
if: steps.diff.outputs.new_count != '0' || steps.diff.outputs.reconsider_count != '0' if: steps.diff.outputs.new_count != '0' || steps.diff.outputs.reconsider_count != '0'
uses: actions/checkout@v6 uses: actions/checkout@v5
with: with:
ref: test ref: test
path: checker path: checker
@@ -150,7 +150,7 @@ jobs:
- name: Upload Claude execution log - name: Upload Claude execution log
if: ${{ always() && steps.classify.outputs.execution_file != '' }} if: ${{ always() && steps.classify.outputs.execution_file != '' }}
uses: actions/upload-artifact@v7 uses: actions/upload-artifact@v5
with: with:
name: claude-execution-log-${{ github.run_id }} name: claude-execution-log-${{ github.run_id }}
path: ${{ steps.classify.outputs.execution_file }} path: ${{ steps.classify.outputs.execution_file }}
@@ -168,7 +168,7 @@ jobs:
- name: Upload new state artifact - name: Upload new state artifact
if: always() if: always()
uses: actions/upload-artifact@v7 uses: actions/upload-artifact@v5
with: with:
name: vuln-watch-state name: vuln-watch-state
path: state/seen.json path: state/seen.json
@@ -177,7 +177,7 @@ jobs:
- name: Upload daily report - name: Upload daily report
if: always() if: always()
uses: actions/upload-artifact@v7 uses: actions/upload-artifact@v5
with: with:
name: vuln-watch-report-${{ github.run_id }} name: vuln-watch-report-${{ github.run_id }}
path: | path: |
+9 -22
View File
@@ -13,7 +13,7 @@
# #
# Stephane Lesimple # Stephane Lesimple
# #
VERSION='26.36.0602723' VERSION='26.36.0601873'
# --- Common paths and basedirs --- # --- Common paths and basedirs ---
readonly VULN_SYSFS_BASE="/sys/devices/system/cpu/vulnerabilities" readonly VULN_SYSFS_BASE="/sys/devices/system/cpu/vulnerabilities"
@@ -3936,18 +3936,11 @@ parse_cpu_details() {
# cpu_variant_list and cpu_revision_list are consumed by ARM64 errata affection checks # cpu_variant_list and cpu_revision_list are consumed by ARM64 errata affection checks
# that need to match a specific revision range. # that need to match a specific revision range.
if grep -q 'CPU implementer' "$g_procfs/cpuinfo"; then if grep -q 'CPU implementer' "$g_procfs/cpuinfo"; then
# keep these single-line (space-separated) so consumers and outputs (JSON, prometheus) cpu_impl_list=$(awk '/CPU implementer/ {print $4}' "$g_procfs/cpuinfo")
# don't end up with embedded newlines; per-core order is preserved for the errata checks cpu_part_list=$(awk '/CPU part/ {print $4}' "$g_procfs/cpuinfo")
cpu_impl_list=$(awk '/CPU implementer/ {print $4}' "$g_procfs/cpuinfo" | tr '\n' ' ') cpu_arch_list=$(awk '/CPU architecture/ {print $3}' "$g_procfs/cpuinfo")
cpu_impl_list=${cpu_impl_list% } cpu_variant_list=$(awk '/CPU variant/ {print $4}' "$g_procfs/cpuinfo")
cpu_part_list=$(awk '/CPU part/ {print $4}' "$g_procfs/cpuinfo" | tr '\n' ' ') cpu_revision_list=$(awk '/CPU revision/ {print $4}' "$g_procfs/cpuinfo")
cpu_part_list=${cpu_part_list% }
cpu_arch_list=$(awk '/CPU architecture/ {print $3}' "$g_procfs/cpuinfo" | tr '\n' ' ')
cpu_arch_list=${cpu_arch_list% }
cpu_variant_list=$(awk '/CPU variant/ {print $4}' "$g_procfs/cpuinfo" | tr '\n' ' ')
cpu_variant_list=${cpu_variant_list% }
cpu_revision_list=$(awk '/CPU revision/ {print $4}' "$g_procfs/cpuinfo" | tr '\n' ' ')
cpu_revision_list=${cpu_revision_list% }
fi fi
# Map first-seen implementer to cpu_vendor; note that heterogeneous systems # Map first-seen implementer to cpu_vendor; note that heterogeneous systems
# (e.g. DynamIQ with ARM+Kryo cores) would all map to one vendor here, but # (e.g. DynamIQ with ARM+Kryo cores) would all map to one vendor here, but
@@ -5058,12 +5051,6 @@ check_kernel_info() {
fi fi
} }
# Collapse a whitespace-separated list to its unique values, preserving first-seen order.
# Used to prettify the per-core ARM lists for display (e.g. "0x41 0x41 0x41 0x41" -> "0x41").
_uniq_list() {
echo "$1" | awk '{ for (i = 1; i <= NF; i++) if (!seen[$i]++) printf "%s%s", (n++ ? " " : ""), $i }'
}
# Display hardware-level CPU mitigation support (microcode features, ARCH_CAPABILITIES, etc.) # Display hardware-level CPU mitigation support (microcode features, ARCH_CAPABILITIES, etc.)
check_cpu() { check_cpu() {
local capabilities ret spec_ctrl_msr codename ucode_str local capabilities ret spec_ctrl_msr codename ucode_str
@@ -5073,13 +5060,13 @@ check_cpu() {
pr_info " * Vendor: $cpu_vendor" pr_info " * Vendor: $cpu_vendor"
pr_info " * Model name: $cpu_friendly_name" pr_info " * Model name: $cpu_friendly_name"
if [ -n "${cpu_impl_list:-}" ]; then if [ -n "${cpu_impl_list:-}" ]; then
pr_info " * Implementer(s): $(_uniq_list "$cpu_impl_list")" pr_info " * Implementer(s): $cpu_impl_list"
fi fi
if [ -n "${cpu_part_list:-}" ]; then if [ -n "${cpu_part_list:-}" ]; then
pr_info " * Part(s): $(_uniq_list "$cpu_part_list")" pr_info " * Part(s): $cpu_part_list"
fi fi
if [ -n "${cpu_arch_list:-}" ]; then if [ -n "${cpu_arch_list:-}" ]; then
pr_info " * Architecture(s): $(_uniq_list "$cpu_arch_list")" pr_info " * Architecture(s): $cpu_arch_list"
fi fi
if has_runtime; then if has_runtime; then
pr_info_nol " * Running as VM guest: " pr_info_nol " * Running as VM guest: "