Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Events added from Thunderbird are publicly visible #749

Open
dominique-unruh opened this issue May 8, 2024 · 10 comments
Open

Events added from Thunderbird are publicly visible #749

dominique-unruh opened this issue May 8, 2024 · 10 comments
Labels
enhancement New feature or request

Comments

@dominique-unruh
Copy link

Describe the problem and steps to reproduce it:

When I add an event from an invitation, it has public visibility in Google calendar.

Steps:

  • Select an invitation email to an event. (Those I get are often from Outlook/Exchange)
  • Click on the "Accept" button in the bar over the email.
  • Open the Google calendar and check the event details.
  • Visibility level is "Public" (not "Private" or "Default visibility")

What happened?

The event is visible to everyone who has a link to the calendar, even if they were only given a link to the free/busy view.

What did you expect to happen?

Events are created with "Default visibility" (or it should be configurable).

Anything else we should know?

@kewisch
Copy link
Owner

kewisch commented May 13, 2024

Hi Dominique, thanks for reporting. Could you add some logging info with logging enabled, during the time the event is imported into your calendar, and maybe attach the redacted .eml from the invitation?

@kewisch kewisch added the needinfo Need more information label May 13, 2024
@dominique-unruh
Copy link
Author

I needed to wait till I got another invitation (each can be used only once).
To my surprise, this time the problem did not occur.
I will experiment to see if I can recover the original situation. (This may take a while because I can try each invitation only once because it can be added only once.)

@github-actions github-actions bot removed the needinfo Need more information label May 22, 2024
@dominique-unruh
Copy link
Author

dominique-unruh commented May 27, 2024

I reproduced the problem. A sanitized log is attached.

console-export-2024-5-27_16-28-0.txt

The bug did not occur when I had created a local Thunderbird calendar, and two Google calendars. and added an event to the first of the Google calendars.

But when I deleted the local calendar (only the two Google calendars left), the bug occurred when adding to the first calendar.

Of course there might be other variables that changed between the two experiments.

@kewisch
Copy link
Owner

kewisch commented Jun 5, 2024

Can you also attach or check the actual invitation email sources? If the contained event has CLASS:PUBLIC, then this will be considered a public event and that setting will propagate to your Google Calendar.

@kewisch kewisch added the needinfo Need more information label Jun 5, 2024
@dominique-unruh
Copy link
Author

You are right! The event did contain CLASS:PUBLIC:

sanitized.ics.txt

I'm not attaching the whole email here because it was too difficult to sanitize. I added the base64-decoded ICS from the mail source. I assume it comes from creating an invite from an MS Exchange calendar or similar. One of the headers in the mail is:

x-ms-exchange-calendar-series-instance-id: XXXXXXXXXXXXXXXXX (sanitized base64-looking string)

So it seems clarified why the calendar events are public. But this leaves the question whether they should be public. I can't see a good reason why the inviting person should control the visibility of an event in the invited person's calendar. And additionally, I assume that this is not done intentionally, but is a bug (or at least strange behavior) of MS Exchange.

Since it is unlikely that we can get MS to fix that, I think the best would be to add all event with the default visibility (i.e. strip out the CLASS:PUBLIC). Otherwise there is a high risk of leaking confidential information.

@github-actions github-actions bot removed the needinfo Need more information label Jun 5, 2024
@kewisch
Copy link
Owner

kewisch commented Jun 6, 2024

What happens if you accept the event from within the Gmail web UI? Is the imported event public or default?

@kewisch kewisch added the needinfo Need more information label Jun 6, 2024
@dominique-unruh
Copy link
Author

I copied the email to a GMail account via IMAP (since my normal account that gets calendar invites is not GMail).

I do not get a UI element for accepting, only this:

image

@github-actions github-actions bot removed the needinfo Need more information label Jun 6, 2024
@kewisch
Copy link
Owner

kewisch commented Jun 12, 2024

There need to be a few values set w.r.t. organizers, attendees, and some headers, if this doesn't match it won't show. Maybe you could replicate as follows:

  1. From an outlook account, making sure it sends CLASS:PUBLIC, invite your gmail account directly.
  2. Instead of through Thunderbird, go to the gmail web ui and accept the event.
  3. Subscribe to the Google Calendar and check what the properties of the new event are.

@kewisch kewisch added the needinfo Need more information label Jun 12, 2024
@dominique-unruh
Copy link
Author

I managed to follow those steps.

  1. I created an event from Outlook Web and invited my Google Account.
  2. I decoded the base64-encoded .ics file from the message source. It contains CLASS:PUBLIC.
  3. I clicked "yes" in GMail when it asked how I want to respond to the event.
  4. I checked in my Google calendar. The event said "default visibility"
  5. I exported the calendar to .ics (via the private link), and searched for the event. It does not contain any CLASS:

(XXXXXXX marks privatized parts in the snippets below)

The base64-decoded event was:

BEGIN:VCALENDAR
METHOD:REQUEST
PRODID:Microsoft Exchange Server 2010
VERSION:2.0
BEGIN:VTIMEZONE
TZID:(UTC+01:00) Amsterdam\, Berlin\, Bern\, Rome\, Stockholm\, Vienna
BEGIN:STANDARD
DTSTART:16010101T030000
TZOFFSETFROM:+0200
TZOFFSETTO:+0100
RRULE:FREQ=YEARLY;INTERVAL=1;BYDAY=-1SU;BYMONTH=10
END:STANDARD
BEGIN:DAYLIGHT
DTSTART:16010101T020000
TZOFFSETFROM:+0100
TZOFFSETTO:+0200
RRULE:FREQ=YEARLY;INTERVAL=1;BYDAY=-1SU;BYMONTH=3
END:DAYLIGHT
END:VTIMEZONE
BEGIN:VEVENT
ORGANIZER;XXXXXXXXXXXXXXXXXXXX
ATTENDEE;XXXXXXXXXXXXXXX
DESCRIPTION;LANGUAGE=en-US:\n
UID:040000008200E00074C5B7101A82E008000000009656524061C9DA01000000000000000
 0100000003DA3CAD1612AAB4385EDBF4A67A19BC0
SUMMARY;LANGUAGE=en-US:Test cal
DTSTART;TZID="(UTC+01:00) Amsterdam, Berlin, Bern, Rome, Stockholm, Vienna":2
 0240628T160000
DTEND;TZID="(UTC+01:00) Amsterdam, Berlin, Bern, Rome, Stockholm, Vienna":202
 40628T170000
CLASS:PUBLIC
PRIORITY:5
DTSTAMP:20240628T134942Z
TRANSP:OPAQUE
STATUS:CONFIRMED
SEQUENCE:0
LOCATION;LANGUAGE=en-US:
X-MICROSOFT-CDO-APPT-SEQUENCE:0
X-MICROSOFT-CDO-OWNERAPPTID:2122769302
X-MICROSOFT-CDO-BUSYSTATUS:TENTATIVE
X-MICROSOFT-CDO-INTENDEDSTATUS:BUSY
X-MICROSOFT-CDO-ALLDAYEVENT:FALSE
X-MICROSOFT-CDO-IMPORTANCE:1
X-MICROSOFT-CDO-INSTTYPE:0
X-MICROSOFT-DONOTFORWARDMEETING:FALSE
X-MICROSOFT-DISALLOW-COUNTER:FALSE
BEGIN:VALARM
DESCRIPTION:REMINDER
TRIGGER;RELATED=START:-PT15M
ACTION:DISPLAY
END:VALARM
END:VEVENT
END:VCALENDAR

The event exported from the calendar was

BEGIN:VEVENT
DTSTART:20240628T140000Z
DTEND:20240628T150000Z
DTSTAMP:20240628T135331Z
ORGANIZER;XXXXXXXXXXXXXXXX
UID:040000008200E00074C5B7101A82E008000000009656524061C9DA01000000000000000
 0100000003DA3CAD1612AAB4385EDBF4A67A19BC0
ATTENDEE;XXXXXXXXXXXX
ATTENDEE;XXXXXXXXXXXXXX
ATTENDEE;XXXXXXXXXXXXX
CREATED:20240628T134942Z
DESCRIPTION:\n
LAST-MODIFIED:20240628T135018Z
SEQUENCE:0
STATUS:CONFIRMED
SUMMARY:Test cal
TRANSP:OPAQUE
X-MICROSOFT-CDO-INSTTYPE:0
X-MICROSOFT-CDO-APPT-SEQUENCE:0
X-MICROSOFT-CDO-ALLDAYEVENT:FALSE
X-MICROSOFT-CDO-OWNERAPPTID:2122769302
X-MICROSOFT-CDO-INTENDEDSTATUS:BUSY
X-MICROSOFT-DISALLOW-COUNTER:FALSE
X-MICROSOFT-DONOTFORWARDMEETING:FALSE
X-MICROSOFT-CDO-IMPORTANCE:1
X-MICROSOFT-CDO-BUSYSTATUS:TENTATIVE
END:VEVENT
END:VCALENDAR

@github-actions github-actions bot removed the needinfo Need more information label Jun 28, 2024
@kewisch
Copy link
Owner

kewisch commented Jul 3, 2024

Alright, thanks. I'd consider this an enhancement to remove certain props for invitations, but acknowledging it would be great to have!

@kewisch kewisch added the enhancement New feature or request label Jul 3, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

2 participants