Attacker obtains code execution in proxy VM mitigated
THREATQW23
· Mitigated: Controls in place bring the risk down to an acceptable level.
· Defined in catalog.py:3344
- Risk
- High impact × Medium likelihood = 9 high
- After mitigations
- High impact × Low likelihood = 6 medium
An attacker that gains code execution in the sd-proxy VM can intercept and modify traffic between the client running in sd-app and the Securedrop instance's journalist interface. An attacker could delete sources, submissions or download encrypted submissions and replies, or send messages to sources. An attacker may also exfiltrate the journalist interface ATHS token.
Threat actors: Nation State / Law Enforcement
Mitigations
| Mitigation | Status |
|---|---|
| qrexec that proxies API requests and responses only to SecureDrop application server MITIGQW19 | implemented |
Related threats
This threat is part of: Vulnerability introduced in provisioning code THREATQW15
Smaller threats that make up this one:
- Privilege escalation (Xen vulnerability) THREATQW11 accepted
- Vulnerability in the QubesOS management layer THREATQW27 transferred
- Attacker tampers with replies in sd-proxy THREATQW42 accepted
- Journalist interface hidden service secret exfiltrated THREATQW39 partially mitigated
- Journalist Interface credentials exfiltrated (passphrase, single code, username), and API token THREATQW38 partially mitigated
- Adversary exploits gzip parsing to get code execution THREATQW37 accepted
Where it applies
Applies to 1 component in 1 scenario.
Workstation: reading submissions · sd-proxy
Notes
Existing mitigations: - Submissions, messages and replies go through sd-proxy encrypted with the gpg encryption key. - securedrop.Proxy qubes-rpc policy only allows sd-app, and requests from all other AppVMs are denied. - We wrote a qrexec service that proxies API requests only to the Journalist Interface (MITIGQW19). Further mitigations: sd-proxy uses a whonix-workstation template, and may present extra attack surface.
How this threat is matched
Listed for these components. A boundary covers every component inside it.