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)
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
- Server-side session management: session IDs invalidated upon logout MITIG173 proposed
- Password change should invalidate current session MITIG174 proposed
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.