Cloudanix VulnDB

CVE-2024-47535

Medium · 5.5

CVSS

5.5

EPSS

0.4%

Published

Nov 12, 2024

CISA due date

—

Cloudanix analysis

Next patch cycle SSVC: Track

A flaw in a common software component on Windows systems could allow a local user to crash an application by creating a very large file, making the service unavailable.

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

What it actually does

A vulnerability in the Netty framework on Windows systems allows for a denial of service. The framework attempts to read a specific file, and if a local attacker creates an extremely large file at that location, the application will try to load it, leading to excessive memory consumption and a subsequent crash of the application process.

Why it matters to the business

Applications relying on the vulnerable Netty library can be rendered unavailable by a local, low-privileged attacker. This can lead to service outages for critical business functions, impacting customers, operations, and revenue. The requirement for local access lowers the immediate threat compared to a remote vulnerability, but it poses a significant risk on multi-user systems or as part of a post-compromise attack chain.

How an attack unfolds

An attacker with low-privileged local access to a Windows system first identifies an application using a vulnerable version of Netty. The attacker then determines the specific, predictable file path that Netty attempts to access. By creating a file of an exceptionally large size at this location, the attacker sets a trap. When the Netty-based application is next launched or performs an action that triggers the file read, it will attempt to load the entire large file into memory. This exhausts available system resources, causing the application to crash and resulting in a denial of service.

How to fix it

To remediate this vulnerability, developers must upgrade the Netty library to version 4.1.115 or later. This involves updating the dependency in the project's build configuration (e.g., pom.xml, build.gradle), rebuilding the application, and deploying the updated version. The fix is contained in commit 04f9b4a827d992ad439823eeba85d65d3a89c265 and later.

How to confirm the fix worked

To validate exposure, use a software composition analysis (SCA) tool or manually inspect application dependencies to find instances of Netty versions prior to 4.1.115 on Windows systems. To confirm the fix, verify that deployed applications are running with Netty 4.1.115 or a newer version. On a non-production system, you can attempt to reproduce the vulnerability by creating a large file in the expected path and observing if the application crashes; a patched system should not crash.

Typical attack path

  1. An attacker gains local, low-privileged user access to a target Windows host.
  2. The attacker identifies an application using a vulnerable version of the Netty library.
  3. The attacker creates a very large file in the specific path that the Netty library attempts to read from.
  4. The Netty-based application is started or performs an operation that triggers the vulnerable file read.
  5. The application attempts to load the large file, exhausts memory, and crashes.

How to detect it

To detect potential exploitation, monitor for unexpected application crashes on Windows systems, particularly those related to memory exhaustion or file I/O errors. Correlate these events with file system audit logs, looking for the creation of unusually large files by low-privileged users in application directories or other predictable paths. Review application logs for errors indicating a failure to read or process a file right before a crash.

What your security team should do

  • Identify all applications using the Netty library on Windows systems and prioritize patching for critical services and multi-user systems.
  • Direct development teams to upgrade their projects to use Netty version 4.1.115 or newer and redeploy the applications.
  • As a temporary mitigation where patching is not immediately possible, investigate tightening file system permissions to prevent low-privileged users from creating files in the path Netty attempts to read.

The record

Netty is an asynchronous event-driven network application framework for rapid development of maintainable high performance protocol servers & clients. An unsafe reading of environment file could potentially cause a denial of service in Netty. When loaded on an Windows application, Netty attempts to load a file that does not exist. If an attacker creates such a large file, the Netty application crashes. This vulnerability is fixed in 4.1.115.

Affected packages

Ecosystem Package Introduced Fixed
Maven io.netty:netty-common 0 4.1.115
Maven io.netty:netty-common 0 4.1.115.Final
Chainguard akhq 0 0
Chainguard apache-nifi 0 0
Chainguard apache-nifi-compat 0 0
Chainguard apache-nifi-toolkit 0 0
Chainguard apicurio-registry 0 3.0.6-r1
Chainguard apicurio-registry-nginx-config 0 3.0.6-r1
Chainguard apicurio-registry-ui 0 3.0.6-r1
Chainguard camunda-zeebe 0 8.6.6-r0
Chainguard camunda-zeebe-compat 0 8.6.6-r0
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 3.7.0-r0
Chainguard cassandra-reaper 0 0
Chainguard cassandra-reaper-jre-bcfips 0 3.7.0-r0
Chainguard cassandra-reaper-jre-bcfips 0 0
Chainguard cloudwatch-exporter 0 0.16.0-r2
Chainguard cloudwatch-exporter 0 0
Chainguard confluent-kafka 0 8.0.0.153-r0
Chainguard confluent-kafka 0 0
Chainguard confluent-kafka-jre-bcfips 0 0
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 31.0.0-r2
Chainguard druid 0 0
Chainguard druid-compat 0 31.0.0-r2
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 8.16.0-r0
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 8.16.0-r0
Chainguard elasticsearch-config 0 0
Chainguard elasticsearch-fips-8 0 8.16.0-r0
Chainguard elasticsearch-fips-8 0 0
Chainguard elasticsearch-fips-8-bitnami 0 0
Chainguard elasticsearch-fips-8-config 0 8.16.0-r0
Chainguard elasticsearch-fips-8-config 0 0
Chainguard elasticsearch-fips-8-policy-140-2 0 8.16.0-r0
Chainguard elasticsearch-fips-8-policy-140-2 0 0
Chainguard elasticsearch-fips-8-policy-140-3 0 8.16.0-r0
Chainguard elasticsearch-fips-8-policy-140-3 0 0
Chainguard flyway 0 11.15.0-r1
Chainguard grpc-java-fips-1.56.0 0 0
Chainguard grpc-java-fips-1.56.0-m2 0 0
Chainguard hadoop-3.3 0 0
Chainguard hadoop-3.3-compat 0 0
Chainguard hadoop-fips-3.3.6 0 3.3.6-r15
Chainguard hive 0 0
Chainguard hive-compat 0 0
Chainguard kafka-3.7 0 0
Chainguard kafka-3.8 0 0
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.0.5-r1
Chainguard keycloak-bitnami-compat 0 26.0.5-r1
Chainguard keycloak-bitnami-fips 0 0
Chainguard keycloak-compat 0 26.0.5-r1
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.0.5-r1
Chainguard keycloak-iamguarded-fips 0 0
Chainguard keycloak-operator 0 26.0.5-r1
Chainguard keycloak-operator 0 0
Chainguard keycloak-operator-compat 0 26.0.5-r1
Chainguard keycloak-operator-compat 0 0
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.12.0-r5
Chainguard kserve-modelmesh 0 0
Chainguard kserve-modelmesh-compat 0 0.12.0-r5
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 0 0
Chainguard neo4j-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

Related vulnerabilities