[Security] Add explicit egress policy to calendar sync URL fetches #12

Closed
opened 2026-07-11 12:51:17 +02:00 by zemion · 1 comment
Owner

The full audit confirms the existing calendar egress concern: CalDAV/ICS/EWS/Graph sync performs dynamic outbound URL requests. Some URLs are admin-configured, but there is no shared egress policy yet.

Classification: structural security work.

Report evidence:

  • govoplan-calendar/src/govoplan_calendar/backend/caldav.py:313.
  • govoplan-calendar/src/govoplan_calendar/backend/service.py:752.
  • Bandit: B310; Semgrep: dynamic-urllib-use-detected.
  • Related existing issue: govoplan-calendar#8.

Suggested next steps:

  • Define calendar sync source URL policy: HTTP(S)-only, private network policy, redirect policy, timeout and size limits, optional allowlists.
  • Use the policy before CalDAV/ICS/EWS requests.
  • Add narrow scanner annotations after policy enforcement.

Baseline report directory: audit-reports/govoplan-full-20260711-1238

<!-- codex-audit-full-2026-07-11:calendar-egress-audit --> The full audit confirms the existing calendar egress concern: CalDAV/ICS/EWS/Graph sync performs dynamic outbound URL requests. Some URLs are admin-configured, but there is no shared egress policy yet. Classification: **structural security work**. Report evidence: - `govoplan-calendar/src/govoplan_calendar/backend/caldav.py:313`. - `govoplan-calendar/src/govoplan_calendar/backend/service.py:752`. - Bandit: `B310`; Semgrep: `dynamic-urllib-use-detected`. - Related existing issue: `govoplan-calendar#8`. Suggested next steps: - Define calendar sync source URL policy: HTTP(S)-only, private network policy, redirect policy, timeout and size limits, optional allowlists. - Use the policy before CalDAV/ICS/EWS requests. - Add narrow scanner annotations after policy enforcement. Baseline report directory: `audit-reports/govoplan-full-20260711-1238`
zemion added the
type
bug
priority
p1
module/calendar
status
ready
codex/ready
labels 2026-07-11 12:51:17 +02:00
Author
Owner

Closing as duplicate of existing govoplan-calendar#8. Full-audit evidence has been posted there.

Closing as duplicate of existing `govoplan-calendar#8`. Full-audit evidence has been posted there.
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: add-ideas/govoplan-calendar#12
No description provided.