
CVE-2026-21012 को प्रदर्शित करता है, एक Rust serde डिसीरियलाइज़ेशन दोष जहाँ अविश्वसनीय JSON अनपेक्षित enum variants और अनधिकृत क्रियाओं को ट्रिगर कर सकता है।
// serde_vuln.rs - Deserializes an enum from user JSON without validation
use serde::{Deserialize, Serialize};
use serde_json;
#[derive(Deserialize, Debug)]
enum AdminAction {
ReadLogs,
DeleteUser(String),
CreateUser(String),
}
#[derive(Deserialize, Debug)]
struct Command {
action: AdminAction,
}
fn main() {
let user_input = r#"{"action": {"DeleteUser": "admin"}}"#;
let cmd: Command = serde_json::from_str(user_input).unwrap();
println!("Executing: {:?}", cmd.action);
// Could delete admin if permissions not checked!
}
serde का उपयोग करने वाला एक Rust एप्लिकेशन बिना यह सत्यापित किए कि कॉलर उस variant के लिए अधिकृत है, अविश्वसनीय JSON को एक enum में deserialize करता है। एक हमलावर एक अलग enum variant (जैसे, DeleteUser) इंजेक्ट कर सकता है और अनपेक्षित क्रियाएँ ट्रिगर कर सकता है।
Rust प्रोग्राम को संकलित करें और चलाएँ:
cargo add serde serde_json
rustc serde_vuln.rs
./serde_vuln
यह बिना प्राधिकरण के DeleteUser variant को निष्पादित करता है।