Skip to content

[REVIEW] sast-config: refresh ASVS 5.0 and CWE Top 25 2025 mapping #205

@mlodygbelmondo

Description

@mlodygbelmondo

Skill Being Reviewed

Skill name: sast-config
Skill path: skills/devsecops/sast-config/

False Positive Analysis

Benign SAST configuration that can be misclassified with stale framework mappings:

rules:
  - p/owasp-top-ten
  - p/cwe-top-25
  - ./semgrep-rules/

Why this can be misleading:

The skill currently maps SAST coverage to OWASP ASVS 4.0.3 and CWE Top 25 2024. OWASP has released ASVS 5.0.0 as the latest stable release, and MITRE/CWE has published the 2025 CWE Top 25. A SAST configuration can look adequately mapped under the older framework set while missing changed ASVS requirement IDs, updated topic organization, or newly ranked CWE priorities.

This is especially risky for SAST tuning because the skill uses framework mapping to decide whether missing coverage is High/Medium and how CI gates should behave. Stale ASVS/CWE mappings can produce both false confidence and noisy findings.

Coverage Gaps

Missed variant 1: ASVS 4.0.3 controls are treated as the current baseline

Frameworks applied: OWASP ASVS 4.0.3, CWE Top 25
Control Reference: ASVS V.X.X / CWE-XXX

Why it should be caught:

Reports generated after ASVS 5.0.0 should identify whether they are using the current ASVS baseline or an intentional legacy 4.0.3 mapping. Otherwise teams may tune rules against obsolete control IDs and miss the need to remap findings.

Missed variant 2: CWE Top 25 2024 ranking is hardcoded

Map the active SAST rule set against CWE Top 25 (2024)

Why it should be caught:

CWE Top 25 is data-driven and changes year to year. The 2025 list is now the current published Top 25. SAST coverage matrices and severity defaults should record the CWE Top 25 year/source date, because rank changes affect which rule gaps should be treated as High versus Medium.

Missed variant 3: rule-pack freshness is not tied to framework version

- p/owasp-top-ten
- p/cwe-top-25

Why it should be caught:

Managed Semgrep/CodeQL rule packs can change independently from ASVS and CWE releases. The review should capture rule-pack source, version/date, active languages, enabled/disabled state, and mapping confidence instead of assuming a registry alias currently implements the desired ASVS/CWE baseline.

Edge Cases

  • Some audit engagements may still require ASVS 4.0.3. The skill should support legacy mode only when the requested framework version and date are explicitly recorded.
  • Existing issue [REVIEW] appsec-engineer role bundle framework freshness and evidence gaps #147 covers the broader appsec-engineer role bundle. This review is specific to the sast-config skill's frontmatter, SAST coverage matrix, output format, and ASVS/CWE mapping.
  • SAST cannot fully verify many ASVS controls. The refreshed output should distinguish covered by SAST, partially covered, manual/dynamic evidence required, and not evaluated.
  • A rule-pack alias such as p/cwe-top-25 may point to a moving target. That can be useful operationally, but reports need the retrieved rule-pack version or date.

Remediation Quality

  • Fix resolves the vulnerability
  • Fix doesn't introduce new security issues
  • Fix doesn't break functionality
  • Issues found: Refresh sast-config to support OWASP ASVS 5.0.0 and CWE Top 25 2025, add explicit framework-version/source-date fields, preserve legacy ASVS 4.0.3 mode only when scoped, and add rule-pack freshness/mapping-confidence output fields.

Comparison to Other Tools

Tool Catches this? Notes
OWASP ASVS 5.0.0 Yes Current stable ASVS baseline for application security verification.
CWE Top 25 2025 Yes Current MITRE/CWE Top 25 list for dangerous software weaknesses.
Semgrep / CodeQL Partial Rule packs can cover many weaknesses, but the skill must record version/date and mapping confidence.
Existing issue #147 Partial Covers role-bundle framework freshness, not this specific SAST skill and output template.

Overall Assessment

Strengths:

  • Useful SAST discovery patterns for Semgrep, CodeQL, SonarQube, Bandit, ESLint, and CI workflows.
  • Good practical guidance around rule coverage, false positives, custom Semgrep authoring, suppressions, and CI gate behavior.
  • The output format already has space for ASVS/CWE references, making the refresh straightforward.

Needs improvement:

  • Update framework metadata and references from ASVS 4.0.3 to ASVS 5.0.0.
  • Update CWE Top 25 references and coverage matrix from 2024 to 2025, or make the year explicit and configurable.
  • Add rule-pack source/version/date and mapping-confidence fields.
  • Add manual evidence required / not evaluable by SAST reason codes for ASVS controls that SAST cannot prove.

Priority recommendations:

  1. Add a preflight section that records ASVS version, CWE Top 25 year, rule-pack source/version/date, scanner version, and review date.
  2. Refresh the SAST coverage matrix to ASVS 5.0.0 and CWE Top 25 2025, with legacy ASVS 4.0.3 only when explicitly scoped.
  3. Extend the output template with Framework version, Source date, Rule-pack version, Mapping confidence, and Manual evidence required fields.

References

Bounty Info

  • I have read and agree to the CONTRIBUTING.md bounty terms.
  • Preferred payment method: To be provided privately after acceptance.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions