Details

    • Fix Pack Status:
      Scheduled
    • Business Value:
      5
    • CVSS Base Score:
      9.8
    • CVSS Vector String:
      CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
    • 7.0 Fix Pack Version:
      87
    • 7.1 Fix Pack Version:
      15

      Description

      Liferay DXP 7.2, DXP 7.1, DXP 7.0 and Portal 6.2 EE contains a remote code execution (RCE) vulnerability via JSON web services (JSONWS).

      See also https://help.liferay.com/hc/en-us/articles/360035141111.

      Mitigation Notes
      The fix introduces an extra validation which relies on a new portal property:

      portal.properties
          # Input a list of comma delimited class names that are allowed to be used
          # for JSON web service request object parameters.
          jsonws.web.service.parameter.type.whitelist.class.names=\
      

      By default, Liferay types used by JSON Web Services are listed. There is also an auto-discovery mechanism in place to detect and allow all types consumed by remote services, including their default Service Builder implementations.

      Resolving "TypeConversionException: ... not allowed to be instantiated" error
      In case you get

      com.liferay.portal.jsonwebservice.TypeConversionException: <parameter-type> is not allowed to be instantiated
      

      in the console when invoking Web Services (where <parameter-type> is the Fully Qualified Class Name (FQCN) of a type, such as "com.x.y.MyClass") you have to whitelist that type. You have two options:

      A.) Via portal-ext.properties:

      1. Obtain the default configuration for " jsonws.web.service.parameter.type.whitelist.class.names" from the portal.properties of the source of the version you are using
      2. Put it into your portal-ext.properties
      3. Add your the FQCN of your custom types to the list
      4. Restart DXP

      B.) Via OSGi @Component properties:
      Update the Component definition of your Declarative Service and add your custom types as property like this and re-deploy your modules:

      @Component(
          property = {
              "jsonws.web.service.parameter.type.whitelist.class.names=com.x.y.MyClass",
              "jsonws.web.service.parameter.type.whitelist.class.names=com.x.y.MyOtherClass",
          },
              service = ...
      )
      public class MyCompoment {...}
      

        Attachments

          Activity

            People

            • Assignee:
              support-ee EE Support
              Reporter:
              tibor.lipusz Tibor Lipusz
            • Votes:
              0 Vote for this issue
              Watchers:
              1 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved:

                Packages

                Version Package
                6.2.X EE
                7.0.X EE
                7.1.x EE
                7.2.X EE