Skip to content

GitLab

  • Projects
  • Groups
  • Snippets
  • Help
    • Loading...
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Sign in
E
evolution-data-server
  • Project overview
    • Project overview
    • Details
    • Activity
    • Releases
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
  • Issues 41
    • Issues 41
    • List
    • Boards
    • Labels
    • Service Desk
    • Milestones
  • Merge Requests 0
    • Merge Requests 0
  • CI / CD
    • CI / CD
    • Pipelines
    • Jobs
    • Schedules
  • Operations
    • Operations
    • Incidents
    • Environments
  • Packages & Registries
    • Packages & Registries
    • Container Registry
  • Analytics
    • Analytics
    • CI / CD
    • Repository
    • Value Stream
  • Wiki
    • Wiki
  • Snippets
    • Snippets
  • Members
    • Members
  • Collapse sidebar
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
  • GNOME
  • evolution-data-server
  • Issues
  • #164

Closed
Open
Opened Oct 15, 2019 by Robert@rookies

HSTS (RFC 6797) support for "On The Web" calendars

When a calendar is added to Evolution using "New Calendar" -> "On The Web" and an HTTP URL is entered, the URL is accessed via HTTP (not HTTPS) for each refresh, even when the server redirects to HTTPS with 301 Moved Permanently and sends a Strict-Transport-Security header.

If the calendar requires HTTP basic authentication and the credentials are stored in the keyring, a MITM attacker can perform a SSL stripping attack to obtain them because if an attacker prevents the redirect to HTTPS, Evolution sends the credentials over HTTP without asking the user.

This behavior happens in the newest stable release of Evolution (3.34.1) and also an older release used by Ubuntu (3.28.5). However, the newest release even sends the credentials unasked via HTTP (before the redirect to HTTPS happens), which means that even a passive eavesdropper could obtain the password. This is not possible for the older version (3.28.5) I tested.

Steps to reproduce:

  1. Set up a server which
  • provides an iCal file via HTTP and HTTPS
  • requires HTTP basic authentication
  • redirects all HTTP requests to HTTPS
  • sends the Strict-Transport-Security header
  • logs the used protocol (HTTP or HTTPS) and Authorization header for each incoming request
  1. In Evolution, add the HTTP URL to the iCal file via "New Calendar" -> "On The Web" and enter the credentials
  2. Refresh the calendar

For each refresh with version 3.34.1 of Evolution, you will see two requests (the first one via HTTP, the second one via HTTPS), both with the provided credentials. For each refresh with version 3.28.5 of Evolution, you will again see two requests (the first one via HTTP, the second one via HTTPS), but only the second one with the provided credentials.

This issue could be solved by implementing HTTP Strict Transport Security (HSTS) in Evolution.

Edited Oct 16, 2019 by Milan Crha
To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information
Assignee
Assign to
None
Milestone
None
Assign milestone
Time tracking
None
Due date
None
Reference: GNOME/evolution-data-server#164