Skip to content

chore(security): reduce AppSec scanner Bedrock cost - #5

Merged
abir-vim merged 2 commits into
mainfrom
chore/appsec-cost-controls
Oct 8, 2026
Merged

abir-vim merged 2 commits into
mainfrom
chore/appsec-cost-controls

Conversation

@abir-vim

@abir-vim abir-vim commented Oct 8, 2026

Copy link
Copy Markdown
Collaborator

Automated fleet sync of the Vim AppSec Agent. Scans when review starts instead of after every push, skips high-volume deployment/publish bots, supports the centrally configured Sonnet 5 profile, and avoids retrying permanent Bedrock failures. The fail-closed high-severity gate and PR findings comments remain enabled. See scanner-org for the source template.

@github-actions

github-actions Bot commented Oct 8, 2026 •

Copy link
Copy Markdown

Vim AppSec Agent

Blocked — 1 finding(s) at/above high.

Critical High Medium Low Info Dep BLOCK Dep WARN
0 1 0 1 2 0 0

Findings

High (1)

New 'labeled' trigger lets an arbitrary label skip the scan job and clear a prior failing gate

  • Where: .github/workflows/security.yml:13
  • CWE: CWE-863
  • Remediation: Do not let a non-rescan 'labeled' event skip the required check job. Either (a) remove 'labeled' from trigger types and drive rescans another way, or (b) keep the trigger but make the job always emit a real, non-skipped conclusion for the required check context on a labeled event — e.g. have the gate job run unconditionally and, when action=='labeled' && label!='appsec-rescan', re-evaluate/propagate the existing head-SHA verdict (fail closed if no complete findings.json exists) rather than skipping. Also confirm branch-protection does not count skipped jobs as success for these contexts.

Low (1)

dependency-only policy skips the Bedrock SAST scan for vim-gitops-app[bot] PRs that touch only dummy.txt

  • Where: .github/workflows/security.yml:80
  • CWE: CWE-287
  • Remediation: Keep the file allowlist but tighten the identity check: assert the PR author (github.event.pull_request.user.login) is the bot, not just the triggering actor, so a human push to a bot PR cannot inherit the skip. Document that dummy.txt must never be a code/config path that any build step reads, and consider pinning the allowlist to the exact expected path rather than any '*/dummy.txt'.

Info (2)

Scanner model ARN now overridable by the APPSEC_BEDROCK_MODEL_ARN repo/org variable

  • Where: .github/workflows/security.yml:31
  • CWE: CWE-15
  • Remediation: Treat APPSEC_BEDROCK_MODEL_ARN as a security-relevant setting: restrict who can edit Actions variables, and optionally validate the resolved ARN matches an approved allowlist (e.g. fail the job if it is not one of the sanctioned application-inference-profile ARNs) before running the scan.

claude-code-action pinned to a new commit SHA (v1.0.174 -> v1.0.245)

  • Where: .github/workflows/security.yml:245
  • CWE: CWE-1104
  • Remediation: Verify 6fed3ca145920b639991cb756090506e1bcaf515 is the commit for the audited anthropics/claude-code-action v1.0.245 tag (compare against the upstream release), then keep the SHA pin. Re-review on each future bump.

Gate blocks at severity high or a dependency marked BLOCK.

Questions, false positives, or feedback — ping @abir-vim.

@abir-vim abir-vim added the appsec-rescan Run the Vim AppSec Agent on the latest PR head label Oct 8, 2026
@abir-vim
abir-vim merged commit 151db5b into main Oct 8, 2026
2 of 3 checks passed
@abir-vim
abir-vim deleted the chore/appsec-cost-controls branch October 8, 2026 14:29
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

appsec-rescan Run the Vim AppSec Agent on the latest PR head

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant