CVE-2019-9212 — hessian
CRITICALCVE-2019-9212 is a critical-severity (CVSS 9.8) CWE-184 vulnerability in com.alipay.sofa:hessian. A fix is available for com.alipay.sofa:hessian — see the affected versions and patch details below.
Incomplete List of Disallowed Inputs in SOFA-Hessian
EPSS Exploitation Probability
Probability of exploitation in the next 30 days, from FIRST.org EPSS.
How urgent is this, really
Where this sits among everything scored
Real-World Exposure
com.alipay.sofa:hessian☕com.alipay.sofa:hessianReal-time download stats are indexed for npm and PyPI packages. This vulnerability affects Maven packages — download data is not available via public APIs for these ecosystems.
Description
SOFA-Hessian through 4.0.2 allows remote attackers to execute arbitrary commands via a crafted serialized Hessian object because blacklisting of com.caucho.naming.QName and com.sun.org.apache.xpath.internal.objects.XString is mishandled, related to Resin Gadget. NOTE: The vendor doesn’t consider this issue a vulnerability because the blacklist is being misused. SOFA Hessian supports custom blacklist and a disclaimer was posted encouraging users to update the blacklist or to use the whitelist feature for their specific needs since the blacklist is not being actively updated
Affected Packages
| Ecosystem | Package | Vulnerable range | Fix |
|---|---|---|---|
| ☕Maven | com.alipay.sofa:hessian | ≥ 4.0.0&&< 4.0.2 | 4.0.2com.alipay.sofa:hessian:4.0.2 |
| ☕Maven | com.alipay.sofa:hessian | all versions | 3.3.6com.alipay.sofa:hessian:3.3.6 |
Affected Products
sofa-hessianantfinDetection & mitigation playbook
Open-source dependencyDetect
Scan your dependency tree (package-lock.json, pnpm-lock.yaml, requirements.txt, go.sum, etc.) for com.alipay.sofa:hessian, including transitive dependencies — a direct dependency you never call can still pull in a vulnerable version.
Fix
Update com.alipay.sofa:hessian to 4.0.2 or later, then make sure no transitive (indirect) dependency still pins the vulnerable range — O3 confirms CVE-2019-9212 is resolved across your whole dependency graph.
Workarounds
Do not deserialise data from untrusted sources: where the format allows it, restrict deserialisation to an explicit allowlist of expected types, and prefer a data-only format (JSON, Protobuf) over one that can reconstruct arbitrary objects until you can upgrade.
Frequently Asked Questions
Is CVE-2019-9212 in your dependencies?
Find it across Maven, including transitive dependencies.