-
Notifications
You must be signed in to change notification settings - Fork 597
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Possible DoS by using overlapping multiple SinkBindings #5749
Labels
area/security
kind/bug
Categorizes issue or PR as related to a bug.
triage/accepted
Issues which should be fixed (post-triage)
Comments
/area security |
Maybe this issue should be treated as CWE-400 |
@knative/security-wg-leads PTAL |
This issue is stale because it has been open for 90 days with no |
github-actions
bot
added
the
lifecycle/stale
Denotes an issue or PR has remained open with no activity and has become stale.
label
Jan 4, 2022
/remove-lifecycle stale |
knative-prow-robot
removed
the
lifecycle/stale
Denotes an issue or PR has remained open with no activity and has become stale.
label
Jan 4, 2022
/triage accepted |
knative-prow-robot
added
the
triage/accepted
Issues which should be fixed (post-triage)
label
Jan 4, 2022
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Labels
area/security
kind/bug
Categorizes issue or PR as related to a bug.
triage/accepted
Issues which should be fixed (post-triage)
Describe the bug
Eventing allows users to create a faulty situation, where multiple sink bindings are constantly reconfiguring a single subject. This may lead to a DoS of a whole Kubernetes cluster, by resource depletion. Such situation can happen both intentionally, but also by chance by using different but overlapping labels.
Expected behavior
Knative Eventing should detect that multiple SinkBindings are targeting overlapping resources, and mark them as not ready, showing misconfiguration to user in status. This validation should happen no matter if SB are selecting subject by name or by label selector.
To Reproduce
kn service create event-display --image gcr.io/knative-releases/knative.dev/eventing-contrib/cmd/event_display
kn service create takeme --image=gcr.io/knative-samples/helloworld-go -l foo=bar -l fizz=bazz -l moo=goo
kn source binding create bind-1 --subject 'Service:serving.knative.dev/v1:takeme' --sink event-display --ce-override 'sink=1'
kn source binding create bind-2 --subject 'Service:serving.knative.dev/v1:foo=bar' --sink event-display --ce-override 'sink=2'
kn source binding create bind-3 --subject 'Service:serving.knative.dev/v1:fizz=bazz' --sink event-display --ce-override 'sink=3'
kn source binding create bind-4 --subject 'Service:serving.knative.dev/v1:moo=goo' --sink event-display --ce-override 'sink=4'
Knative release version
main
Additional context
Resolving this issue would probably fix #5510 as well.
The text was updated successfully, but these errors were encountered: