This release includes 3 breaking changes for platform teams planning a safe upgrade.
✓ No known CVEs patched in this version
Affected surfaces
Summary
AI summaryPAN and hardcoded‑password findings now emit different PCI DSS requirement IDs, requiring migration of grouping logic.
Full changelog
[0.5.0] - 2026-04-21
Changed (BREAKING for consumers grouping by requirement_id)
- PAN-KEYWORD and PAN-LOGGER findings on PAN fields (cardNumber, pan, primary_account_number, accountNumber, ccNo, cardNo) now emit
requirement_id: "3.5.1"instead of"3.3.1". SAD fields (CVV/CVC/CID/track/PIN) continue to emit"3.3.1". Splitting reflects PCI DSS taxonomy: 3.3.1 covers Sensitive Authentication Data, 3.5.1 covers PAN at-rest. Source of truth: docs/requirement-mapping.md. - PAN-LOGGER on PAN fields now also carries
related_requirements: ["3.4.1", "10.2.1"]- display masking + audit-log integrity per PCI DSS v4.0.1 clarification. - SQL-SENSITIVE-COLUMN and GORM-SENSITIVE-TAG follow the same PAN/SAD split: PAN columns route to 3.5.1, SAD columns route to 3.3.1.
- AUTH-HARDCODED-PWD primary requirement_id changed from
"8.3.1"to"8.6.2". 8.6.2 explicitly prohibits hardcoded passwords in source; 8.3.1 (auth factors) is nowrelated_requirements. - CRYPTO-HARDCODED-KEY
related_requirementschanged from["3.6.1.2"]to["8.6.2"]. Primary remains"6.2.4". 3.6.1.2 covers key storage form (KEK/HSM/key shares), not hardcoded-secret-in-source - see docs/requirement-mapping.md for the full rationale.
Fixed
- pcidb entry for PCI DSS 3.6.1.2 corrected. The previous embedded text incorrectly described 3.6.1.3 (Secret Key Access Restriction - fewest custodians). Corrected title is "Secret Key Storage Form" with a description covering KEK / HSM / key shares per PCI DSS v4.0.1. The entry is marked
detectable: false,requires_qsa: true.
Added
docs/requirement-mapping.md- canonical per-rule mapping table (rule_id to primary + related requirement IDs + coverage status).scanner/requirement_mapping_test.go- bidirectional drift guard test that fails when source emit sites and the docs table disagree.scanner/internal/sensitivedatapackage - shared PAN-vs-SAD classifier consumed by panscanner and sqlscanner.- Public documentation aligned with v0.5.0 requirement_id semantics across README.md, docs/severity.md, docs/pci-coverage.md, docs/tools.md, docs/comparison.md, and docs/taint.md. New
scanner/docs_consistency_test.goguards docs/severity.md and docs/pci-coverage.md against drift vs docs/requirement-mapping.md.
Migration Notes
Consumers of generate_compliance_report and triage_findings who group findings by requirement_id:
- PAN-related findings (cardNumber, pan, accountNumber) previously bucketed under PCI DSS 3.3.1 will now appear under 3.5.1.
- SAD findings (CVV, CVC, track, PIN) remain under 3.3.1.
- Hardcoded-password findings move from 8.3.1 to 8.6.2.
- CRYPTO-HARDCODED-KEY
related_requirementsnow lists 8.6.2 instead of 3.6.1.2; primary is unchanged. - 3.6.1.2 entry text returned by
explain_requirementnow reflects the canonical PCI DSS v4.0.1 wording.
Downstream consumers that group or filter findings by requirement_id should update their mappings. See docs/requirement-mapping.md for the canonical rule_id -> requirement_id table.
No severity changes. No new rules. No changes to the 14 MCP tool surface.
Breaking Changes
- PAN‑related findings (cardNumber, pan, accountNumber) now emit `requirement_id: "3.5.1"` instead of `"3.3.1"`.
- Hardcoded‑password findings (`AUTH-HARDCODED-PWD`) now have primary `requirement_id: "8.6.2"` (was `"8.3.1"`).
- CRYPTO-HARDCODED-KEY `related_requirements` changed from `["3.6.1.2"]` to `["8.6.2"]`.
Weekly OSS security release digest.
The CVE patches and breaking changes that affected production tools this week. One email, every Sunday.
No spam, unsubscribe anytime.
Share this release
About shyshlakov/pci-dss-mcp
PCI DSS v4.0.1 static-analysis MCP server for Go payment codebases. 12 scanners detect PAN/CVV exposure, weak crypto, missing audit logs, vulnerable deps, TLS misconfig, auth weaknesses, plus CycloneDX 1.6 SBOM generation - each finding mapped to the exact PCI requirement. AI-assisted triage via triage_findings. Keyless-signed multi-arch Docker image on ghcr.io.
Related context
Beta — feedback welcome: [email protected]