Found once Dependency-Check could actually complete a scan (see the reactor fix in the PR that references this issue). Recording it rather than acting on it, because there is nothing to upgrade to.
What it reports
spring-core 6.2.19 — 12 CVEs, four at 9.8:
CVE-2026-47884 (9.8) CVE-2026-47890 (9.8) CVE-2026-47891 (9.8) CVE-2026-47892 (9.8)
CVE-2026-59313 (9.8) CVE-2026-59283 (9.1) CVE-2026-47885 (7.5) CVE-2026-47886 (7.5)
CVE-2026-47888 (7.5) CVE-2026-47889 (7.5) CVE-2026-47893 (7.5) CVE-2026-59282 (7.5)
spring-security-core 6.5.11 — 3 CVEs:
CVE-2026-59270 (9.4) CVE-2026-47841 (7.4) CVE-2026-41707 (7.4)
Confirmed real against the NVD API directly, not taken on the scanner's word. Three spot-checked:
- CVE-2026-47884 (9.8):
XsltView in Spring MVC, SSRF and RCE where the application maps /**
- CVE-2026-59313 (9.8): functional web framework, stream corruption
- CVE-2026-59270 (9.4): Spring Security's embedded UnboundID LDAP server registers an administrative account unconditionally
Nothing to upgrade to
spring-core 6.2.19 and spring-security-core 6.5.11 are the newest published releases in their lines. This cannot be closed with a version bump today.
This is the finding I previously retracted
Issue #34 claimed 14 Spring CVEs and I closed it as not reproducible, because re-running the scanner gave BUILD SUCCESS at -DfailBuildOnCVSS=7 and at 0. That retraction was wrong, and the reason is worth writing down: the scan was failing before it reached nap-spring, and a build that dies on module 2 of 7 reports success for the modules it never analysed. I read a green result as evidence of a clean tree when it was evidence of an incomplete run.
The original report was right. It was the verification that was broken.
Not reachable here, as far as the source shows
XsltView and the functional web framework: not used, no match in nap-spring/src/main
- Embedded LDAP /
UnboundIdContainer: not used, and spring-security-core is pulled for its primitives rather than its LDAP support
- The
/** mapping that CVE-2026-47884 needs is an application concern, and this is a library
So the realistic exposure is low for nap-java itself, and higher for any consumer that does use Spring MVC with those features. A library cannot make that judgement for its consumers.
OSV does not see these
Worth flagging, because the OSV job gates merges and would not have caught this:
OSV spring-core 6.2.19: 0 advisories
OSV spring-security-core 6.5.11: 0 advisories
Both scanners have blind spots in opposite directions. OSV found the bcprov critical that Dependency-Check missed by never running; Dependency-Check finds these, which OSV does not carry. That is an argument for keeping both rather than picking one.
Options
- Accept and document, with a suppression file naming each CVE and why it is not reachable. Keeps the scan green and honest, but suppressions rot silently.
- Leave the nightly scan red until Spring publishes fixes. Honest, and loud, and exactly the "permanently red check people learn to ignore" the workflow comments argue against.
- Raise
failBuildOnCVSS above 9.8 so nothing fires. Dishonest; not recommended.
I would take 1, with an expiry date on each suppression so it has to be revisited rather than forgotten. Happy to implement it, but it is a call about risk acceptance rather than a mechanical fix, so it should be yours.
In the meantime the job is non-blocking and runs nightly, so this reports without stopping anyone.
Found once Dependency-Check could actually complete a scan (see the reactor fix in the PR that references this issue). Recording it rather than acting on it, because there is nothing to upgrade to.
What it reports
spring-core6.2.19 — 12 CVEs, four at 9.8:spring-security-core6.5.11 — 3 CVEs:Confirmed real against the NVD API directly, not taken on the scanner's word. Three spot-checked:
XsltViewin Spring MVC, SSRF and RCE where the application maps/**Nothing to upgrade to
spring-core6.2.19 andspring-security-core6.5.11 are the newest published releases in their lines. This cannot be closed with a version bump today.This is the finding I previously retracted
Issue #34 claimed 14 Spring CVEs and I closed it as not reproducible, because re-running the scanner gave
BUILD SUCCESSat-DfailBuildOnCVSS=7and at0. That retraction was wrong, and the reason is worth writing down: the scan was failing before it reachednap-spring, and a build that dies on module 2 of 7 reports success for the modules it never analysed. I read a green result as evidence of a clean tree when it was evidence of an incomplete run.The original report was right. It was the verification that was broken.
Not reachable here, as far as the source shows
XsltViewand the functional web framework: not used, no match innap-spring/src/mainUnboundIdContainer: not used, andspring-security-coreis pulled for its primitives rather than its LDAP support/**mapping that CVE-2026-47884 needs is an application concern, and this is a librarySo the realistic exposure is low for
nap-javaitself, and higher for any consumer that does use Spring MVC with those features. A library cannot make that judgement for its consumers.OSV does not see these
Worth flagging, because the OSV job gates merges and would not have caught this:
Both scanners have blind spots in opposite directions. OSV found the
bcprovcritical that Dependency-Check missed by never running; Dependency-Check finds these, which OSV does not carry. That is an argument for keeping both rather than picking one.Options
failBuildOnCVSSabove 9.8 so nothing fires. Dishonest; not recommended.I would take 1, with an expiry date on each suppression so it has to be revisited rather than forgotten. Happy to implement it, but it is a call about risk acceptance rather than a mechanical fix, so it should be yours.
In the meantime the job is non-blocking and runs nightly, so this reports without stopping anyone.