From 1ebc9324173d6f6b5db717ac4f36cbf2a8f5ece6 Mon Sep 17 00:00:00 2001 From: Maymun <139681654+maymuneth@users.noreply.github.com> Date: Sat, 4 Apr 2026 23:38:55 +0300 Subject: [PATCH] fix(security): validate cron deliver platform name to prevent env var enumeration --- cron/scheduler.py | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/cron/scheduler.py b/cron/scheduler.py index e6bc09e2..8beff901 100644 --- a/cron/scheduler.py +++ b/cron/scheduler.py @@ -135,7 +135,14 @@ def _resolve_delivery_target(job: dict) -> Optional[dict]: "thread_id": origin.get("thread_id"), } - chat_id = os.getenv(f"{platform_name.upper()}_HOME_CHANNEL", "") + _KNOWN_PLATFORMS = { + "telegram", "discord", "slack", "whatsapp", "signal", + "matrix", "mattermost", "dingtalk", "feishu", "wecom", + "sms", "email", "webhook", + } + if platform_name.lower() not in _KNOWN_PLATFORMS: + return None + chat_id = os.getenv(f"{platform_name.upper()}_HOME_CHANNEL", "") if not chat_id: return None