v1.9.1 — POA&M-from-amendments + security remediations
SPARC v1.9.1 — cleanup on v1.9.0: restores OSCAL POA&M generation under hdf-cli 3.2.0, plus security remediations and an accessibility fix.
New
poam_from_amendmentsendpoint (#663) —POST /api/v1/oscal/poam_from_amendments(hdf convert --from hdf-amendments --to oscal-poam). The hdf-cli 3.2.0-supported replacement for the removed directhdf → oscal-poamconverter (poam_from_hdfreturns 501 on 3.2.0). Full API-first surface: shared service + audit event + optional boundary enrichment, request spec,tests/apicontract test, and INVENTORY / endpoint-doc / Postman entries.
Fixes
- Profile-index accessibility (#668) — the "Duplicate" button now uses
btn-primary(white-on-#1f6fa5, 5.78:1) instead of an inline low-contrast background, resolving a WCAG 2.1 AA color-contrast violation surfaced by the axe UI smoke.
Security — dependency remediations
- concurrent-ruby 1.3.6 → 1.3.7 — remediates CVE-2026-54906 (CRITICAL —
ReadWriteLockwrong-thread write release / stray read-release counter corruption; GHSA-6wx8-w4f5-wwcr) and the related CVE-2026-54904 / CVE-2026-54905. (#671; also hot-fixed onto the release branch when it gated CI.) - faraday 2.14.2 → 2.14.3 — remediates CVE-2026-54297 (HIGH — uncontrolled recursion in
NestedParamsEncoderenabling stack-exhaustion DoS via deeply nested query params; GHSA-98m9-hrrm-r99r). (#669) - Additional dependency bumps:
oauth22.0.24,json,aws-sdk-rds/-s3,i18n,kamal,zeitwerk(#669/#671); GitHub Actions group bumps —download-artifact/upload-artifact/configure-aws-credentials(#670).
Both gem CVEs were caught by the SBOM/SCA CRITICAL gate and remediated by version bump (not suppression);
bundle exec bundler-auditis clean. These are app-dependency findings (outside the container-scopedsparc-findings.yml), so this changelog is their authoritative remediation record.
Tests / internal
- API contract suite realigned (#644) —
tests/apipydantic schemas updated for the content-completeness fields (SSP/CDEF/Profile only), the Rails session-cookie name, the discoveryauth_modeset (local|oidc|hybrid), and the KSI validation-error path. Fulltests/apisuite green (298 passed) against a live instance. - Sonar S1192 literal-duplication cleanup in the translation service + spec.
Full diff: v1.9.0...v1.9.1