Join our Newsletter — 33% off our NHI Course
Home› FAQ› Cyber Security› What should teams do first when Spring4Shell exposure…
Cyber Security

What should teams do first when Spring4Shell exposure is possible in a Tomcat application?

← Back to all FAQ
By NHI Mgmt Group Editorial Team Updated September 30, 2026 Domain: Cyber Security

The first step is to identify every internet-facing application that runs Spring MVC or Spring WebFlux on Tomcat with JDK 9 or later, then confirm whether it is packaged as a WAR. Once confirmed, upgrade to a fixed Spring release and treat the app as potentially exploitable until patched. Because the flaw can be abused remotely without authentication, exposure assessment and rapid remediation should move together.

Scope the exposed Tomcat estate before touching code

The first move is to build an exposure inventory, not to start patching blindly. Teams should identify every internet-facing Tomcat deployment that combines Spring MVC or Spring WebFlux with JDK 9 or later, then verify whether the application is packaged as a WAR. That combination determines whether the Spring4Shell path is even plausible and which systems need urgent attention.

For teams that already maintain application or platform inventories, this is a high-value correlation exercise: runtime, packaging, and deployment exposure all matter at once. A partial list is not enough, because the exploit condition is easy to miss when ownership is split between application teams and infrastructure teams.

When inventory is incomplete, treat the result as an investigation problem, not a patching problem. The quickest way to waste time is to remediate a few visible apps while leaving similarly exposed instances in other environments, especially where internet-facing Tomcat is reused across business units.

Patch the vulnerable Spring release and assume exposure until proven otherwise

Once a system matches the exposure pattern, move directly to the fixed Spring release for that application line. The practical rule is to treat the app as potentially exploitable until the patch is confirmed in the deployed artifact, not just in source control or a build ticket.

That matters because Spring4Shell is a remote, unauthenticated issue, so there is no safe assumption that lack of login screens or internal-only business logic reduces urgency. If the application is reachable from the internet and fits the vulnerable stack, the right default is rapid remediation plus temporary containment where patching will not be immediate.

This is also where deployment discipline matters. Teams should verify the active version in the running environment, confirm the new artifact actually replaced the old one, and avoid relying on package manager state alone. A fixed dependency in a build pipeline does not help if the production WAR was not rebuilt and redeployed.

Why the packaging detail changes the response path

WAR packaging is not a minor implementation note here, it is part of the exposure test. Applications deployed as WARs on Tomcat are the ones that fit the classic Spring4Shell condition, so the packaging format helps separate likely affected systems from nearby Spring applications that do not meet the same profile.

That distinction helps teams prioritize without over- or under-scoping. A Spring application may look similar at the service catalog level, yet the actual exploitability can differ because the runtime container, Java version, and packaging pattern are different. The point is to remove ambiguity before relying on a vulnerability scanner result or a generic Spring label.

In practice, the best first response is a three-way check: is it internet-facing, does it run the affected Spring stack on Tomcat with JDK 9 or later, and is it deployed as a WAR. If all three are true, the system should be treated as high priority until the fixed release is live and verified.

Risk and Threat Considerations

Spring4Shell is dangerous because it combines remote reachability with unauthenticated exploitation and broad deployment patterns. The main operational risk is not just compromise of one service, but missing a similarly exposed sibling application because inventory data, ownership, or packaging information is fragmented.

Failure mechanism: An attacker can target an internet-facing Spring application running on Tomcat with the vulnerable Java and packaging conditions, then use the flaw to gain execution or otherwise manipulate the application environment without first authenticating.

Impact: If the condition is present, the result can be full application compromise, follow-on server access, and a wider incident if the affected service shares credentials, data paths, or deployment conventions with other systems.

Standards & Framework Alignment

This section maps relevant standards and security frameworks to the operational risks and controls described in this guidance.

OWASP ASVS, NIST SP 800-53 Rev 5 and CIS Controls v8 set the governance and control requirements practitioners need to meet.

FrameworkControl / ReferenceRelevance
OWASP ASVSV13 — ConfigurationSpring4Shell exposure depends on runtime and deployment configuration.
V15 — Secure Coding and ArchitectureThe question is about how an application architecture pattern becomes exploitable.
Recommendation — Verify deployed runtime configuration and block vulnerable Tomcat/Spring combinations from production. Review architecture assumptions that let vulnerable Spring components reach internet-facing Tomcat.
NIST SP 800-53 Rev 5SI-2 — Flaw RemediationThe response is to move quickly to a fixed Spring release.
CM-2 — Baseline ConfigurationExposure assessment depends on identifying the affected deployment baseline.
Recommendation — Prioritize rapid remediation and verify vulnerable components are updated in production. Maintain an accurate baseline of internet-facing Tomcat, Java, and Spring deployment variants.
CIS Controls v8CIS-4 — Secure Configuration of Enterprise Assets and SoftwareThe issue is tied to a specific insecure software/runtime combination.
Recommendation — Harden and inventory exposed application stacks before treating them as safe.

Practitioner Guidance

What to verify: Confirm the live runtime, not just the intended build, and check whether each candidate app is actually internet-facing, on Tomcat, on JDK 9 or later, and packaged as a WAR. If any of those facts are uncertain, treat the app as still under assessment.

Decision rule: If the app matches the vulnerable stack, patch first and investigate second; if patching will be delayed, isolate or restrict reachability immediately. Do not wait for proof of exploitation before acting, because the exposure test itself is enough to justify urgent handling.

Practitioner takeaway: For Spring4Shell, the fastest safe path is to identify the exact exposed runtime shape, patch the fixed Spring release, and verify the deployed artifact so remediation and exposure assessment stay aligned.

Deepen Your Knowledge

Sign up to our weekly newsletter — get 33% off our NHI Foundation Level Course

    NHIMG Editorial Note
    Reviewed and updated by the NHIMG editorial team on September 30, 2026.
    NHI Mgmt Group — the #1 independent authority on Non-Human Identity, IAM, and Agentic AI security. nhimg.org