Do not use unsafe deserialization

이 페이지는 아직 한국어로 제공되지 않으며 번역 작업 중입니다. 번역에 관한 질문이나 의견이 있으시면 언제든지 저희에게 연락해 주십시오.

Metadata

ID: ruby-security/unsafe-deserialization

Language: Ruby

Severity: Warning

Category: Security

CWE: 502

Description

This rule advises against the use of unsafe deserialization in Ruby, particularly with the Marshal.load method. Deserialization is the process of converting data from a binary or string format back into an object. However, if the data was tampered with, it could lead to arbitrary code execution when the data is deserialized.

This is important because it can lead to serious security vulnerabilities. An attacker could exploit the deserialization process to execute malicious code, alter program flow, or perform other harmful actions. This is particularly dangerous if your application runs with high privileges.

To avoid this, use safe deserialization methods. Instead of using Marshal.load, consider using JSON or YAML for serialization and deserialization, as they are safer. For example, you could use JSON.parse(data) or YAML.load(data) instead. Additionally, always ensure that the data you are deserializing comes from a trusted source.

Non-Compliant Code Examples

obj = Marshal.load(data)
https://static.datadoghq.com/static/images/logos/github_avatar.svg https://static.datadoghq.com/static/images/logos/vscode_avatar.svg jetbrains

Seamless integrations. Try Datadog Code Analysis