REDHAT-BUG-2486730: High severity ManageIQ ManageIQ vulnerability
A deserialization vulnerability was found in ManageIQ. The YamlLoadAliases module in lib/extensions/yamlloadaliases.rb overrides YAML.safeload globally. When a Psych::DisallowedClass error is raised in production, instead of raising the error, it silently falls back to YAML.unsafeload, which deserializes arbitrary Ruby objects. An authenticated user with dialog import access can upload a crafted YAML payload containing classes outside the permitted list to trigger the fallback and achieve Remote Code Execution via standard Ruby gadget chains.
The code comment explicitly labels this a "Temporary hack to fallback to psych 3 behavior" but it was never removed.
Affected Software
Event History
Frequently Asked Questions
Who can exploit this issue?
An authenticated user who has permission to import dialogs can exploit it by uploading a crafted YAML payload.
What conditions are required for exploitation?
The vulnerable fallback is triggered when YAML.safe_load raises a Psych::DisallowedClass error in production. The uploaded YAML must contain classes outside the permitted list, causing the code to use YAML.unsafe_load instead.
What is the impact of successful exploitation?
A successful attacker can deserialize arbitrary Ruby objects and achieve remote code execution using standard Ruby gadget chains.