GHSA-h4h5-3hr4-j3g2
Vulnerability from github
Published
2022-10-04 22:17
Modified
2022-10-04 22:17
Summary
protobuf-java has a potential Denial of Service issue
Details

Summary

A potential Denial of Service issue in protobuf-java core and lite was discovered in the parsing procedure for binary and text format data. Input streams containing multiple instances of non-repeated embedded messages with repeated or unknown fields causes objects to be converted back-n-forth between mutable and immutable forms, resulting in potentially long garbage collection pauses.

Reporter: OSS Fuzz

Affected versions: This issue affects both the Java full and lite Protobuf runtimes, as well as Protobuf for Kotlin and JRuby, which themselves use the Java Protobuf runtime.

Severity

CVE-2022-3171 Medium - CVSS Score: 5.7 (NOTE: there may be a delay in publication)

Remediation and Mitigation

Please update to the latest available versions of the following packages:

protobuf-java (3.21.7, 3.20.3, 3.19.6, 3.16.3) protobuf-javalite (3.21.7, 3.20.3, 3.19.6, 3.16.3) protobuf-kotlin (3.21.7, 3.20.3, 3.19.6, 3.16.3) protobuf-kotlin-lite (3.21.7, 3.20.3, 3.19.6, 3.16.3) google-protobuf [JRuby gem only] (3.21.7, 3.20.3, 3.19.6)

Show details on source website


{
   affected: [
      {
         package: {
            ecosystem: "Maven",
            name: "com.google.protobuf:protobuf-java",
         },
         ranges: [
            {
               events: [
                  {
                     introduced: "3.21.0-rc-1",
                  },
                  {
                     fixed: "3.21.7",
                  },
               ],
               type: "ECOSYSTEM",
            },
         ],
      },
      {
         package: {
            ecosystem: "Maven",
            name: "com.google.protobuf:protobuf-kotlin",
         },
         ranges: [
            {
               events: [
                  {
                     introduced: "3.21.0-rc-1",
                  },
                  {
                     fixed: "3.21.7",
                  },
               ],
               type: "ECOSYSTEM",
            },
         ],
      },
      {
         package: {
            ecosystem: "RubyGems",
            name: "google-protobuf",
         },
         ranges: [
            {
               events: [
                  {
                     introduced: "3.21.0.rc.1",
                  },
                  {
                     fixed: "3.21.7",
                  },
               ],
               type: "ECOSYSTEM",
            },
         ],
      },
      {
         package: {
            ecosystem: "Maven",
            name: "com.google.protobuf:protobuf-javalite",
         },
         ranges: [
            {
               events: [
                  {
                     introduced: "3.21.0-rc-1",
                  },
                  {
                     fixed: "3.21.7",
                  },
               ],
               type: "ECOSYSTEM",
            },
         ],
      },
      {
         package: {
            ecosystem: "Maven",
            name: "com.google.protobuf:protobuf-kotlin-lite",
         },
         ranges: [
            {
               events: [
                  {
                     introduced: "3.21.0-rc-1",
                  },
                  {
                     fixed: "3.21.7",
                  },
               ],
               type: "ECOSYSTEM",
            },
         ],
      },
      {
         package: {
            ecosystem: "Maven",
            name: "com.google.protobuf:protobuf-java",
         },
         ranges: [
            {
               events: [
                  {
                     introduced: "3.20.0-rc-1",
                  },
                  {
                     fixed: "3.20.3",
                  },
               ],
               type: "ECOSYSTEM",
            },
         ],
      },
      {
         package: {
            ecosystem: "Maven",
            name: "com.google.protobuf:protobuf-java",
         },
         ranges: [
            {
               events: [
                  {
                     introduced: "3.17.0-rc-1",
                  },
                  {
                     fixed: "3.19.6",
                  },
               ],
               type: "ECOSYSTEM",
            },
         ],
      },
      {
         package: {
            ecosystem: "Maven",
            name: "com.google.protobuf:protobuf-java",
         },
         ranges: [
            {
               events: [
                  {
                     introduced: "0",
                  },
                  {
                     fixed: "3.16.3",
                  },
               ],
               type: "ECOSYSTEM",
            },
         ],
      },
      {
         package: {
            ecosystem: "Maven",
            name: "com.google.protobuf:protobuf-kotlin",
         },
         ranges: [
            {
               events: [
                  {
                     introduced: "3.20.0-rc-1",
                  },
                  {
                     fixed: "3.20.3",
                  },
               ],
               type: "ECOSYSTEM",
            },
         ],
      },
      {
         package: {
            ecosystem: "Maven",
            name: "com.google.protobuf:protobuf-kotlin",
         },
         ranges: [
            {
               events: [
                  {
                     introduced: "3.17.0-rc-1",
                  },
                  {
                     fixed: "3.19.6",
                  },
               ],
               type: "ECOSYSTEM",
            },
         ],
      },
      {
         package: {
            ecosystem: "Maven",
            name: "com.google.protobuf:protobuf-kotlin",
         },
         ranges: [
            {
               events: [
                  {
                     introduced: "0",
                  },
                  {
                     fixed: "3.16.3",
                  },
               ],
               type: "ECOSYSTEM",
            },
         ],
      },
      {
         package: {
            ecosystem: "RubyGems",
            name: "google-protobuf",
         },
         ranges: [
            {
               events: [
                  {
                     introduced: "3.20.0.rc.1",
                  },
                  {
                     fixed: "3.20.3",
                  },
               ],
               type: "ECOSYSTEM",
            },
         ],
      },
      {
         package: {
            ecosystem: "RubyGems",
            name: "google-protobuf",
         },
         ranges: [
            {
               events: [
                  {
                     introduced: "3.17.0.rc.1",
                  },
                  {
                     fixed: "3.19.6",
                  },
               ],
               type: "ECOSYSTEM",
            },
         ],
      },
      {
         package: {
            ecosystem: "RubyGems",
            name: "google-protobuf",
         },
         ranges: [
            {
               events: [
                  {
                     introduced: "0",
                  },
                  {
                     fixed: "3.16.3",
                  },
               ],
               type: "ECOSYSTEM",
            },
         ],
      },
      {
         package: {
            ecosystem: "Maven",
            name: "com.google.protobuf:protobuf-javalite",
         },
         ranges: [
            {
               events: [
                  {
                     introduced: "3.20.0-rc-1",
                  },
                  {
                     fixed: "3.20.3",
                  },
               ],
               type: "ECOSYSTEM",
            },
         ],
      },
      {
         package: {
            ecosystem: "Maven",
            name: "com.google.protobuf:protobuf-javalite",
         },
         ranges: [
            {
               events: [
                  {
                     introduced: "3.17.0-rc-1",
                  },
                  {
                     fixed: "3.19.6",
                  },
               ],
               type: "ECOSYSTEM",
            },
         ],
      },
      {
         package: {
            ecosystem: "Maven",
            name: "com.google.protobuf:protobuf-javalite",
         },
         ranges: [
            {
               events: [
                  {
                     introduced: "0",
                  },
                  {
                     fixed: "3.16.3",
                  },
               ],
               type: "ECOSYSTEM",
            },
         ],
      },
      {
         package: {
            ecosystem: "Maven",
            name: "com.google.protobuf:protobuf-kotlin-lite",
         },
         ranges: [
            {
               events: [
                  {
                     introduced: "3.20.0-rc-1",
                  },
                  {
                     fixed: "3.20.3",
                  },
               ],
               type: "ECOSYSTEM",
            },
         ],
      },
      {
         package: {
            ecosystem: "Maven",
            name: "com.google.protobuf:protobuf-kotlin-lite",
         },
         ranges: [
            {
               events: [
                  {
                     introduced: "3.17.0-rc-1",
                  },
                  {
                     fixed: "3.19.6",
                  },
               ],
               type: "ECOSYSTEM",
            },
         ],
      },
      {
         package: {
            ecosystem: "Maven",
            name: "com.google.protobuf:protobuf-kotlin-lite",
         },
         ranges: [
            {
               events: [
                  {
                     introduced: "0",
                  },
                  {
                     fixed: "3.16.3",
                  },
               ],
               type: "ECOSYSTEM",
            },
         ],
      },
   ],
   aliases: [
      "CVE-2022-3171",
   ],
   database_specific: {
      cwe_ids: [
         "CWE-20",
      ],
      github_reviewed: true,
      github_reviewed_at: "2022-10-04T22:17:15Z",
      nvd_published_at: "2022-10-12T23:15:00Z",
      severity: "MODERATE",
   },
   details: "## Summary\nA potential Denial of Service issue in `protobuf-java` core and lite was discovered in the parsing procedure for binary and text format data. Input streams containing multiple instances of non-repeated [embedded messages](http://developers.google.com/protocol-buffers/docs/encoding#embedded) with repeated or unknown fields causes objects to be converted back-n-forth between mutable and immutable forms, resulting in potentially long garbage collection pauses. \n\nReporter: [OSS Fuzz](https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=48771)\n\nAffected versions: This issue affects both the Java full and lite Protobuf runtimes, as well as Protobuf for Kotlin and JRuby, which themselves use the Java Protobuf runtime.\n\n## Severity\n\n[CVE-2022-3171](https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2022-3171) Medium - CVSS Score: 5.7 (NOTE: there may be a delay in publication)\n\n## Remediation and Mitigation\n\nPlease update to the latest available versions of the following packages:\n\nprotobuf-java (3.21.7, 3.20.3, 3.19.6, 3.16.3)\nprotobuf-javalite (3.21.7, 3.20.3, 3.19.6, 3.16.3)\nprotobuf-kotlin (3.21.7, 3.20.3, 3.19.6, 3.16.3)\nprotobuf-kotlin-lite (3.21.7, 3.20.3, 3.19.6, 3.16.3)\ngoogle-protobuf [JRuby gem only] (3.21.7, 3.20.3, 3.19.6)\n",
   id: "GHSA-h4h5-3hr4-j3g2",
   modified: "2022-10-04T22:17:15Z",
   published: "2022-10-04T22:17:15Z",
   references: [
      {
         type: "WEB",
         url: "https://github.com/protocolbuffers/protobuf/security/advisories/GHSA-h4h5-3hr4-j3g2",
      },
      {
         type: "ADVISORY",
         url: "https://nvd.nist.gov/vuln/detail/CVE-2022-3171",
      },
      {
         type: "WEB",
         url: "https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=48771",
      },
      {
         type: "PACKAGE",
         url: "https://github.com/protocolbuffers/protobuf",
      },
      {
         type: "WEB",
         url: "https://github.com/protocolbuffers/protobuf/releases/tag/v21.7",
      },
      {
         type: "WEB",
         url: "https://github.com/protocolbuffers/protobuf/releases/tag/v3.16.3",
      },
      {
         type: "WEB",
         url: "https://github.com/protocolbuffers/protobuf/releases/tag/v3.19.6",
      },
      {
         type: "WEB",
         url: "https://github.com/protocolbuffers/protobuf/releases/tag/v3.20.3",
      },
      {
         type: "WEB",
         url: "https://github.com/rubysec/ruby-advisory-db/blob/master/gems/google-protobuf/CVE-2022-3171.yml",
      },
      {
         type: "WEB",
         url: "https://lists.fedoraproject.org/archives/list/package-announce@lists.fedoraproject.org/message/CBAUKJQL6O4TIWYBENORSY5P43TVB4M3",
      },
      {
         type: "WEB",
         url: "https://lists.fedoraproject.org/archives/list/package-announce@lists.fedoraproject.org/message/MPCGUT3T5L6C3IDWUPSUO22QDCGQKTOP",
      },
      {
         type: "WEB",
         url: "https://security.gentoo.org/glsa/202301-09",
      },
   ],
   schema_version: "1.4.0",
   severity: [
      {
         score: "CVSS:3.1/AV:A/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H",
         type: "CVSS_V3",
      },
   ],
   summary: "protobuf-java has a potential Denial of Service issue",
}


Log in or create an account to share your comment.

Security Advisory comment format.

This schema specifies the format of a comment related to a security advisory.

UUIDv4 of the comment
UUIDv4 of the Vulnerability-Lookup instance
When the comment was created originally
When the comment was last updated
Title of the comment
Description of the comment
The identifier of the vulnerability (CVE ID, GHSA-ID, PYSEC ID, etc.).



Tags
Taxonomy of the tags.


Loading…

Loading…

Loading…

Sightings

Author Source Type Date

Nomenclature

  • Seen: The vulnerability was mentioned, discussed, or seen somewhere by the user.
  • Confirmed: The vulnerability is confirmed from an analyst perspective.
  • Exploited: This vulnerability was exploited and seen by the user reporting the sighting.
  • Patched: This vulnerability was successfully patched by the user reporting the sighting.
  • Not exploited: This vulnerability was not exploited or seen by the user reporting the sighting.
  • Not confirmed: The user expresses doubt about the veracity of the vulnerability.
  • Not patched: This vulnerability was not successfully patched by the user reporting the sighting.