☠️
EXFILTRATING
DATA...
01010111 10110010 00101001 11000110 01101100 10011011 00010001 11100101 01000010 10101111
[ <-- BACK_TO_SEARCH ]
Spring logo [ WEBSITE ] [ VENDOR STATS ]
CVSS: 5.9 🐛 CWE-400
👁️
Common Weakness Enumeration - Identifies the specific category of software weakness or flaw.

CVE-2026-41721

CVE-2026-41721 Denial of Service in Spring
📅 PUBLISHED: 2026-06-10 00:16 UTC 🔄 UPDATED: 2026-09-23 20:28 UTC
[ OFFICIAL PATCH DEPLOYED ↓ ] FIX: LIKELY — 2 independent sources confirm fix
[ DEFENSE PATCH ↓ ]
💣 PoC: None
👁️
Proof of Concept - Indicates if functional exploit code is publicly available, drastically increasing the risk of immediate attacks.
🎯 EPSS: 0.33%
👁️
0.33% probability
8.3× above the median CVE
Tier: ELEVATED
30-day exploitation window · FIRST.org · updated daily
🥷 MITRE: T1499
👁️
MITRE ATT&CK Tactic - Describes the strategy hackers use to execute this attack.
Country: United States License: Open Source
Patch available — upgrade to latest release
CVSS SEVERITY SCALE
9.0–10.0 CRITICAL
7.0–8.9 HIGH
4.0–6.9 MEDIUM
0.1–3.9 LOW
0.0 NONE
5.9
THREAT LEVEL
■ tracking this CVE ✓ independent patch confirmation ⧗ same-origin mirror (GHSA) ⚠ active exploitation verification policy →

Executive Summary

CVE-2026-41721 is a high-severity Denial of Service (DoS) vulnerability in the Spring Data Commons library, affecting a wide range of versions from 2.7.0 up to 4.0.5. The flaw is triggered when Spring Data Web Support is enabled alongside a Controller method annotated with @ProjectedPayload. An attacker can send a specially crafted HTTP request that forces the application to allocate excessive memory, leading to resource exhaustion and service unavailability.

The vulnerability is classified under CWE-400 (Uncontrolled Resource Consumption) and has a CVSS score of 5.9 (Medium). While no public exploit code or proof-of-concept is currently available, the attack vector is network-based, requires no authentication, and involves low complexity, making it a significant risk for unpatched systems.

⚡ AUTOMATE YOUR CVE INTELLIGENCE

This record — and 170,000+ others — are available via the ValtersIT API. One endpoint replaces five: NVD + GitHub CVE + CISA KEV + EPSS + Nuclei + Exploit-DB, unified.

›Patch confidence — UNVERIFIED to CONFIRMED, cross-referenced NVD + RHSA + Debian
›Exploit & PoC — poc_status, poc_url, has_exploit. Not in NVD.
›Shodan dorks — ready-made queries to find exposed vulnerable systems
›Detection rules — YARA · Wazuh · Elastic (all plans) · Sigma (Pro)
›pending_fields — know exactly which of 7 fields NVD hasn't processed yet
›Free backfill — data incomplete when you paid? Re-check within 30 days = 0 credits
PAYG €0.08/lookup Standard €19/mo (was €29) · 5k credits Pro €65/mo (was €99) · 20k credits FOUNDING PRICE · LOCKED FOR LIFE · ENDS 31 DEC 2026
[ FROM €19/MO ]
Free sandbox key available
No signup required

Supply Chain & Package Security

This vulnerability affects the Spring Data Commons library, which is a core component of the Spring ecosystem. Organizations using Spring Boot or Spring Data REST are particularly at risk if they expose endpoints that leverage @ProjectedPayload. The library is distributed via Maven Central and is a transitive dependency for many Spring-based applications. Supply chain risk is elevated because the vulnerability exists in a widely used open-source component, and no official patch has been released at the time of this analysis. Teams should audit their dependency trees for affected versions and consider temporary mitigations.

CVSS Breakdown & Threat Level

  • Attack Vector (AV): Network (N) – The attack can be launched remotely.
  • Attack Complexity (AC): Low (L) – No special conditions are required.
  • Privileges Required (PR): None (N) – No authentication needed.
  • User Interaction (UI): None (N) – No user action required.
  • Scope (S): Unchanged (U) – The impact is confined to the vulnerable component.
  • Confidentiality (C): None (N) – No data exposure.
  • Integrity (I): None (N) – No data modification.
  • Availability (A): High (H) – Complete loss of availability due to resource exhaustion.

Threat Level: Medium. The vulnerability is easy to exploit remotely but only results in a denial of service, not data compromise. However, in critical production environments, a DoS can have severe business impact.

Deep Dive & Mechanics

The vulnerability resides in the Spring Data Web Support module, specifically in the handling of @ProjectedPayload annotations. When a controller method uses @ProjectedPayload, Spring Data attempts to deserialize the incoming request body into a projection interface. The flaw occurs because the deserialization process does not properly limit the size or complexity of the input data.

An attacker can craft an HTTP request with a payload that, when processed, triggers the allocation of an unbounded amount of memory. This can be achieved by sending a JSON or XML payload that contains deeply nested structures, repeated fields, or extremely large arrays. The application will attempt to map this payload to the projection interface, consuming all available heap memory and causing an OutOfMemoryError, effectively crashing the JVM or making the application unresponsive.

The root cause is a missing resource consumption guard in the ProjectedPayloadHandler or similar component. The fix would involve implementing input size validation, depth limits, or streaming deserialization to prevent memory exhaustion.

Vulnerable vs. Patched Code

Since no official patch is available, the following is a conceptual comparison.

Vulnerable Code (Conceptual):

@RestController
public class MyController {
    @PostMapping("/data")
    public ResponseEntity<?> handle(@ProjectedPayload MyProjection projection) {
        // Process projection
        return ResponseEntity.ok().build();
    }
}

In this scenario, the @ProjectedPayload annotation triggers deserialization without any size checks.

Patched Code (Conceptual):

@RestController
public class MyController {
    @PostMapping("/data")
    public ResponseEntity<?> handle(@Valid @RequestBody @ProjectedPayload MyProjection projection) {
        // Process projection with validation
        return ResponseEntity.ok().build();
    }
}

A patched version would include input validation (e.g., @Valid) and possibly a custom deserializer that enforces size limits. Additionally, the Spring Data Commons library would need to add a configuration option to limit the maximum payload size or depth.

Exploitation & Lab Setup

Red Team

Objective: Cause a Denial of Service on a target Spring application using @ProjectedPayload.

Prerequisites:

  • Target application using Spring Data Commons (affected version).
  • A controller endpoint annotated with @ProjectedPayload.
  • Network access to the endpoint.

Exploitation Steps:

  1. Identify the target endpoint. Use Shodan or manual reconnaissance to find Spring applications. Look for endpoints that accept POST requests with JSON/XML bodies.

  2. Craft a malicious payload. Create a deeply nested JSON object or a very large array. Example:

    {
      "data": {
        "nested": {
          "deep": {
            "field": "value"
          }
        }
      }
    }
    

    For maximum impact, use a payload with thousands of nested objects or a massive array.

  3. Send the request. Use curl or a script to send the payload repeatedly.

    curl -X POST https://target.com/api/data \
      -H "Content-Type: application/json" \
      -d '{"data": {"nested": {"deep": {"field": "value"}}}}'
    
  4. Monitor resource exhaustion. The target application will consume memory until it crashes or becomes unresponsive.

Note: No public exploit code is available. The above is a conceptual approach.

Blue Team

Detection:

  • Monitor for sudden spikes in memory usage on application servers.
  • Look for HTTP requests with unusually large or deeply nested JSON/XML payloads.
  • Use Web Application Firewall (WAF) rules to block requests exceeding a certain size or depth.

Mitigation:

  • Disable @ProjectedPayload if not needed.
  • Implement input validation and size limits at the controller level.
  • Use a reverse proxy (e.g., Nginx) to limit request body size.
  • Apply rate limiting to prevent repeated attacks.

Indicators of Compromise (IOCs)

  • Network IOCs:
    • HTTP POST requests with extremely large or deeply nested JSON/XML bodies.
    • Repeated requests to endpoints using @ProjectedPayload.
  • System IOCs:
    • Application logs showing OutOfMemoryError or java.lang.OutOfMemoryError.
    • High memory usage in JVM heap dumps.
    • Application crashes or unresponsive behavior.
  • File IOCs:
    • Heap dump files (.hprof) generated during the attack.

Detection Engineering

YARA Rule

rule CVE_2026_41721_Spring_Data_DoS {
    meta:
        description = "Detects potential exploitation of CVE-2026-41721 via large payloads"
        author = "Valters IT"
        date = "2026-01-01"
        reference = "https://nvd.nist.gov/vuln/detail/CVE-2026-41721"
    strings:
        $json_deep = /"\{[^}]*\{[^}]*\{[^}]*\{[^}]*\{[^}]*\{/" nocase
        $xml_deep = /<[^>]+>[^<]*<[^>]+>[^<]*<[^>]+>[^<]*<[^>]+>/ nocase
        $memory_error = "OutOfMemoryError" nocase
    condition:
        any of ($json_deep, $xml_deep) or $memory_error
}

Sigma Rule

title: CVE-2026-41721 Spring Data Commons DoS Exploitation
id: 8a9b7c6d-5e4f-3a2b-1c0d-9e8f7a6b5c4d
status: experimental
description: Detects HTTP requests with deeply nested JSON/XML payloads targeting Spring endpoints
author: Valters IT
date: 2026-01-01
logsource:
    category: webserver
    product: apache
detection:
    selection:
        cs-method: 'POST'
        cs-uri-query|contains: '/api/'
        cs-user-agent|contains: 'curl'
    condition: selection
falsepositives:
    - Legitimate complex payloads from trusted sources
level: high

Suricata Rule

alert http $HOME_NET any -> $EXTERNAL_NET any (
    msg:"CVE-2026-41721 Spring Data Commons DoS Attempt";
    flow:to_server,established;
    content:"POST"; http_method;
    content:"/api/"; http_uri;
    pcre:"/\{[^}]*\{[^}]*\{[^}]*\{/";
    sid:1000001;
    rev:1;
    reference:cve,2026-41721;
    classtype:attempted-dos;
    priority:2;
)

Remediation & Mitigation

Immediate Actions:

  1. Disable @ProjectedPayload in all controller methods if not required.
  2. Implement input validation using @Valid and custom validators to limit payload size and depth.
  3. Configure a reverse proxy (e.g., Nginx, Apache) to limit request body size:
    client_max_body_size 1m;
    
  4. Apply rate limiting to prevent repeated requests from the same source.

Long-term Fix:

  • Monitor the Spring Security Advisories for an official patch.
  • Upgrade to a patched version once released (e.g., Spring Data Commons 4.0.6 or later).
  • Consider using a Web Application Firewall (WAF) with rules to block deeply nested payloads.

Workaround:

  • If upgrading is not possible, implement a custom HandlerInterceptor to reject requests with excessive nesting or size before they reach the controller.

Valters IT
Securing Digital Frontiers

◈ SOURCE Analysis & enrichment: valtersit.com/cve/CVE-2026-41721/ · CVE data: NVD/MITRE (public domain) · © 2026 ValtersIT Hub
>_ SYSTEM_CORE: INTEL_ACTIVE
90% TEAM-CURATED // 10% AUTOMATED INGESTION.
ALL PATCH REFERENCES AND VERSION DATA SOURCED FROM NVD + OSV OFFICIAL REGISTRIES.