Cron: malformed tenant annotation can stop scheduled actions of other tenants
Personne n'a encore pris cette issue.
Évaluation
- Difficulté
- 3/5
- Temps estimé
- 1-2 jours
- Accessibilité débutants
- 20/100
Piste de recherche
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.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Description
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).
- Langage dominant
- Python
- Étoiles
- 577
- Forks
- 29
- Merge moyen
- 3 j 17 h
- PR mergées (30 j)
- 4
Préparer son environnement
- Aucun Dockerfile ni fichier Docker Compose
- Propose un modèle de pull request
- Lire le guide de contribution
Par où commencer
- Lisez l'issue en entier, puis le guide de contribution du projet.
- Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
- Forkez le dépôt et travaillez sur une branche.
- Ouvrez une pull request qui référence le numéro de l'issue.
Autres issues de apache/openserverless
-
Difficulté 2/5 1-3 heures Accessibilité débutants 85/100
apache/openserverless#269 ·
-
Difficulté 2/5 1-3 heures Accessibilité débutants 84/100
apache/openserverless#267 ·
-
Difficulté 5/5 Plus d'une semaine Accessibilité débutants 25/100
apache/openserverless#277 ·
-
Streamer 0.9.0 hardening: authenticated callbacks and backward-incompatible client migrationOuverte
Difficulté 5/5 Plus d'une semaine Accessibilité débutants 20/100
apache/openserverless#274 ·
-
Difficulté 5/5 Plus d'une semaine Accessibilité débutants 8/100
apache/openserverless#273 · 2 commentaires ·
Toutes les issues de apache/openserverless
Issues similaires
-
Difficulté 2/5 1-3 heures Accessibilité débutants 85/100
gramaziokohler/compas_timber#870 ·
-
bug
Difficulté 2/5 1-3 heures Accessibilité débutants 82/100
autowarefoundation/autoware_carla_scenario#500 ·
Les mainteneurs répondent en général sous 1 jour
-
good first issue priority: low size: XS testing
Difficulté 1/5 1-3 heures Accessibilité débutants 86/100
cubrid-lab/cubrid-mcp-server#385 ·
Les mainteneurs répondent en général sous 1 jour
-
good first issue priority: low size: S testing
Difficulté 2/5 1-3 heures Accessibilité débutants 85/100
cubrid-lab/cubrid-cookbook-python#447 ·
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 2/5 1-3 heures Accessibilité débutants 78/100