Cron: malformed tenant annotation can stop scheduled actions of other tenants
Ninguém assumiu esta issue ainda.
Avaliação
- Dificuldade
- 3/5
- Tempo estimado
- 1-2 dias
- Facilidade para iniciantes
- 20/100
Direção de pesquisa
The proposed fix is in openserverless-operator for branch 0.9.0, and PR #144 is already open. Read that pull request and its regression test for two tenants with valid recurring and one-shot actions; done means malformed annotations are rejected and do not prevent other scheduled actions from running.
Escrita pelo modelo de indexação a partir do texto da issue.
Descrição
The OpenServerless 0.9.0 Cron scheduler processes scheduled actions from all namespaces in one batch. An authenticated tenant can persist a malformed cron annotation on an action in its own namespace. The scheduler passes that value to the cron parser without checking its type; an uncaught exception can stop the batch before later tenants' actions are processed. The annotation persists, so subsequent scheduled runs can be affected as well.
Impact: cross-tenant availability of scheduled actions when the Cron component is enabled. This requires a normal tenant credential. We found no anonymous entry point, cross-tenant invocation, or credential disclosure in this path.
Proposed change in openserverless-operator for branch 0.9.0: reject non-string, empty, and excessively long cron expressions before parsing; isolate errors while processing each action so one malformed action cannot stop the remaining batch; add a regression test covering two tenants and valid recurring/one-shot actions.
Validation: the regression reproduced the failure before the fix in a local harness and passed afterward with the pinned croniter 1.4.1. In an isolated K3s lab, Alpha and Beta each produced two fresh scheduled heartbeats while a malformed Alpha action existed. A scheduler job logged the malformed Alpha annotation before successfully dispatching Beta's heartbeat action. The malformed action was removed after the test, and the baseline CronJob image was restored.
Proposed fix: https://github.com/apache/openserverless-operator/pull/144 (target branch 0.9.0).
- Linguagem predominante
- Python
- Estrelas
- 577
- Forks
- 29
- Merge médio
- 3d 17h
- PRs com merge (30d)
- 4
Preparar o ambiente
- Sem Dockerfile nem arquivo Docker Compose
- Tem um modelo de pull request
- Ler o guia de contribuição
Primeiros passos
- Leia a issue inteira e depois o guia de contribuição do projeto.
- Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
- Faça um fork do repositório e trabalhe em uma branch.
- Abra um pull request que referencie o número da issue.
Mais de apache/openserverless
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 85/100
apache/openserverless#269 ·
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 84/100
apache/openserverless#267 ·
-
Dificuldade 5/5 Mais de uma semana Facilidade para iniciantes 25/100
apache/openserverless#277 ·
-
Dificuldade 5/5 Mais de uma semana Facilidade para iniciantes 20/100
apache/openserverless#274 ·
-
Dificuldade 5/5 Mais de uma semana Facilidade para iniciantes 8/100
apache/openserverless#273 · 2 comentários ·
Todas as issues de apache/openserverless
Issues semelhantes
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 62/100
foxglove/mcap#1907 · 1 comentário ·
Mantenedores costumam responder em até 1 dia
-
namespace operations
Dificuldade 1/5 Menos de uma hora Facilidade para iniciantes 72/100
EclipseFdn/open-vsx.org#14623 ·
Mantenedores costumam responder em até 1 dia
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 76/100
developmentseed/titiler-cmr#261 ·
Mantenedores costumam responder em até 1 dia
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 78/100
andrewyng/openworker#774 ·
Mantenedores costumam responder em até 1 dia
-
aggfuncAberta
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 68/100
worldbank/blackmarblepy#160 ·