Uploaded image for project: 'TinkerPop'
  1. TinkerPop
  2. TINKERPOP-1611

Groovy Security Issue: Remote execution of untrusted code, DoS

    XMLWordPrintableJSON

    Details

    • Type: Bug
    • Status: Closed
    • Priority: Critical
    • Resolution: Duplicate
    • Affects Version/s: 3.2.3
    • Fix Version/s: None
    • Component/s: groovy
    • Labels:

      Description

      Severity: Important

      Vendor: The Apache Software Foundation

      Versions Affected:

      • Unsupported Codehaus versions of Groovy from 1.7.0 to 2.4.3
      • Apache Groovy 2.4.4 to 2.4.7
      • Fixed in version 2.4.8

      Impact:

      Remote execution of untrusted code, DoS

      Description:

      When an application with Groovy on classpath uses standard
      Java serialization mechanisms, e.g. to communicate between servers
      or to store local data, it is possible for an attacker to bake a special
      serialized object that will execute code directly when deserialized.
      All applications which rely on serialization and do not isolate the
      code which deserializes objects are subject to this vulnerability.
      This is similar to CVE-2015-3253 but this exploit involves extra
      wrapping of objects and catching of exceptions which are now safe
      guarded against.

      Mitigation:

      Users of Groovy relying on (de)serialization with the affected versions
      should apply one of the following mitigations:

      • Isolate the code doing the (de)serialization
      • Upgrade to Apache Groovy 2.4.8 or later
      • Users of older versions of Groovy can apply the following patch to the
        `MethodClosure` class
        (`src/main/org/codehaus/groovy/runtime/MethodClosure.java`):

      ```
      public class MethodClosure extends Closure {
      + private void readObject(java.io.ObjectInputStream stream) throws
      IOException, ClassNotFoundException {
      + if (ALLOW_RESOLVE)

      { + stream.defaultReadObject(); + }

      + throw new UnsupportedOperationException();
      + }
      ```

      Credit:

      This vulnerability was discovered by:

      • Sam Thomas of Pentest Limited working with Trend Micro's Zero Day
        Initiative

      History:

      • 2016-09-20 Original advisory
      • 2017-01-12 Updated information on affected versions

      References:

        Attachments

          Issue Links

            Activity

              People

              • Assignee:
                Unassigned
                Reporter:
                espeed James Thornton
              • Votes:
                0 Vote for this issue
                Watchers:
                3 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved: