Cloudanix VulnDB

CVE-2025-25193

Medium · 5.5

Denial of Service attack on windows app using Netty

CVSS

5.5

EPSS

0.4%

Published

Feb 10, 2025

CISA due date

—

Cloudanix analysis

Next patch cycle SSVC: Track

A flaw in a common Java networking component can let someone who can write files on a Windows server crash affected applications by placing an oversized file in a location the software mistakenly reads.

Exploitation
Local Privilege
Attacker needs
Local User
Complexity
Moderate
Impact
Denial Of Service
Component
Library
Class
Denial of service
Remediation
Upgrade
Effort
Medium
Patch risk
Low

What it actually does

This flaw is a local denial-of-service condition in Netty on Windows. A vulnerable Netty-based application may attempt to read a Unix-style environment or operating-system metadata file path that normally does not exist on Windows. If an attacker with local file-write capability creates that expected file as an extremely large file, Netty can read it unsafely and exhaust memory or otherwise crash the Java process. The impact is availability loss only; the issue does not directly provide remote code execution, privilege escalation, or data disclosure.

Why it matters to the business

Applications that depend on vulnerable Netty builds can be crashed by someone who can write files to the affected Windows filesystem location, causing service downtime, failed transactions, degraded customer-facing availability, or disruption to internal systems that rely on Netty-based networking. The public exploitation signal is currently low, with EPSS at 0.00384, no known CISA KEV listing, no known ransomware association, and no reported exploit maturity, but Netty is widely embedded in Java applications and frameworks, so exposure may exist indirectly through packaged dependencies.

How an attack unfolds

An attacker first needs local or equivalent file-write access to a Windows system running a vulnerable Netty-based Java application. The attacker identifies the Unix-style environment file path that Netty will try to read on Windows and creates the missing path and file, such as a drive-rooted etc/os-release-style file, with an abnormally large size. When the vulnerable application starts, restarts, initializes the affected Netty code path, or otherwise triggers environment detection, Netty attempts to read the attacker-created file. Because the file is read unsafely, the Java process can consume excessive memory and terminate with an out-of-memory error or crash, resulting in denial of service until the file is removed and the application is restarted or Netty is upgraded.

How to fix it

Upgrade Netty to a version that includes the upstream fix commit d1fbda62d3a47835d3fb35db8bd42ecc205a5386 or any later official release containing that change. Because Netty is often bundled transitively, inspect all Java dependency manifests, lockfiles, shaded JARs, container images, vendor packages, and application servers for vulnerable Netty components, including io.netty modules. If an immediate upgrade is not possible, mitigate by preventing untrusted users and service accounts from creating drive-rooted etc/os-release-style files on Windows hosts, removing any unexpected environment metadata files from Windows drive roots, enforcing least-privilege filesystem permissions, and monitoring for creation of unusually large files at those paths. Restart affected applications only after the malicious or oversized file has been removed or the dependency has been patched.

How to confirm the fix worked

Confirm the deployed Netty source or binary includes commit d1fbda62d3a47835d3fb35db8bd42ecc205a5386 or a later release that incorporates it. Validate software composition analysis results for all direct and transitive Netty dependencies, including shaded or repackaged copies. On Windows systems, verify that unexpected drive-rooted etc/os-release-style files do not exist and that normal application users cannot create them. In a controlled non-production environment, test startup or initialization behavior with a safely bounded test file at the relevant path and confirm the patched application does not perform unsafe unbounded reads or crash. Review recent crash logs before and after remediation to ensure OutOfMemoryError or abnormal Java process exits associated with os-release/environment-file reads no longer occur.

Typical attack path

  1. Gain local access, malware execution, misconfigured file-write access, or another foothold that permits creating files on the Windows host filesystem.
  2. Create the expected Unix-style environment metadata path on Windows, commonly resembling an etc/os-release path at the drive root.
  3. Populate the file with excessive data intended to force high memory consumption during Netty initialization or environment detection.
  4. Wait for or trigger restart/initialization of the vulnerable Netty-based application.
  5. The application reads the large file, exhausts memory or crashes, and the dependent service becomes unavailable.
  6. Repeat the crash by leaving the file in place until the vulnerable Netty dependency is patched or the malicious file is removed.

How to detect it

Look for evidence that a large environment metadata file was created on Windows shortly before Java or Netty-based services crashed. Useful sources include Windows Security file auditing events if enabled, Sysmon file creation events, EDR file telemetry, application logs, JVM crash logs, Windows Application event logs, service manager restart events, container runtime logs, and SIEM records for process termination or memory exhaustion. Correlate creation or modification of drive-rooted etc/os-release-style files with java.exe or javaw.exe OutOfMemoryError messages, abnormal exits, repeated service restarts, or high memory consumption. Investigate the user, process, or parent process that created the file, especially if it was not an installer, administrator maintenance task, or expected configuration management activity. Since this issue is a denial-of-service flaw rather than code execution, the strongest indicators are suspicious file creation at the relevant path plus temporally related Netty/Java application crashes.

  • C:\etc\os-release
  • D:\etc\os-release
  • \etc\os-release
  • /etc/os-release
  • OutOfMemoryError
  • java.lang.OutOfMemoryError
  • java.exe
  • javaw.exe
  • io.netty
  • Netty
  • os-release

What your security team should do

  • Inventory applications, services, containers, and vendor products that include Netty, prioritizing Windows deployments.
  • Upgrade all affected Netty components to builds containing commit d1fbda62d3a47835d3fb35db8bd42ecc205a5386 or later fixed releases.
  • Search Windows hosts for unexpected or oversized etc/os-release-style files at drive roots and remove suspicious instances after preserving forensic evidence where appropriate.
  • Harden filesystem permissions so non-administrative users and application identities cannot create arbitrary files or directories at drive roots.
  • Add endpoint and SIEM detections for creation or modification of drive-rooted etc/os-release files and for Java crashes associated with OutOfMemoryError near Netty initialization.
  • For critical services, perform dependency verification on shaded JARs and vendor-supplied packages because Netty may not appear as an obvious top-level dependency.
  • Treat this as a moderate-priority availability issue: exploit likelihood is currently low, but remediation should be included in routine dependency patch cycles, especially for Windows-hosted production services.

The record

An unsafe reading of environment file could potentially cause a denial of service in Netty. When loaded on an Windows application, Netty attemps to load a file that does not exist. If an attacker creates such a large file, the Netty application crash.

Affected packages

Ecosystem Package Introduced Fixed
Maven io.netty:netty-common 0 4.1.118.Final
Chainguard akhq 0 0
Chainguard apache-activemq-artemis 0 0
Chainguard apache-activemq-artemis-compat 0 0
Chainguard apache-nifi 0 0
Chainguard apache-nifi-compat 0 0
Chainguard apache-nifi-toolkit 0 0
Chainguard apache-pulsar 0 0
Chainguard apache-pulsar-compat 0 0
Chainguard apicurio-registry 0 0
Chainguard apicurio-registry-nginx-config 0 0
Chainguard apicurio-registry-ui 0 0
Chainguard camunda-zeebe 0 8.6.9-r1
Chainguard camunda-zeebe-compat 0 8.6.9-r1
Chainguard cassandra-5.0 0 0
Chainguard cassandra-5.0-compat 0 0
Chainguard cassandra-5.0-entrypoint-compat 0 0
Chainguard cassandra-5.0-iamguarded-compat 0 0
Chainguard cassandra-fips-5.0 0 0
Chainguard cassandra-fips-5.0-compat 0 0
Chainguard cassandra-reaper 0 0
Chainguard celeborn-0.5-compat 0 0.5.4-r9
Chainguard cqlsh-5.0 0 0
Chainguard cqlsh-fips-5.0 0 0
Chainguard docker-selenium 0 0
Chainguard docker-selenium-base 0 0
Chainguard docker-selenium-compat 0 0
Chainguard docker-selenium-config 0 0
Chainguard docker-selenium-distributor 0 0
Chainguard docker-selenium-event-bus 0 0
Chainguard docker-selenium-hub 0 0
Chainguard docker-selenium-jre-bcfips 0 0
Chainguard docker-selenium-jre-bcfips-supervisor-config 0 0
Chainguard docker-selenium-node-base 0 0
Chainguard docker-selenium-node-chromium 0 0
Chainguard docker-selenium-node-docker 0 0
Chainguard docker-selenium-node-firefox 0 0
Chainguard docker-selenium-router 0 0
Chainguard docker-selenium-session-queue 0 0
Chainguard docker-selenium-sessions 0 0
Chainguard docker-selenium-standalone 0 0
Chainguard docker-selenium-standalone-chrome 0 0
Chainguard docker-selenium-standalone-chromium 0 0
Chainguard docker-selenium-standalone-docker 0 0
Chainguard docker-selenium-standalone-firefox 0 0
Chainguard docker-selenium-supervisor-config 0 0
Chainguard druid 0 0
Chainguard druid-compat 0 0
Chainguard elasticsearch-7 0 0
Chainguard elasticsearch-7-bitnami 0 0
Chainguard elasticsearch-7-iamguarded 0 0
Chainguard elasticsearch-8 0 0
Chainguard elasticsearch-8-bitnami 0 0
Chainguard elasticsearch-8-config 0 0
Chainguard elasticsearch-8-iamguarded 0 0
Chainguard elasticsearch-config 0 0
Chainguard elasticsearch-fips-8 0 0
Chainguard elasticsearch-fips-8-bitnami 0 0
Chainguard elasticsearch-fips-8-config 0 0
Chainguard elasticsearch-fips-8-policy-140-2 0 0
Chainguard elasticsearch-fips-8-policy-140-3 0 0
Chainguard flyway 0 0
Chainguard grpc-java-fips-1.56.0 0 0
Chainguard grpc-java-fips-1.56.0-m2 0 0
Chainguard hadoop-fips-3.3.6 0 3.3.6-r15
Chainguard kafka-3.7 0 0
Chainguard kafka-3.8 0 3.8.1-r46
Chainguard kafka-3.9 0 0
Chainguard kafka-bitnami-compat-3.7 0 0
Chainguard kafka-bitnami-compat-3.8 0 0
Chainguard kafka-bitnami-compat-3.9 0 0
Chainguard kafka-jre-bcfips 0 0
Chainguard kafka-strimzi-compat 0 0
Chainguard kafka_exporter-strimzi-compat 0 0
Chainguard keycloak 0 26.1.3-r0
Chainguard keycloak-bitnami-compat 0 26.1.3-r0
Chainguard keycloak-bitnami-fips 0 0
Chainguard keycloak-compat 0 26.1.3-r0
Chainguard keycloak-fips 0 0
Chainguard keycloak-fips-bitnami-compat 0 0
Chainguard keycloak-fips-policy-140-2 0 0
Chainguard keycloak-fips-policy-140-3 0 0
Chainguard keycloak-iamguarded-compat 0 26.1.3-r0
Chainguard keycloak-iamguarded-fips 0 0
Chainguard keycloak-operator 0 26.1.2-r2
Chainguard keycloak-operator-compat 0 26.1.2-r2
Chainguard knative-kafka-broker-1.17-dispatcher-loom 0 1.17.3-r8
Chainguard knative-kafka-broker-1.17-receiver-loom 0 1.17.3-r8
Chainguard kserve-modelmesh 0 0
Chainguard kserve-modelmesh-compat 0 0
Chainguard localstack 0 4.10.0-r0
Chainguard localstack-compat 0 4.10.0-r0
Chainguard logstash-8 0 0
Chainguard logstash-8-bitnami-compat 0 0
Chainguard logstash-8-compat 0 0
Chainguard logstash-8-env2yaml 0 0
Chainguard logstash-8-iamguarded-compat 0 0
Chainguard logstash-8-with-output-opensearch 0 0
Chainguard logstash-jre-bcfips 0 0
Chainguard logstash-jre-bcfips-compat 0 0
Chainguard logstash-jre-bcfips-env2yaml 0 0
Chainguard logstash-jre-bcfips-with-output-opensearch 0 0
Chainguard management-api-for-apache-cassandra-4.0 0 0
Chainguard management-api-for-apache-cassandra-4.0-compat 0 0
Chainguard management-api-for-apache-cassandra-4.1 0 0
Chainguard management-api-for-apache-cassandra-4.1-compat 0 0
Chainguard management-api-for-apache-cassandra-5.0 0 0
Chainguard management-api-for-apache-cassandra-5.0-compat 0 0
Chainguard neo4j-4.4 0 0
Chainguard neo4j-4.4-docker-publish 0 0
Chainguard neo4j-5.26 0 0
Chainguard neo4j-5.26-docker-publish 0 0
Chainguard neo4j-5.26-oci-entrypoint 0 0
Chainguard opensearch-2 0 0
Chainguard opensearch-2-alerting 0 0
Chainguard opensearch-2-analysis-icu 0 0
Chainguard opensearch-2-analysis-kuromoji 0 0
Chainguard opensearch-2-analysis-nori 0 0
Chainguard opensearch-2-analysis-phonetic 0 0
Chainguard opensearch-2-analysis-smartcn 0 0
Chainguard opensearch-2-analysis-stempel 0 0
Chainguard opensearch-2-analysis-ukrainian 0 0
Chainguard opensearch-2-anomaly-detection 0 0
Chainguard opensearch-2-asynchronous-search 0 0
Chainguard opensearch-2-cross-cluster-replication 0 0
Chainguard opensearch-2-crypto-kms 0 0
Chainguard opensearch-2-custom-codecs 0 0
Chainguard opensearch-2-discovery-azure-classic 0 0
Chainguard opensearch-2-discovery-ec2 0 0
Chainguard opensearch-2-discovery-gce 0 0
Chainguard opensearch-2-entrypoint-compat 0 0
Chainguard opensearch-2-geospatial 0 0
Chainguard opensearch-2-identity-shiro 0 0
Chainguard opensearch-2-index-management 0 0
Chainguard opensearch-2-ingest-attachment 0 0
Chainguard opensearch-2-job-scheduler 0 0
Chainguard opensearch-2-jre-bcfips 0 0
Chainguard opensearch-2-jre-bcfips-alerting 0 0
Chainguard opensearch-2-jre-bcfips-analysis-icu 0 0
Chainguard opensearch-2-jre-bcfips-analysis-kuromoji 0 0
Chainguard opensearch-2-jre-bcfips-analysis-nori 0 0
Chainguard opensearch-2-jre-bcfips-analysis-phonetic 0 0
Chainguard opensearch-2-jre-bcfips-analysis-smartcn 0 0
Chainguard opensearch-2-jre-bcfips-analysis-stempel 0 0
Chainguard opensearch-2-jre-bcfips-analysis-ukrainian 0 0
Chainguard opensearch-2-jre-bcfips-anomaly-detection 0 0
Chainguard opensearch-2-jre-bcfips-asynchronous-search 0 0
Chainguard opensearch-2-jre-bcfips-cross-cluster-replication 0 0
Chainguard opensearch-2-jre-bcfips-crypto-kms 0 0
Chainguard opensearch-2-jre-bcfips-custom-codecs 0 0
Chainguard opensearch-2-jre-bcfips-discovery-azure-classic 0 0
Chainguard opensearch-2-jre-bcfips-discovery-ec2 0 0
Chainguard opensearch-2-jre-bcfips-discovery-gce 0 0
Chainguard opensearch-2-jre-bcfips-geospatial 0 0
Chainguard opensearch-2-jre-bcfips-identity-shiro 0 0
Chainguard opensearch-2-jre-bcfips-index-management 0 0
Chainguard opensearch-2-jre-bcfips-ingest-attachment 0 0
Chainguard opensearch-2-jre-bcfips-job-scheduler 0 0
Chainguard opensearch-2-jre-bcfips-k-nn 0 0
Chainguard opensearch-2-jre-bcfips-mapper-annotated-text 0 0
Chainguard opensearch-2-jre-bcfips-mapper-murmur3 0 0
Chainguard opensearch-2-jre-bcfips-mapper-size 0 0
Chainguard opensearch-2-jre-bcfips-ml-commons 0 0
Chainguard opensearch-2-jre-bcfips-neural-search 0 0
Chainguard opensearch-2-jre-bcfips-notifications 0 0
Chainguard opensearch-2-jre-bcfips-observability 0 0
Chainguard opensearch-2-jre-bcfips-performance-analyzer 0 0
Chainguard opensearch-2-jre-bcfips-reporting 0 0
Chainguard opensearch-2-jre-bcfips-repository-azure 0 0
Chainguard opensearch-2-jre-bcfips-repository-gcs 0 0
Chainguard opensearch-2-jre-bcfips-repository-s3 0 0
Chainguard opensearch-2-jre-bcfips-security 0 0
Chainguard opensearch-2-jre-bcfips-security-analytics 0 0
Chainguard opensearch-2-jre-bcfips-sql 0 0
Chainguard opensearch-2-jre-bcfips-store-smb 0 0
Chainguard opensearch-2-jre-bcfips-telemetry-otel 0 0
Chainguard opensearch-2-jre-bcfips-transport-nio 0 0
Chainguard opensearch-2-k-nn 0 0
Chainguard opensearch-2-mapper-annotated-text 0 0
Chainguard opensearch-2-mapper-murmur3 0 0
Chainguard opensearch-2-mapper-size 0 0
Chainguard opensearch-2-ml-commons 0 0
Chainguard opensearch-2-neural-search 0 0
Chainguard opensearch-2-notifications 0 0
Chainguard opensearch-2-observability 0 0
Chainguard opensearch-2-performance-analyzer 0 0
Chainguard opensearch-2-reporting 0 0
Chainguard opensearch-2-repository-azure 0 0
Chainguard opensearch-2-repository-gcs 0 0
Chainguard opensearch-2-repository-s3 0 0
Chainguard opensearch-2-security 0 0
Chainguard opensearch-2-security-analytics 0 0
Chainguard opensearch-2-sql 0 0
Chainguard opensearch-2-store-smb 0 0
Chainguard opensearch-2-telemetry-otel 0 0
Chainguard opensearch-2-transport-nio 0 0
Chainguard prometheus-jmx-exporter-strimzi-compat 0 0
Chainguard pyspark-scala-2.13 0 0
Chainguard selenium 0 0
Chainguard selenium-jre-bcfips 0 0

Related vulnerabilities