CVE-2020-28472 in shared-ini-file-loaderinfo

Summary

by MITRE • 01/19/2021

This affects the package @aws-sdk/shared-ini-file-loader before 1.0.0-rc.9; the package aws-sdk before 2.814.0. If an attacker submits a malicious INI file to an application that parses it with loadSharedConfigFiles , they will pollute the prototype on the application. This can be exploited further depending on the context.

If you want to get the best quality for vulnerability data then you always have to consider VulDB.

Analysis

by VulDB Data Team • 02/15/2021

The vulnerability identified as CVE-2020-28472 represents a critical prototype pollution issue affecting AWS SDK components that handle shared configuration files. This flaw exists in the @aws-sdk/shared-ini-file-loader package prior to version 1.0.0-rc.9 and the aws-sdk package before version 2.814.0, where applications using the loadSharedConfigFiles function become susceptible to malicious input manipulation. The vulnerability stems from improper handling of INI file parsing operations that do not adequately validate or sanitize input parameters, allowing attackers to inject malicious properties into the prototype chain of JavaScript objects.

The technical implementation of this vulnerability leverages prototype pollution mechanisms that occur when the application parses configuration files containing specially crafted property names. When an attacker crafts an INI file with property names that match existing prototype properties, the parsing function inadvertently modifies the prototype object itself rather than creating new properties on the instance. This occurs because the loadSharedConfigFiles function fails to implement proper input validation and sanitization measures. The vulnerability aligns with CWE-471, which specifically addresses the issue of incorrect handling of prototype pollution in programming languages that support prototype-based inheritance.

The operational impact of this vulnerability extends beyond simple configuration file parsing, as it can enable attackers to manipulate the application's behavior at runtime. When prototype pollution occurs, it can lead to various downstream security issues including denial of service, code execution, or privilege escalation depending on how the application utilizes the parsed configuration data. The attack vector becomes particularly dangerous in applications that rely heavily on configuration-driven behavior or that perform dynamic code execution based on parsed configuration values. According to ATT&CK framework, this vulnerability maps to T1190 - Exploit Public-Facing Application, as it represents a common attack pattern against applications that process user-supplied configuration data.

Mitigation strategies for CVE-2020-28472 require immediate patching of affected AWS SDK components to versions 1.0.0-rc.9 or later for @aws-sdk/shared-ini-file-loader and 2.814.0 or later for aws-sdk. Organizations should also implement input validation measures that sanitize configuration file inputs, particularly focusing on preventing the use of property names that could conflict with prototype properties. Additional defensive measures include implementing proper access controls for configuration file sources, monitoring applications for unusual behavior patterns, and conducting regular security audits of configuration handling code. The vulnerability demonstrates the importance of proper input validation in security-critical components and serves as a reminder of how seemingly benign parsing operations can become attack vectors when inadequate sanitization measures are implemented.

Responsible

Snyk

Reservation

11/12/2020

Disclosure

01/19/2021

Moderation

accepted

CPE

ready

EPSS

0.02142

KEV

no

Activities

very low

Sources

Want to stay up to date on a daily basis?

Enable the mail alert feature now!