Miggo Logo

CVE-2020-36282:
Unsafe Deserialization that can Result in Code Execution

9.8

CVSS Score
3.1

Basic Information

EPSS Score
0.81462%
Published
12/10/2021
Updated
2/1/2023
KEV Status
No
Technology
TechnologyJava

Technical Details

CVSS Vector
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
Package NameEcosystemVulnerable VersionsFirst Patched Version
com.rabbitmq.jms:rabbitmq-jmsmaven>= 2.0, < 2.2.02.2.0
com.rabbitmq.jms:rabbitmq-jmsmaven>= 1.0, < 1.15.21.15.2

Vulnerability Intelligence
Miggo AIMiggo AI

Miggo AIRoot Cause Analysis

The vulnerability stemmed from StreamMessage deserialization using ObjectInputStream without proper validation. The commit f647e5d introduced WhiteListObjectInputStream and modified RMQStreamMessage's constructor to enforce trusted packages. The original readBody method (using raw ObjectInputStream) and constructor (lacking trusted package handling) were the vulnerable points, as they allowed deserialization of untrusted payloads.

Vulnerable functions

Only Mi**o us*rs **n s** t*is s**tion

WAF Protection Rules

WAF Rule

JMS *li*nt *or R***itMQ *.x ***or* *.**.* *n* *.x ***or* *.*.* is vuln*r**l* to uns*** **s*ri*liz*tion t**t **n r*sult in *o** *x**ution vi* *r**t** Str**mM*ss*** **t*.

Reasoning

T** vuln*r**ility st*mm** *rom Str**mM*ss*** **s*ri*liz*tion usin* O*j**tInputStr**m wit*out prop*r v*li**tion. T** *ommit ******* intro*u*** `W*it*ListO*j**tInputStr**m` *n* mo*i*i** `RMQStr**mM*ss***`'s *onstru*tor to *n*or** trust** p**k***s. T**