CVE-2020-1900CWE-416

When unserializing an object with dynamic properties HHVM needs to pre-reserve the full size of the dynamic property array before inserting anything into it

published March 11, 2021

CVSS
—
EPSS
1%
Percentile
71.8
In the wild
Unconfirmed
What it is

🚨 A sneaky object unserialization flaw in HHVM could lead to unexpected behaviors! This vulnerability occurs due to a failure to pre-reserve space for dynamic properties before inserting them. 🔥 Think of it like trying to add more toppings to a pizza without checking if the crust can hold it all—if the crust isn't prepared, things start to slide off! An attacker doesn't have direct exploitation here, but it could cause erratic application behavior, leading to data inconsistencies or crashes. This might not sound catastrophic, but when you're serving up spaghetti code, unexpected behavior can be a recipe for disaster!

Put simply

Think of it like trying to add more toppings to a pizza without checking if the crust can hold it all—if the crust isn't prepared, things start to slide off! In HHVM versions prior to v4.32.3 and various versions up to v4.62.0, dynamic properties lack proper pre-reservation, causing references to dynamic properties to become invalid if the array resizes during unserialization.

What to do

An attacker doesn't have direct exploitation here, but it could cause erratic application behavior, leading to data inconsistencies or crashes. This might not sound catastrophic, but when you're serving up spaghetti code, unexpected behavior can be a recipe for disaster! To mitigate this, update your HHVM to version 4.32.3 or later. Regularly audit your application for unserialization practices to ensure you're managing dynamic properties safely! You’ve got this! Keep your applications safe and sound with these updates. 🛡️

The record
Technical detail
CVSS
Not scored
CVSS v4.0
Not supplied
EPSS
0.01384 · 71.8th percentile
Weakness
CWE-416 · Use After Free
Published
2021-03-11T00:55Z
EPSS history
Timeline
  • 11 MAR 00:55Z
    When unserializing an object with dynamic properties HHVM needs to pre-reserve the full size of the dynamic property array before inserting anything into it
    cvelistv5