Session management vulnerability in Source interface mitigated
THREAT19
· Mitigated: Controls in place bring the risk down to an acceptable level.
· Defined in catalog.py:343
- Risk
- Medium impact × Low likelihood = 4 medium
- After mitigations
- Medium impact × Low likelihood = 4 medium (unchanged)
An adversary that can compromise a user's session and perform action of the service on the user's behalf, such as uploading documents, sending messages and viewing journalist responses.
Threat actors: Any
Mitigations
| Mitigation | Status |
|---|---|
| Use of Flask session management MITIG63 | implemented |
| Session timeout on both interfaces MITIG17 | 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 |
Possible further mitigations
- Ensure multiple concurrent sessions not possible MITIG73 proposed
- Secure cookie flag if TLS enabled on source interface MITIG66 proposed
- Server-side session management: session IDs invalidated upon logout MITIG173 proposed
Where it applies
Applies to 1 component in 2 scenarios.
Source submission · Source Interface
Supply chain and dependencies · Source 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) Session data (minus language) is discarded at logout (MITIG172), all session data is deleted upon exit of Tor Browser (MITIG18). Further mitigations: Verify that the application does not allow multiple active concurrent sessions (MITIG73). Enable "Secure" flag for cookies if TLS is enabled on source interface (MITIG66). Server-side session management (e.g. like in Django) (MITIG173). Automated test for mitigation: Yes.
How this threat is matched
Listed for these components. A boundary covers every component inside it.