GHSA-8RQ8-F485-7V8X

Vulnerability from github – Published: 2022-07-09 00:00 – Updated: 2024-04-22 21:11
VLAI?
Summary
rpc.py vulnerable to Deserialization of Untrusted Data
Details

rpc.py through 0.6.0 allows Remote Code Execution because an unpickle occurs when the "serializer: pickle" HTTP header is sent. In other words, although JSON (not Pickle) is the default data format, an unauthenticated client can cause the data to be processed with unpickle.

Per the maintainer, rpc.py is not designed for an API that is open to the outside world, and external requests cannot reach rpc.py in real world use.

A fix exists on the master branch. As a workaround, use the following code to turn off pickle in older versions: ``` del SERIALIZER_NAMES[PickleSerializer.name] del SERIALIZER_TYPES[PickleSerializer.content_type]

Show details on source website

{
  "affected": [
    {
      "package": {
        "ecosystem": "PyPI",
        "name": "rpc.py"
      },
      "ranges": [
        {
          "events": [
            {
              "introduced": "0.4.2"
            },
            {
              "last_affected": "0.6.0"
            }
          ],
          "type": "ECOSYSTEM"
        }
      ]
    }
  ],
  "aliases": [
    "CVE-2022-35411"
  ],
  "database_specific": {
    "cwe_ids": [
      "CWE-502",
      "CWE-522"
    ],
    "github_reviewed": true,
    "github_reviewed_at": "2022-07-12T17:55:02Z",
    "nvd_published_at": "2022-07-08T19:15:00Z",
    "severity": "CRITICAL"
  },
  "details": "rpc.py through 0.6.0 allows Remote Code Execution because an unpickle occurs when the \"serializer: pickle\" HTTP header is sent. In other words, although JSON (not Pickle) is the default data format, an unauthenticated client can cause the data to be processed with unpickle.\n\n[Per the maintainer](https://github.com/abersheeran/rpc.py/issues/22), rpc.py is not designed for an API that is open to the outside world, and external requests cannot reach rpc.py in real world use.\n\nA [fix](https://github.com/abersheeran/rpc.py/commit/491e7a841ed9a754796d6ab047a9fb16e23bf8bd) exists on the `master` branch. As a workaround, use the following code to turn off pickle in older versions:\n```\ndel SERIALIZER_NAMES[PickleSerializer.name]\ndel SERIALIZER_TYPES[PickleSerializer.content_type]",
  "id": "GHSA-8rq8-f485-7v8x",
  "modified": "2024-04-22T21:11:25Z",
  "published": "2022-07-09T00:00:19Z",
  "references": [
    {
      "type": "ADVISORY",
      "url": "https://nvd.nist.gov/vuln/detail/CVE-2022-35411"
    },
    {
      "type": "WEB",
      "url": "https://github.com/abersheeran/rpc.py/issues/22"
    },
    {
      "type": "WEB",
      "url": "https://github.com/abersheeran/rpc.py/commit/491e7a841ed9a754796d6ab047a9fb16e23bf8bd"
    },
    {
      "type": "PACKAGE",
      "url": "https://github.com/abersheeran/rpc.py"
    },
    {
      "type": "WEB",
      "url": "https://github.com/ehtec/rpcpy-exploit"
    },
    {
      "type": "WEB",
      "url": "https://medium.com/%40elias.hohl/remote-code-execution-0-day-in-rpc-py-709c76690c30"
    },
    {
      "type": "WEB",
      "url": "https://medium.com/@elias.hohl/remote-code-execution-0-day-in-rpc-py-709c76690c30"
    },
    {
      "type": "WEB",
      "url": "http://packetstormsecurity.com/files/167872/rpc.py-0.6.0-Remote-Code-Execution.html"
    }
  ],
  "schema_version": "1.4.0",
  "severity": [
    {
      "score": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H",
      "type": "CVSS_V3"
    }
  ],
  "summary": "rpc.py vulnerable to Deserialization of Untrusted Data"
}


Log in or create an account to share your comment.




Tags
Taxonomy of the tags.


Loading…

Loading…

Loading…

Sightings

Author Source Type Date

Nomenclature

  • Seen: The vulnerability was mentioned, discussed, or observed by the user.
  • Confirmed: The vulnerability has been validated from an analyst's perspective.
  • Published Proof of Concept: A public proof of concept is available for this vulnerability.
  • Exploited: The vulnerability was observed as exploited by the user who reported the sighting.
  • Patched: The vulnerability was observed as successfully patched by the user who reported the sighting.
  • Not exploited: The vulnerability was not observed as exploited by the user who reported the sighting.
  • Not confirmed: The user expressed doubt about the validity of the vulnerability.
  • Not patched: The vulnerability was not observed as successfully patched by the user who reported the sighting.


Loading…

Detection rules are retrieved from Rulezet.

Loading…

Loading…