CWE-502

LLMs generate deserialization code (pickle, Java ObjectInputStream, JSON.parse with revivers) without input validation, enabling remote code execution....

Verified by Precogs Threat Research
BASE SCORE
7.5 CRITICAL

Precogs AI Insight

"Precogs AI detects unsafe deserialization in AI-generated code and recommends safe alternatives with type validation."

EXPLOIT PROBABILITYHigh
PUBLIC POCAvailable

What is CWE-502 (Deserialization of Untrusted Data)?

LLMs generate deserialization code (pickle, Java ObjectInputStream, JSON.parse with revivers) without input validation, enabling remote code execution.

Vulnerability Insights

In the context of vulnerabilities in ai-generated code, this vulnerability poses significant risk because compiled binaries and complex AI logic cannot be easily patched without vendor cooperation. Organizations relying on third-party software must use structural analysis tools to detect these flaws.

Impact on Systems

  • Compromise of Application Integrity: Predictable execution flow is disrupted
  • Potential Data Exposure: Depending on context, sensitive configurations may leak
  • Availability Risks: Unexpected states leading to temporary denial of service

Real-World Attack Scenario

An attacker probes the system interfaces to identify areas where the input or state related to Deserialization of Untrusted Data is improperly handled. Once identified, they craft a payload tailored to the specific backend architecture. By exploiting the lack of robust structural validation, the attacker is able to force the application into an unintended state, bypassing standard business logic and achieving unauthorized outcomes.

Code Examples

Vulnerable Implementation

// VULNERABLE: Unvalidated input leading to Deserialization of Untrusted Data
function processInput(data) {
    // Missing strict validation or sanitization
    executeOrStoreConfig(data);
}

Secure Alternative

// SECURE: Proper validation mitigating Deserialization of Untrusted Data
function processInput(data) {
    if (!isValid(data)) throw new Error('Invalid input');
    const safeData = sanitize(data);
    executeOrStoreConfig(safeData);
}

Remediation

Ensure robust input validation, boundary checking, and adherence to secure architecture frameworks when designing AI-Generated Code solutions. Use automated code scanning or binary analysis to detect flaws early in the SDLC.