1.8.6
This release expands the default-vulnerability template API with full CRUD
endpoints, makes the CSV upload format header-driven (and forward-compatible
with CVSS 4.0 and custom fields), and ships a security policy for the project.
🎉 🚀 Upgrades 🎉 🚀
Default-vulnerability template API — full CRUD
New endpoints on /api/vulnerabilities:
| Method | Path | Purpose |
|---|---|---|
GET |
/default/{id} |
Fetch a single template (including custom fields). |
POST |
/default/{id} |
Update a single template from a JSON body. Path id wins over body id. |
DELETE |
/default/{id} |
Delete a template and its associated custom field values. |
GET |
/default/search?name= |
Query-param form of the name search so values containing / (e.g. LLMNR/NBT-NS) round-trip cleanly. |
All endpoints return 404 when no template matches the given id, and 401
when the API key is missing or invalid.
CSV upload is now header-driven
POST /api/vulnerabilities/csv/default now matches columns by header name
(case-insensitive), so column order may vary and unknown columns are ignored.
Recognized headers:
Id, Name, CategoryId, CategoryName, Description, Recommendation,
SeverityId, ImpactId, LikelihoodId, isActive,
CVSS31Score, CVSS31String, CVSS40Score, CVSS40String, CustomFields
Highlights:
- CVSS 4.0 columns (
CVSS40Score,CVSS40String) are supported in addition to the existing CVSS 3.1 columns. - Custom fields round-trip through the
CustomFieldscolumn as a JSON array (same shape produced byGET /csv/default). - Backward compatible — if the first row is not a recognizable header, the upload falls back to the legacy positional column order, so older clients keep working.
Security policy
A new top-level SECURITY.md documents how to report vulnerabilities
privately (GitHub Private Vulnerability Reporting and the project email),
the response SLA, scope, and a safe-harbor clause for researchers.
🐛 Bugfixes 🐛
FSUtils.getEnvnow falls back to JVM system properties when the named
OS environment variable is unset, fixing brittle behavior in deployments
that configure FACTION via-Dflags.HibHelpernow reads allFACTION_MONGO_*settings through
FSUtils.getEnv, so the system-property fallback above applies to the
Hibernate OGM bootstrap as well (previously some keys bypassed it and
could NPE when only sysprops were set).
🧰 Internal / Test infrastructure
- New
VulnerabilitiesIntegrationTestexercises the new endpoints
end-to-end against MongoDB (via Testcontainers, or an external instance
configured withFACTION_MONGO_*sysprops/env). VulnerabilitiesUnitTestgains coverage for the CSV upload helpers
(buildHeaderMap,getCol, header detection, escape handling).pom.xmlpinsmaven-surefire-pluginto 3.2.5 and adds
--add-opens=java.base/java.lang=ALL-UNNAMEDso Hibernate OGM's
Javassist proxies work on JDK 9+.- Removed the stale
AI_CONFIG_DOCUMENTATION.mdfrom the repo root.
Upgrade notes
- No database migration required.
- API: all existing endpoints and CSV payloads continue to work
unchanged. Clients that want the new CSV features should add the
header row described above. - Permissions: the new CRUD endpoints use the same API-key
authentication as the existing/api/vulnerabilitiesendpoints.
Full changelog
See the GitHub compare view for the complete list of commits:
1.8.5...1.8.6