Security: Post Request Query Parameters Persist in Memory Long After Request is Made
Reported by
dxa4...@g.rit.edu,
Dec 29 2016
|
|
Issue descriptionVULNERABILITY DETAILS Browser "Remembers" post requests long after request is made, including login requests to common services such as Gmail, Dropbox, etc... long after the request is made. This enables an attacker to steal cleartext passwords out of memory long after the user has logged in. In the case of Gmail, I was able to extract my password out of memory at least 1 hour following a login request. Several tools abuse this, by reading process memory, they are listed below https://github.com/putterpanda/mimikittenz https://github.com/dxa4481/mimikittenz4Linux https://github.com/n1nj4sec/memorpy/blob/master/examples/mimikittenz.py Ideally POST request parameters should be purged from memory immediately following the request to prevent an attacker from being able to retroactively run tools that extract bulk passwords out of memory. VERSION Chrome Version: [55.0.2883.87] + [stable] Operating System: [Ubuntu 16.04] (Others too) REPRODUCTION CASE -Log into Gmail -Run any of the tools listed above (here's mine https://github.com/dxa4481/mimikittenz4Linux)
,
Dec 31 2016
Thank you for the reply. If you don't mind me asking, what is the use case for remembering post parameters up to an hour (or longer) following the login? Is that data ever used internally? Why does it float around? I respect your decision to label this issue as not a security issue, however I will add a few extra resources, the first being the Verizon breach report (https://regmedia.co.uk/2016/05/12/dbir_2016.pdf) showing 63% of confirmed data breaches involved weak, default or stolen passwords. The issue isn't just with the web services, it's with a more systemic problem of password reuse, which makes the passwords far more valuable than session tokens. I'll also point to the Mimikatz tool (https://github.com/gentilkiwi/mimikatz) which dumps cleartext windows passwords, and also requires system level access, however is widely used by criminals and nation state actors alike over other means you mentioned such as network monitoring, keylogging, and token stealing. The ultimate response from Microsoft was to no longer persist login credentials in memory for operating systems >=8.1 All of this is likely information you already know, however I'm including it for any other onlookers now that the issue is open to the public.
,
Jan 1 2017
I would also like to add I just tested this on an incognito window, and data remains in memory following the closing of the incognito window.
,
Jan 2 2017
It's not that there is necessarily a use case for retaining data in memory, it is more likely that the memory is being freed without also being re-allocated + overwritten for some time. The concern is simply that it would be a lot of effort to try to find every place where memory scrubbing before free() would make sense, with marginal benefit to users since the same data can be obtained in different ways in the event of a system compromise. |
|
►
Sign in to add a comment |
|
Comment 1 by kenrb@chromium.org
, Dec 31 2016Components: Security
Labels: -Type-Bug-Security -Restrict-View-SecurityTeam Type-Feature
Status: Untriaged (was: Unconfirmed)