Session management vulnerability in Journalist interface mitigated

THREAT7 · Mitigated: Controls in place bring the risk down to an acceptable level. · Defined in catalog.py:134

Risk
High impact × Low likelihood = 6 medium
After mitigations
High impact × Low likelihood = 6 medium (unchanged)

How statuses and scores work

An adversary that can compromise a journalist or admin session and perform action of the service on the journalist's behalf, such as downloading encrypted documents, deleting encrypted documents and messages, send messages to sources and create new journalist/admins (if account compromised is admin account).

Threat actors: Nation State / Law Enforcement Large Corporation

Mitigations

Mitigation Status
Use of Flask session management MITIG63 implemented
Session timeout on both interfaces MITIG17 implemented
Journalist interface: Set-Cookie ^(.*)$ $;HttpOnly MITIG171 implemented
All session data deleted upon logout except language so the logout messages can be localized MITIG172 implemented
Sources instructed to restart browser or clear the session to delete session cookie MITIG18 implemented
HidServAuth token on journalist interface MITIG3 implemented

Possible further mitigations

Where it applies

Applies to 1 component in 2 scenarios.

Journalist triage · Journalist Interface
Workstation: reading submissions · Journalist Interface

Notes

Existing mitigations: Flask is used for client-side session management (MITIG63). Sessions are invalidated when a user logs out and time out after 120 minutes (MITIG17). Cookie paths are set and attributes are set to "HttpOnly" (MITIG171). Session data (minus language) is discarded at logout (MITIG172), all session data is deleted upon exit of Tor Browser (MITIG18). JI runs on stealth onion service (MITIG3). Further mitigations: Server-side session management. Session IDs should be stored and not reused - once a user logs off they should be invalidated and deleted. Verify that the application does not allow multiple active concurrent sessions. (MITIG173). Password change on journalist interface should invalidate current session ID and ask for new session (MITIG174). Automated test for mitigation: Yes.

How this threat is matched

Listed for these components. A boundary covers every component inside it.