CVE Vulnerabilities

CVE-2022-36944

Deserialization of Untrusted Data

Published: Sep 23, 2022 | Modified: May 27, 2025
CVSS 3.x
9.8
CRITICAL
Source:
NVD
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
CVSS 2.x
RedHat/V2
RedHat/V3
8.1 IMPORTANT
CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H
Ubuntu
MEDIUM
root.io logo minimus.io logo echo.ai logo

Scala 2.13.x before 2.13.9 has a Java deserialization chain in its JAR file. On its own, it cannot be exploited. There is only a risk in conjunction with Java object deserialization within an application. In such situations, it allows attackers to erase contents of arbitrary files, make network connections, or possibly run arbitrary code (specifically, Function0 functions) via a gadget chain.

Weakness

The product deserializes untrusted data without sufficiently ensuring that the resulting data will be valid.

Affected Software

NameVendorStart VersionEnd Version
ScalaScala-lang2.13.0 (including)2.13.9 (excluding)
Scala-collection-compatScala-lang*2.9.0 (excluding)
Red Hat AMQ Streams 2.4.0RedHatscala*
Red Hat AMQ Streams 2.5.0RedHat*
ScalaUbuntubionic*
ScalaUbuntufocal*
ScalaUbuntukinetic*
ScalaUbuntulunar*
ScalaUbuntumantic*
ScalaUbuntuoracular*
ScalaUbuntutrusty*
ScalaUbuntuupstream*
ScalaUbuntuxenial*

Potential Mitigations

  • Make fields transient to protect them from deserialization.
  • An attempt to serialize and then deserialize a class containing transient fields will result in NULLs where the transient data should be. This is an excellent way to prevent time, environment-based, or sensitive variables from being carried over and used improperly.

References