VRT 391,192 CVEs tracked · 15,442 in RASP scope · data as of 18 hours ago

CVE-2016-9878

7.5 High Protected by RASP

Description

An issue was discovered in Pivotal Spring Framework before 3.2.18, 4.2.x before 4.2.9, and 4.3.x before 4.3.5. Paths provided to the ResourceServlet were not properly sanitized and as a result exposed to directory traversal attacks.

CWE-22 · Path traversal

Exploitation Status

No public exploit

Nothing published shows this CVE being exploited, which is not the same as ruling it out. nothing published in 9 years.

CVSS E:U

  • CISA KEV not listed
  • CISA Vulnrichment no assessment published
  • Indexed PoC none indexed
  • EPSS 5.7% chance in 30 days

Waratek Defense Posture

Protected by RASP

A Waratek agent blocks this today.

Applicable rule: CVE has an ARMR patch rule that provides mitigation

  • Protection full a patch rule written for this CVE
  • Action available patch rule
  • Review human armr-file
  • Record active
Decided by armr-patch-file : An ARMR patch file on disk for this CVE
Finding CVE has an ARMR patch rule that provides mitigation

ARMR rule files

1 file

Shipped files covering this CVE. A CVE genuinely takes more than one: separate Maven artifacts hooking different parser classes, the same patch built for two ARMR versions, or a fix at both the framework and the container.

rules/frameworks/spring/CVE-2016-9878/patch/2.6/CVE-2016-9878.armr patch rule added 2020-06-25 updated 2026-03-04
app("SPRING"):
    requires(version: "ARMR/2.6")

    /***************************************************************************
        CVE-2016-9878 (SPRING)

        CVSS 3.0 Summary:
            Base Score              | 7.5
            Attack Vector           | Network
            Attack Complexity       | Low
            Privileges Required     | None
            User Interaction        | None
            Scope                   | Unchanged
            Confidentiality Impact  | High
            Integrity Impact        | None
            Availability Impact     | None

        Description:
            It was discovered that paths provided to the ResourceServlet were not
            properly sanitized and as a result exposed to directory traversal
            attacks.

        Resources:
            https://github.com/spring-projects/spring-framework/pull/1299/commits/e2d6e709c3c65a4951eb096843ee75d5200cfcad

        Affected Operating Systems:
            Any

        Affected Versions:
            Spring Framework: 3.2.17, 4.2.8, 4.3.4

        Tested Versions:
            4.3.4

        Protection Provided:
            Functional

        Patch Version:
            1.0
    ***************************************************************************/

    patch("CVE-2016-9878 :01"):
        function("org/springframework/web/servlet/ResourceServlet.doInclude(Ljavax/servlet/http/HttpServletRequest;Ljavax/servlet/http/HttpServletResponse;Ljava/lang/String;)V",
                 checksums: ["314cc3d0bf"]) // 4.3.4
        callreturn("org/springframework/util/StringUtils.tokenizeToStringArray(Ljava/lang/String;Ljava/lang/String;)[Ljava/lang/String;")

        code(language: java,   import: ["org.springframework.util.StringUtils"]):
            public void patch(JavaFrame frame) {
                String[] resourceUrls = (String[]) frame.loadObjectOperand(0);
                String[] cleanResourceUrls = new String[resourceUrls.length];

                for (int i = 0; i < resourceUrls.length; i++) {
                    String cleanedUrl = StringUtils.cleanPath(resourceUrls[i]);
                    cleanResourceUrls[i] = cleanedUrl;
                }
                frame.storeObjectOperand(0, cleanResourceUrls);
            }
        endcode
    endpatch

endapp

CVSS

7.5 HIGH v3.0 CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N 2 metrics

VRT selects the newest version's highest entry and publishes it as cvssScore, newest rather than largest because scores are not comparable across versions, and highest rather than first because the first entry is frequently a CNA placeholder scoring 0.0 over NVD's own analysis.

VersionScoreBandVectorAssignerType
CVSS 3.0 7.5 HIGH CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N NVD Primary published
CVSS 2.0 5.0 no band published AV:N/AC:L/Au:N/C:P/I:N/A:N NVD Primary

Affected Software & Releases

🏛️ Oracle CPU Advisories & Products

AdvisoryTypeQuarterProducts Oracle named in risk matrix
Oracle Critical Patch Update July 2018 CPU 2018-Q3 Oracle Enterprise Manager Products Suite / Framework (Spring Framework) (12.2.2, 12.3.3)
Oracle Retail Applications / Install (Spring Framework) (14.0.x, 14.1.x, 15.0.x, 16.0.x)
Oracle Retail Applications / Security (14.0, 14.1)
Oracle Retail Applications / Security (Spring Framework) (14.0, 14.1)
Oracle Retail Applications / Security (Spring Framework) (14.0, 14.1)
Oracle Retail Applications / Transaction (Spring Framework) (14.0, 14.1)
Oracle Critical Patch Update April 2018 CPU 2018-Q2 Oracle MySQL / EM Plugin: General (Spring Framework) (3.3.7.3306 and prior, 3.4.5.4248 and prior, 4.0.2.5168 and prior)
Oracle Retail Applications / Internal Operations (Spring Framework) (16.0)
Oracle Retail Applications / RPAS Fusion Client (Spring Framework) (13.4.3, 14.0.3, 14.1.3)
Oracle Critical Patch Update January 2018 CPU 2018-Q1 Oracle Retail Applications / Operations & Maintenance (Spring Framework) (14.1.3, 15.0.3, 16.0.1)

Indexed Oracle Components & Versions

FamilyComponentOracle's version cell (verbatim)Indexed as
Oracle Enterprise Manager Products Suite Framework (Spring Framework) 12.2.2, 12.3.3 12.2.2 · 12.3.3
Oracle MySQL EM Plugin: General (Spring Framework) 3.3.7.3306 and prior, 3.4.5.4248 and prior, 4.0.2.5168 and prior
Oracle Retail Applications Install (Spring Framework) 14.0.x, 14.1.x, 15.0.x, 16.0.x 14.0 · 14.1 · 15.0 · 16.0
Oracle Retail Applications Internal Operations (Spring Framework) 16.0 16.0
Oracle Retail Applications Operations & Maintenance (Spring Framework) 14.1.3, 15.0.3, 16.0.1 14.1.3 · 15.0.3 · 16.0.1
Oracle Retail Applications RPAS Fusion Client (Spring Framework) 13.4.3, 14.0.3, 14.1.3 13.4.3 · 14.0.3 · 14.1.3
Oracle Retail Applications Security 14.0, 14.1 14.0 · 14.1
Oracle Retail Applications Security (Spring Framework) 14.0, 14.1 14.0 · 14.1
Oracle Retail Applications Transaction (Spring Framework) 14.0, 14.1 14.0 · 14.1

☕ Maven Library Packages

Artifact coordinates and fix boundaries from OSV.dev
Package CoordinateIntroducedFixedLast affected
org.springframework:spring-webmvc 0 3.2.18 unbounded
org.springframework:spring-webmvc 4.2.0 4.2.9 unbounded
org.springframework:spring-webmvc 4.3.0 4.3.5 unbounded

🖥️ Product CPEs & Version Ranges

3 product(s) over 35 version claims (uncapped)
SourceVendorProductSchemeAffected Versions
osv org.springframework spring-webmvc generic < 3.2.18 · ≥ 4.2.0 and < 4.2.9 · ≥ 4.3.0 and < 4.3.5
nvd pivotal software spring framework generic ≤ 3.2.0 · 4.2.0 · 4.3.0
nvd vmware spring framework generic 3.2.1 · 3.2.2 · 3.2.3 · 3.2.4 · 3.2.5 · 3.2.6 · 3.2.7 · 3.2.8 · 3.2.9 · 3.2.10 · 3.2.11 · 3.2.12 · 3.2.13 · 3.2.14 · 3.2.15 · 3.2.16 · 3.2.17 · 4.2.1 · 4.2.2 · 4.2.3 · 4.2.4 · 4.2.5 · 4.2.6 · 4.2.7 · 4.2.8 · 4.3.1 · 4.3.2 · 4.3.3 · 4.3.4

References

URLTags
https://github.com/spring-projects/spring-framework/issues/19513 WEB
https://github.com/spring-projects/spring-framework/commit/43bf008fbcd0d7945e2fcd5e30039bc4d74c7a98 WEB
https://github.com/spring-projects/spring-framework/commit/a7dc48534ea501525f11369d369178a60c2f47d0 WEB
https://github.com/spring-projects/spring-framework/commit/e2d6e709c3c65a4951eb096843ee75d5200cfcad WEB
https://access.redhat.com/errata/RHSA-2017:3115 WEB
https://github.com/advisories/GHSA-2m8h-fgr8-2q9w ADVISORY
https://github.com/spring-projects/spring-framework PACKAGE
https://lists.debian.org/debian-lts-announce/2019/07/msg00012.html WEB
https://pivotal.io/security/cve-2016-9878 WEB
https://security.netapp.com/advisory/ntap-20180419-0002 WEB

Timeline

Published 2016-12-29 Last modified 2026-06-17
Published2016-12-29By the CVE Program.
ARMR remediation created2020-06-25Earliest commit adding this CVE's ARMR patch or security rule.
ARMR remediation last updated2026-03-04Most recent commit touching this CVE's ARMR patch or security rule.
Last VRT activity2026-03-04Most recent commit touching this CVE's classification, patch or rule file.
NVD record modified2026-06-17NVD's own last-modified date for this record.