Skip to content

Dependency-Check reports 15 CVEs in spring-core 6.2.19 and spring-security-core 6.5.11, with no fixed release available #51

Description

@tcheeric

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

  1. 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.
  2. 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.
  3. 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.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions