{"id":"GHSA-q63x-9pfm-mjx4","summary":"Feast vulnerable to unsafe deserialization RCE in registry server via UDF proto","details":"Feast before 0.63.0 contains an unsafe deserialization vulnerability that allows unauthenticated or unauthorized attackers to achieve remote code execution by sending a crafted gRPC request to the registry server. The user_defined_function.body field of an OnDemandFeatureView spec is decoded from base64 and passed to dill.loads() before any authorization check is performed, enabling attackers to embed a malicious serialized Python object with an arbitrary __reduce__ method to execute OS commands as the feast service account.","aliases":["CVE-2026-56121"],"modified":"2026-11-03T21:31:24.697213150Z","published":"2026-06-24T18:32:40Z","database_specific":{"severity":"CRITICAL","github_reviewed":true,"github_reviewed_at":"2026-11-03T21:20:55Z","nvd_published_at":"2026-06-24T16:16:33Z","cwe_ids":["CWE-502"]},"references":[{"type":"ADVISORY","url":"https://nvd.nist.gov/vuln/detail/CVE-2026-56121"},{"type":"WEB","url":"https://github.com/feast-dev/feast/commit/835cda8e2c1359f1f496ad72701dbd6a73bdb25a"},{"type":"WEB","url":"https://access.redhat.com/errata/RHSA-2026:60520"},{"type":"WEB","url":"https://access.redhat.com/security/cve/CVE-2026-56121"},{"type":"WEB","url":"https://bugzilla.redhat.com/show_bug.cgi?id=2492229"},{"type":"PACKAGE","url":"https://github.com/feast-dev/feast"},{"type":"WEB","url":"https://github.com/feast-dev/feast/releases/tag/v0.63.0"},{"type":"WEB","url":"https://huntr.com/bounties/d64b8111-180b-46ba-afa3-c877fda2ede6"},{"type":"WEB","url":"https://security.access.redhat.com/data/csaf/v2/vex/2026/cve-2026-56121.json"},{"type":"WEB","url":"https://www.vulncheck.com/advisories/feast-unauthenticated-rce-via-applyfeatureview-grpc-deserialization"}],"affected":[{"package":{"name":"feast","ecosystem":"PyPI","purl":"pkg:pypi/feast"},"ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"0.63.0"}]}],"versions":["0.1.0","0.1.0.post0","0.1.2","0.1.2.post0","0.1.2.post1","0.10.0","0.10.1","0.10.1rc1","0.10.1rc3","0.10.2","0.10.3","0.10.4","0.10.5","0.10.6","0.10.7","0.10.8","0.11.0","0.12.0","0.12.1","0.13.0","0.14.0","0.14.1","0.15.0","0.15.1","0.16.0","0.16.1","0.17.0","0.18.0","0.18.1","0.19.0","0.19.1","0.19.2","0.19.3","0.19.4","0.20.0","0.20.1","0.20.2","0.21.0","0.21.1","0.21.2","0.21.3","0.22.0","0.22.1","0.22.2","0.22.3","0.22.4","0.23.0","0.23.1","0.23.2","0.24.0","0.24.1","0.25.0","0.25.1","0.25.2","0.26.0","0.27.0","0.27.1","0.28.0","0.29.0","0.3.0","0.3.2","0.3.3","0.3.3.post0","0.3.4","0.3.5","0.3.6","0.3.7","0.30.2","0.31.0","0.31.1","0.33.1","0.34.0","0.34.1","0.35.0","0.36.0","0.37.1","0.38.0","0.39.0","0.39.1","0.4.0","0.4.1","0.4.1.post0","0.4.2","0.4.3","0.4.4","0.4.5","0.4.6","0.4.7","0.40.0","0.40.1","0.41.3","0.42.0","0.43.0","0.44.0","0.45.0","0.46.0","0.47.0","0.48.0","0.48.1","0.49.0","0.5.0","0.5.0.post0","0.5.0rc0","0.5.1","0.50.0","0.51.0","0.52.0","0.53.0","0.54.0","0.54.1","0.55.0","0.56.0","0.57.0","0.58.0","0.59.0","0.6.0","0.6.1","0.6.2","0.60.0","0.61.0","0.62.0","0.7.0","0.7.0rc1","0.7.0rc2","0.7.0rc3","0.7.1","0.7.2","0.8.0","0.8.0rc3","0.8.1","0.8.2","0.8.3","0.8.4","0.9.0","0.9.0rc1","0.9.0rc2","0.9.1","0.9.2","0.9.3","0.9.4","0.9.5","0.9.5.1","0.9.5.2","0.9.6","0.9.7","0.9.8","0.9.9"],"database_specific":{"source":"https://github.com/github/advisory-database/blob/main/advisories/github-reviewed/2026/06/GHSA-q63x-9pfm-mjx4/GHSA-q63x-9pfm-mjx4.json"}}],"schema_version":"1.9.2","severity":[{"type":"CVSS_V3","score":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H"},{"type":"CVSS_V4","score":"CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N"}]}