Bug 2511164 (CVE-2026-18947) - CVE-2026-18947 feast: Feast: Authorization bypass in /materialize endpoints enables DoS via unauthorized full re-materialization
Summary: CVE-2026-18947 feast: Feast: Authorization bypass in /materialize endpoints e...
Keywords:
Status: NEW
Alias: CVE-2026-18947
Product: Security Response
Classification: Other
Component: vulnerability-draft
Version: unspecified
Hardware: All
OS: Linux
high
high
Target Milestone: ---
Assignee: Product Security
QA Contact:
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2026-08-04 18:04 UTC by OSIDB Bzimport
Modified: 2026-08-10 19:50 UTC (History)
1 user (show)

Fixed In Version:
Clone Of:
Environment:
Last Closed:
Embargoed:


Attachments (Terms of Use)

Description OSIDB Bzimport 2026-08-04 18:04:17 UTC
Description

Finding
MaterializeRequest.feature_views is Optional[List[str]] = None (line 86). When the client omits this field, the permission-check loop iterates zero times — assert_permissions is never called — and store.materialize(..., None) materializes every feature view in the project. The same flaw exists for /materialize-incremental (lines 624-638).

File: sdk/python/feast/feature_server.py:593-638
Repository: red-hat-data-services/feast
ASVS: V4.1.3, V4.2.1 (function-level access control)
CWE: CWE-285 / CWE-862 (Missing Authorization)
Severity: High

RHOAI Impact
This affects RHOAI deployments. The /materialize and /materialize-incremental endpoints are part of the feature server deployed by the feast-operator in RHOAI. The vulnerable code ships in the RHOAI feature-server image.

Denial of Service attack: An attacker can trigger full re-materialization of all tenants' feature views by sending a simple POST /materialize request with the feature_views field omitted. This:

Overwrites online-store state — corrupting or replacing current feature data for all tenants

Incurs significant offline-store compute cost — re-reading and processing all historical data

Can be repeated indefinitely — no rate limiting or cooldown exists on the endpoint

Affects all tenants — the feature server serves all projects in a FeatureStore CR

Auth dependency:

With default no_auth (F-04, also the operator default): unauthenticated — anyone with network access can trigger this

With kubernetes/oidc auth enabled: any authenticated user can trigger it regardless of their Feast permissions, since the authz check loop runs zero times

Remediation
When feature_views is None, enumerate store.list_feature_views() and assert WRITE_ONLINE on each before calling store.materialize. Reject the request if the caller lacks permission on any view.


Note You need to log in before you can comment on or make changes to this bug.