Automattic / Automattic/simplenote-android

Passcode can be bypassed via FAB in note list widget

Open
#1,442 1 comment 0 reactions 0 assignees View on GitHub
[feature] widgets [Type] Bug
Dominant language
Java
Stars
1.9k
Forks
318
Avg merge
15h 23m
Merged PRs (30d)
5

Description

This is a bit of an edge-case.

### Expected
Since passcode is a measure to protect notes from being viewed, it should be impossible to fully view any note without passcode, if passcode is activated.

### Observed
When `Note List` widget is added, it already previews a bit of a note content, but it's up to the user (they can have condensed mode activated). The issue is that when the user clicks `New Note` button in the widget, they will not be asked for a passcode. After that, they will be able to insert an interlink to any note by typing `[...`, going to preview mode, and opening the referred note. Video below partly shows this (screenshots not available with passcode activated. The first seconds are a proof that passcode is activated, what happens next during blackout is described in steps below):

https://user-images.githubusercontent.com/73365754/129021663-3ef629cc-389b-4299-a8a4-ad7339bdbf4e.mp4

### Reproduced
1. Have passcode enabled
2. Add `Note List` widget to your home screen
3. Expand the widget vertically enough to see the FAB
4. Tap the FAB ~> you will be redirected to new note creation without being asked for passcode.
5. Enable markdown
6. Type `[x` where x is a starting letter of some of your notes name
7. Tap the proposed note from autocomplete pop-up ~> the interlink will be inserted
8. Open Preview and tap the interlink ~> you will see the other note full content.

Device Make: Samsung Galaxy
Device Model: A31
Android Version: 10
Simplenote Version: 2.19-rc-1

Contributor guide

Open the contributing guide

Research direction

Start by tracing the Note List widget FAB's new-note flow and checking where the passcode gate is applied. Then follow the markdown interlink autocomplete and preview path described in the reproduction steps; done means passcode-protected users cannot reach another note's full content through this route.

Written by the indexing model from the issue text.

Assessment

Tech stack
android, java
Domain
authentication, mobile, security
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.