☠️
EXFILTRATING
DATA...
01010111 10110010 00101001 11000110 01101100 10011011 00010001 11100101 01000010 10101111
[ <-- BACK_TO_SEARCH ]
[ WEBSITE ] [ VENDOR STATS ]
CVSS: 9.8 CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H

CVE-2024-23086

CVE-2024-23086
📅 PUBLISHED: 2024-04-08 00:00 UTC 🔄 UPDATED: 2026-10-19 01:06 UTC
[ ZERO-DAY / UNPATCHED ] [ DEFENSE PATCH ↓ ]
💣 PoC: None
👁️
Proof of Concept - Indicates if functional exploit code is publicly available, drastically increasing the risk of immediate attacks.
🎯 EPSS: 0.71%
👁️
0.71% probability
17.8× above the median CVE
Tier: ELEVATED
30-day exploitation window · FIRST.org · updated daily
🥷 MITRE: T1210
👁️
MITRE ATT&CK Tactic - Describes the strategy hackers use to execute this attack.
License: Open Source
VULNERABLE: UNKNOWN / CHECK VENDOR
CVSS VECTOR BREAKDOWN 9.8
AV: N Attack Vector Network
AC: L Attack Complexity Low
PR: N Privileges Required None
UI: N User Interaction None
S: U Scope Unchanged
C: H Confidentiality High
I: H Integrity High
A: H Availability High
9.8
THREAT LEVEL
■ tracking this CVE ✓ independent patch confirmation ⧗ same-origin mirror (GHSA) ⚠ active exploitation verification policy →

Executive Summary

CVE-2024-23086 is a reported stack overflow vulnerability in Apfloat v1.10.1, specifically located in the org.apfloat.internal.DoubleModMath::modPow(double, double, double) method. Apfloat is a high-precision arithmetic library for Java that is commonly embedded in enterprise applications requiring arbitrary-precision mathematical operations, including financial systems, scientific computing platforms, and cryptographic implementations. The claimed vulnerability carries a critical CVSS base score of 9.8, indicating potential for remote code execution, data corruption, or denial-of-service.

However, analysts must note that the validity of this CVE is heavily disputed by multiple third parties. The original submission appears to have been generated by an automated vulnerability scanning tool of questionable reliability, and no evidence of real-world exploitation exists. This creates a complex scenario where security teams must weigh the high severity rating against the low confidence in the vulnerability's existence. We recommend treating this as a low-priority but verifyable finding and advise manual validation before patching or implementing compensating controls.

⚡ 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

Technical Analysis

Vulnerability Mechanism

The claimed vulnerability resides in the modPow(double, double, double) method within the DoubleModMath class of the Apfloat library version 1.10.1. This method implements modular exponentiation using double-precision floating-point arithmetic — an operation that computes (base^exponent) mod modulus for large numerical values.

The theoretical flaw is a stack-based buffer overflow triggered when the method processes specially crafted input parameters. In Java, stack overflows typically manifest as StackOverflowError exceptions rather than traditional memory corruption, because the JVM manages memory through its own stack and heap models. However, if the modPow method uses native code (JNI) or performs array operations without proper bounds checking, a genuine stack overflow could lead to undefined behavior including memory corruption or arbitrary code execution.

The attack surface is exposed when untrusted input is passed directly to this method without proper validation. In a typical enterprise deployment, Apfloat might process:

  • User-supplied mathematical expressions from web forms
  • Configuration values for cryptographic key generation
  • Data from API requests that involve large-number arithmetic
  • Financial calculation inputs from transaction processing systems

Crucially, the actual exploitability is questionable. The method signature modPow(double, double, double) operates on primitive doubles — not objects — so a stack overflow from double arithmetic alone is improbable without an underlying native implementation. The disputed nature of this CVE suggests the scanner may have flagged a false positive based on deep call-stack recursion patterns that are normal in mathematical libraries.

Affected Components

The specific class org.apfloat.internal.DoubleModMath is part of Apfloat's internal implementation package. Applications that directly import or invoke this low-level class are at risk. Most applications use the higher-level ApfloatMath or Apfloat classes, which may not expose the vulnerable method directly — reducing the practical attack surface.


Exploitation Scenarios

Attack Chain Step 1: Target Reconnaissance

An attacker first identifies applications using Apfloat v1.10.1. This can be done by:

  1. Scanning public code repositories (GitHub, GitLab) for pom.xml or build.gradle files referencing org.apfloat:apfloat:1.10.1
  2. Using Shodan or Censys to identify internet-facing Java applications that expose endpoints processing large-number arithmetic
  3. Fingerprinting applications through error messages that reference org.apfloat.* package names
  4. Analyzing publicly accessible JAR files or class files to identify version numbers

Attack Chain Step 2: Crafting the Malicious Input

The attacker crafts input that reaches the modPow method with parameters designed to cause deep recursion or trigger a buffer overflow:

// Example malicious invocation that could reach DoubleModMath.modPow
double base = Double.MAX_VALUE;
double exponent = Double.MAX_VALUE;
double modulus = 1.0e-300; // Extremely small modulus causes high iteration count

// If application exposes this via RMI, REST API, or serialization:
// POST /api/calculate {"operation":"modpow","base":1.7976931348623157E308,
//                      "exponent":1.7976931348623157E308,"modulus":1.0E-300}

The mathematical implementation of modular exponentiation typically uses a square-and-multiply algorithm with bit-by-bit processing of the exponent. For a double value, the exponent has up to 53 bits of mantissa, potentially resulting in 53 iterations minimum. However, if the modulus is extremely small, each modular reduction step could trigger additional processing, accumulating stack frames.

Alternatively, if the method extracts the fractional or exponent components of doubles and uses them as loop counters without validation, an attacker could supply values like NaN (Not a Number) or Infinity to trigger unexpected behavior:

base = Double.NaN;
exponent = Double.POSITIVE_INFINITY;
modulus = 0.0; // Division by zero inside modPow

Attack Chain Step 3: Delivery and Execution

The crafted parameters are delivered via whichever input channel the target application exposes:

  • Web Application: Form fields, JSON payloads, or query parameters passed to a calculation endpoint
  • RMI/CORBA: Java Remote Method Invocation calls to methods that internally invoke Apfloat operations
  • Serialization: Deserialization of Java objects containing Apfloat data structures (e.g., Apfloat objects with malicious internal state)
  • File Processing: CSV or XML files with numeric data fields processed by the application

Attack Chain Step 4: Post-Exploitation Impact

If the stack overflow is successfully triggered:

  1. Denial of Service: The application thread crashes with StackOverflowError, potentially taking down the entire JVM if unhandled, affecting availability for all users
  2. Memory Corruption: If the overflow writes beyond stack boundaries, attacker-controlled data could overwrite adjacent memory structures, potentially enabling arbitrary code execution with the application's privileges
  3. Data Integrity: If the overflow corrupts heap objects used in financial calculations, it could alter computation results, leading to incorrect transaction amounts or cryptographic key derivation errors

Given the disputed nature, the most realistic outcome is a DoS condition rather than RCE. However, security teams should not dismiss the possibility of more severe consequences if the underlying implementation uses native code (e.g., JNI bindings to a C library like GMP for high-performance arithmetic).


Impact Assessment

CVSS Score: 9.8 (Critical) — This score reflects the theoretical worst-case impact: unauthenticated remote exploitation with high confidentiality, integrity, and availability impact.

Business Impact:

  • Service Availability: Exploitation could crash JVM instances, causing downtime for applications relying on Apfloat for mathematical operations
  • Data Integrity: Financial, scientific, and cryptographic calculations could be corrupted, undermining trust in computed results
  • Security Boundary Breach: If RCE is achievable, attackers gain code execution within the application's security context, potentially accessing sensitive data and lateral movement opportunities

Affected Systems:

  • Java applications using Apfloat 1.10.1 as a library
  • Systems processing arbitrary-precision arithmetic for critical operations
  • Applications that expose calculation endpoints to untrusted users
  • Legacy systems that bundle Apfloat and are not regularly updated

Blast Radius:

  • Single-server DoS (most likely scenario)
  • Multi-instance collapse if load-balanced applications share the same codebase
  • Supply chain propagation if Apfloat is embedded in third-party products

EPSS Consideration: Not yet scored by FIRST.org. This absence of scoring suggests the vulnerability has low observed exploitation activity, supporting the theory that this may be a false positive.

CISA KEV Status: Not listed in the Known Exploited Vulnerabilities catalog, further reducing concern about active exploitation.


Detection Guidance

Sigma Rule

title: Potential CVE-2024-23086 Apfloat Stack Overflow Exploitation Attempt
id: 3f6a9c2e-7d41-4f8b-9a1e-5c2b3d4e6789
status: experimental
description: Detects Java stack overflow exceptions related to Apfloat DoubleModMath modPow operations
references:
    - https://nvd.nist.gov/vuln/detail/CVE-2024-23086
tags:
    - attack.t1210
    - attack.impact
logsource:
    category: application
    product: java
detection:
    selection_stackoverflow:
        event.error.type: 'StackOverflowError'
    selection_apfloat_class:
        event.error.message|contains: 'org.apfloat.internal.DoubleModMath'
    condition: selection_stackoverflow AND selection_apfloat_class
falsepositives:
    - Legitimate high-complexity mathematical computations causing benign stack depth
    - Malformed input crashing application in non-malicious scenarios
level: medium

YARA Rule

rule CVE_2024_23086_Apfloat_StackOverflow_Signature
{
    meta:
        author = "Valters IT Security Research"
        description = "Detects artifacts or log entries indicating Apfloat modPow stack overflow exploitation"
        cve = "CVE-2024-23086"
        date = "2024-01-15"
        severity = "critical"
        reference = "https://nvd.nist.gov/vuln/detail/CVE-2024-23086"

    strings:
        $apfloat_class = "org/apfloat/internal/DoubleModMath" ascii
        $apfloat_method = "modPow" ascii
        $stack_error = "StackOverflowError" ascii
        $stack_trace = "java.lang.StackOverflowError" ascii
        $double_signature = "(DDD)D" ascii  // modPow(double,double,double) returning double

    condition:
        uint16(0) == 0x4A42 and // JAR/PK or class file marker if examining binaries
        any of them
}

Suricata IDS Rule

alert http any any -> any any (
    msg:"CVE-2024-23086 Apfloat modPow Stack Overflow Attempt - Web Request";
    content:"modPow"; classtype:attempted-dos;
    sid:202423086; rev:1; metadata:created_at 2024-01-15;
    reference:cve,2024-23086;
    flow:to_server,established;
    content:"operation"; nocase;
    pcre:"/(modpow|modular.exponentiation|powmod)/i";
)

Note: Since Apfloat is a library used in various application contexts, network rules can only detect suspicious patterns in protocol payloads that reference the mathematical operation. Application-layer monitoring is the primary detection method.

Elastic Detection EQL

sequence by host.name, process.pid
  [process where event.action == "java_process_start" and
   process.args : "*apfloat*"]
  [file where event.action == "file_execute" and
   file.name : "*.jar" and
   file.path : "*apfloat*"]
  [logs where event.code == "1337" and
   // Placeholder for application log intake; replace with actual log source
   message : "*StackOverflowError*org.apfloat.internal.DoubleModMath*"]

Splunk SPL Query

index=java_apps (
    "StackOverflowError" OR "java.lang.StackOverflowError"
) 
| rex field=_raw "org\.apfloat\.internal\.DoubleModMath"
| where like(_raw, "%DoubleModMath%") AND like(_raw, "%modPow%")
| transaction host maxspan=1m
| stats count by host, source, sourcetype
| where count > 1
| eval severity = "high"
| table _time, host, count, source, sourcetype, _raw

Wazuh OSSEC Rule

<group name="apfloat,">
    <rule id="100230" level="12">
        <if_sid>100231</if_sid>
        <match>java.lang.StackOverflowError</match>
        <match>org.apfloat.internal.DoubleModMath</match>
        <match>modPow</match>
        <description>Apfloat (CVE-2024-23086) stack overflow exploitation attempt detected</description>
        <mitre>
            <tactic id="TA0040">Impact</tactic>
        </mitre>
        <group>attack.t1210,</group>
        <info type="cve">CVE-2024-23086</info>
    </rule>

    <rule id="100231" level="6">
        <if_sid>100230</if_sid>
        <match>StackOverflowError</match>
        <description>Java stack overflow error occurred. Checking for Apfloat association.</description>
    </rule>
</group>

Mitigation & Patch Guidance

Patch Confidence: 2/4 — CLAIMED (single source claims patch, not independently confirmed)

Immediate Mitigations (While Validation is Pending)

  1. Validate CVE Validity: Contact your Apfloat vendor/distribution channel to confirm whether libapfloat 1.10.1 is genuinely affected. The dispute from multiple third parties suggests a potential false positive.
  2. Input Validation: If you cannot patch immediately, add strict input validation to any endpoint that passes user-controlled values to Apfloat mathematical operations:
    • Reject NaN, Infinity, and -Infinity inputs
    • Bound the exponent and modulus values to reasonable ranges
    • Enforce maximum request sizes for calculation endpoints
  3. Update Apfloat: Check for a newer version of Apfloat (1.10.2+ or later) that may have addressed the claimed issue. Even if the CVE is questionable, staying current with library updates is a sound practice.
  4. Runtime Protection: Enable JVM flags to catch and handle stack overflows gracefully:
    -XX:+UseContainerSupport
    -XX:ErrorFile=/var/log/java/hs_err_pid%p.log
    -XX:+HeapDumpOnOutOfMemoryError
    

Patch/Upgrade Steps

  1. Check Dependency Management: In your Maven pom.xml or Gradle build.gradle, verify the Apfloat version:
    <dependency>
        <groupId>org.apfloat</groupId>
        <artifactId>apfloat</artifactId>
        <version>1.10.1</version> <!-- Update this -->
    </dependency>
    
  2. Update to Latest Version: Update to the newest Apfloat release available from Maven Central or the official Apfloat website.
  3. Verify Patch Integrity: If a patched version is claimed, download and verify checksums from official sources. Do not rely on third-party redistributions.
  4. Regression Testing: After upgrading, run your full test suite, especially any tests covering mathematical operations, to ensure compatibility.

Long-Term Hardening

  1. Dependency Scanning: Integrate SCA (Software Composition Analysis) tools like OWASP Dependency-Check, Snyk, or JFrog Xray into your CI/CD pipeline to automatically flag known vulnerable versions of Apfloat and other libraries.
  2. Sandboxing: If arbitrary-precision math is required for untrusted inputs, consider isolating those operations in a separate, restricted Java process or using a safe alternative library (e.g., java.math.BigDecimal with bounded precision).
  3. Runtime Stack Monitoring: Implement application metrics that alert on StackOverflowError exceptions, enabling rapid response to potential exploitation attempts.
  4. Threat Modeling: Document which application functions use Apfloat and conduct a threat model review to identify all input paths that could reach the claimed vulnerable method.

References

  1. NVD Entry: https://nvd.nist.gov/vuln/detail/CVE-2024-23086 — Official CVE details, including the disputed status and CVSS score.
  2. Apfloat Official Site: http://www.apfloat.org/ — Vendor website for library downloads, documentation, and release information.
  3. Maven Central Repository: https://mvnrepository.com/artifact/org.apfloat/apfloat — Dependency metadata and version history for Apfloat artifacts.
  4. CISA Known Exploited Vulnerabilities Catalog: https://www.cisa.gov/known-exploited-vulnerabilities-catalog — Confirms this CVE is NOT listed; no evidence of active exploitation in the wild.
  5. FIRST.org EPSS: https://www.first.org/epss/ — EPSS score not yet assigned, indicating low exploitation activity data for this CVE.

Exploit-in-the-Wild Evidence: None reported. No threat actor campaigns associated with this CVE have been identified. The vulnerability's disputed status, lack of exploit code, absence of a Nuclei template, and no EPSS score all strongly suggest this is a low-priority, possibly false-positive finding. Security teams should allocate resources to higher-confidence vulnerabilities unless this CVE is validated through independent reproduction.

◈ SOURCE Analysis & enrichment: valtersit.com/cve/CVE-2024-23086/ · 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.