{"id":"GHSA-h5cg-53g7-gqjw","summary":"RPyC's missing security check results in code execution when using numpy.array on the server-side.","details":"An issue in Open Source: RPyC v.4.00 thru v.5.3.1 allows a remote attacker to execute arbitrary code via a crafted script to the `__array__` attribute component. This vulnerability was introduced in [9f45f826](https://github.com/tomerfiliba-org/rpyc/commit/9f45f8269d4106905db61d82cd529cacdb178911).\n\n### Attack Vector\nRPyC services that rely on the `__array__` attribute used by numpy are impacted. When the server-side exposes a method that calls the attribute named `__array__` for a a client provided netref (e.g., `np.array(client_netref)`), a remote attacker can craft a class which results in remote code execution\n\n### Impact\nAssuming the system exposes a method that calls the attribute `__array__`, an attacker can execute code using the vulnerable component. \n\n### Patches\nThe fix is available in RPyC 6.0.0. The major version change is because some users may need to set `allow_pickle` to `True` when migrating to RPyC 6.\n\n### Workarounds\nWhile the recommend fix is to upgrade to RPyC 6.0.0, the workaround is to [apply bba1d356 as patch.](https://github.com/tomerfiliba-org/rpyc/commit/bba1d3562e6f9f1256ec64048cc23001c0bb7516)\n\n### Affected Component\n[The affected component](https://github.com/tomerfiliba-org/rpyc/blob/5.3.1/rpyc/core/netref.py#L252-L255) is the `__array__` method constructed for `NetrefClass`.\n\n### References\n- [Original disclosure](https://gist.github.com/renbou/957f70d27470982994f12a1d70153d09) by [renbou (Artem Mikheev)](https://gist.github.com/renbou)\n- [CVE-2024-27758](https://nvd.nist.gov/vuln/detail/CVE-2024-27758)\n","aliases":["CVE-2024-27758","PYSEC-2024-44"],"modified":"2026-07-08T06:53:10.308767863Z","published":"2024-03-06T17:05:30Z","database_specific":{"github_reviewed":true,"github_reviewed_at":"2024-03-06T17:05:30Z","nvd_published_at":"2024-03-12T16:15:08Z","cwe_ids":["CWE-306","CWE-358","CWE-913"],"severity":"HIGH"},"references":[{"type":"WEB","url":"https://github.com/tomerfiliba-org/rpyc/security/advisories/GHSA-h5cg-53g7-gqjw"},{"type":"ADVISORY","url":"https://nvd.nist.gov/vuln/detail/CVE-2024-27758"},{"type":"WEB","url":"https://github.com/tomerfiliba-org/rpyc/commit/9f45f8269d4106905db61d82cd529cacdb178911"},{"type":"WEB","url":"https://github.com/tomerfiliba-org/rpyc/commit/bba1d3562e6f9f1256ec64048cc23001c0bb7516"},{"type":"WEB","url":"https://gist.github.com/renbou/957f70d27470982994f12a1d70153d09"},{"type":"WEB","url":"https://github.com/pypa/advisory-database/tree/main/vulns/rpyc/PYSEC-2024-44.yaml"},{"type":"PACKAGE","url":"https://github.com/tomerfiliba-org/rpyc"},{"type":"WEB","url":"https://github.com/tomerfiliba-org/rpyc/blob/5.3.1/rpyc/core/netref.py#L252-L255"}],"affected":[{"package":{"name":"rpyc","ecosystem":"PyPI","purl":"pkg:pypi/rpyc"},"ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"4.0.0"},{"fixed":"6.0.0"}]}],"versions":["4.0.0","4.0.1","4.0.2","4.1.0","4.1.1","4.1.2","4.1.3","4.1.4","4.1.5","5.0.0","5.0.1","5.1.0","5.2.1","5.2.2","5.2.3","5.3.0","5.3.1"],"database_specific":{"source":"https://github.com/github/advisory-database/blob/main/advisories/github-reviewed/2024/03/GHSA-h5cg-53g7-gqjw/GHSA-h5cg-53g7-gqjw.json"}}],"schema_version":"1.9.0","severity":[{"type":"CVSS_V3","score":"CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:L/A:N"},{"type":"CVSS_V4","score":"CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:H/VI:L/VA:N/SC:H/SI:L/SA:N"}]}