19 comments

  • gruez 2 hours ago
    This feels like a case of "It rather involved being on the other side of this airtight hatchway"[1]. If you can read arbitrary process memory, you're probably also in a position to just dump out the passwords by pretending to be the user in question.

    > If an attacker gains administrative access on a terminal server, they can access the memory of all logged‑on user processes.

    If an attacker has administrative access, they can also attach a debugger to every chrome process and force it to decrypt all the passwords. The only difference this really makes is in coldboot attacks, but even then it's still not clear whether it makes the attacker's job slightly easier, or allows an attack that's otherwise not possible.

    [1] https://devblogs.microsoft.com/oldnewthing/20060508-22/?p=31...

    • turtlebits 1 hour ago
      Security isn't black and white. If i leave a post-it note of my logins on my monitor, that's definitely less safe than in a unlocked drawer, and so on.
      • stouset 1 hour ago
        If I leave a post-it note of passwords on my monitor inside a vault to which only I have access, it’s not a big deal. That’s the point of the “airtight hatch” metaphor.
        • Someone1234 1 hour ago
          Right; but in the scenario of this Tweek, you've invited someone untrustworthy into the vault and are then freaking out because they can see the post-it note of passwords. It is inherently irrational.

          This issue is inherently unfixable by ANY password manager, because the process model of the underlying OS isn't itself secure. No obfuscation will work, because the password manager itself needs to de-obfuscation it before use (and that memory too is dump-able).

          All adding in-memory obfuscation does it make ignorant people feel better, while not moving the security needle even an inch.

          • stouset 1 hour ago
            I think we’re largely in agreement. I do think there’s some benefit in reducing the amount of time that a password is in cleartext in memory. But it’s pretty far down the list.
          • ignoramous 1 hour ago
            > This issue is inherently unfixable by ANY password manager, because the process model of the underlying OS isn't itself secure

            Usually the confidential bits are hardware isolated away from the supervisor (host kernel/OS) in Enclaves, Realms, TEEs, Secure Elements, Security chips, etc.

            • jazzyjackson 1 hour ago
              One more reason to use hardware-bound passkeys and not passwords.
              • Someone1234 56 minutes ago
                True. But then your hardware dies, and you're locked out of every account you own. It is objectively good security, but has a ton of usability headaches yet to be really solved.

                I've seen orgs move to passkeys only, then offer reset-questions (e.g. city of first job, etc); because the Customer Service volume/workflow wasn't figured out.

                • jazzyjackson 53 minutes ago
                  oh lawd, yes it does come down to 'who has the power to reset your account', and very few people want to take the path of 'no one has the power' in the case of lost credentials.
                • alterom 31 minutes ago
                  >your hardware dies

                  Or your backpack gets stolen.

                  Oops.

                  I swear, people who idolize passkey security must never travel anywhere.

                  PS: "just have more devices with passkeys", they invariably say.

                  Yeah right because people are made of money, everyone has the forethought, and a 2nd laptop in the US is a great asset when you're in Poland and can't login anywhere.

                  • StilesCrisis 15 minutes ago
                    I've been avoiding passkeys but more and more websites are trying to push them, and one website I use now requires them. I've already got a password manager! I don't need to change everything again!
      • gruez 1 hour ago
        > If i leave a post-it note of my logins on my monitor, that's definitely less safe than in a unlocked drawer, and so on.

        Having passwords on post-it notes does make certain types of attacks much easier. For instance, coworkers hacking other coworkers, or people burglarizing the office. None of which really apply to the "If an attacker gains administrative access on a terminal server" scenario.

        Continuing the analogy, what Edge is doing is like leaving cash in unlocked cabinets inside a vault, and what Chrome's doing is locking those cabinets with a padlock. Sure, having the padlocks makes the cash more secure, but if someone went through all the effort into breaking the vault (terminal server), a padlock probably isn't going to stop them. This is especially true nowadays with AI coding agents and ready-made stealers available for sale online.

        • forgotaccount3 1 hour ago
          > Having passwords on post-it notes does make certain types of attacks much easier.

          It also makes other attacks much harder. Namely I don't need to worry about some zero-day in my password manager.

      • RajT88 59 minutes ago
        The way to think about security is as a system of layers, each of which filters out ever more sophisticated attackers.

        We should care about all kinds of attackers, and not assume that the protections against the most sophisticated will obviate the protections against the least sophisticated.

      • yjftsjthsd-h 58 minutes ago
        Okay. Can you describe an attack / threat model where it would matter in this particular case?
        • keithnz 54 minutes ago
          isn't it at risk of any code pathway that somehow allows you exceed a buffer and read memory unbounded? Then a nefarious web page could capture that? That's a huge exposure surface.
          • Dylan16807 38 minutes ago
            I'm pretty sure a read exploit in a web page wouldn't be in the same process as the passwords.

            If you can cross over to the main Edge process, you can probably get it to remove any encryption it applied itself.

    • mintplant 22 minutes ago
      Have we already forgotten Cloudbleed [0]?

      [0] https://en.wikipedia.org/wiki/Cloudbleed

    • tardedmeme 52 minutes ago
      They want obscurity and think it's security. Everything needed to get the passwords must be present in memory but they don't want to be able to actually see the passwords directly.
    • Dwedit 1 hour ago
      Reading arbitrary process memory can be done as a standard user. No admin needed. Any Win32 program can do it. You just can't access the memory from processes that are admin-level.
      • dvt 1 hour ago
        This is not true. The canonical way to prevent access is via PAGE_NOACCESS[1]. Obviously, running as admin or in kernel mode breaks the whole thing since you can re-call `VirtualProtect` on that page and open it up.

        [1] https://learn.microsoft.com/en-us/windows/win32/memory/memor...

        • Someone1234 1 hour ago
          This is accurate as far as page protection goes. The problem is the largest threat model.

          If Process A and Process B are running in the same user context on a desktop OS, PAGE_NOACCESS is not a strong boundary by itself. Process B may be able to obtain PROCESS_VM_OPERATION/PROCESS_VM_READ, change the page protection with VirtualProtectEx, inject code that calls VirtualProtect inside Process A, load a DLL, attach as a debugger, duplicate useful handles, or tamper with the executable. That's the problem with same-user process isolation, it is a hugely leaky abstraction. There is no magical "just set this bit" fix.

          On a desktop OS, once an evil process runs under the same user context, you are relying on process DACLs, integrity levels, code-signing, anti-injection hardening, and file-system protections. You can plug one path and still have several others.

          • dvt 54 minutes ago
            This comment feels like it's written by AI. Anyway, PAGE_GUARD helps you get around VirtualProtectEx, which is a very common way of detecting userspace cheats.
        • LtdJorge 1 hour ago
          And if the malware is running as admin, you’re pretty fucked either way
          • munk-a 6 minutes ago
            Thankfully our recent experiences with OpenClaw have given us all a lot of faith that users are extremely diligent in what processes they allow access to what information.
    • wat10000 1 hour ago
      There's little hope of protecting against a snooper seeing the passwords you actually use, since they have to exist in plaintext at some point. But there's no reason to expose the entire password database when no passwords are even being used.
    • dvt 1 hour ago
      This is 100% that case. Basically every form (like this very one I'm typing in) is held in userspace memory un-encrypted. And yet lawyers and doctors and CIA operatives all use forms to type very sensitive stuff in.

      It would be stupid, wasteful, and overly-complex to encrypt forms just in case some malicious process somehow got ring0 access. In that case, a keylogger is likely more useful anyway. And you're fucked even if you are encrypting stuff (as keys are likely also somewhere in memory[1] and they need to be—gasp—unencrypted). There's no free lunch.

      Stupid Twitter thread meant to rage-bait for engagement.

      [1] They could also be on disk or on some peripheral, but still fully readable by a motivated-enough hacker.

  • ylk 38 minutes ago
    For reference, this is how Google says Chrome stores passwords encrypted in memory and uses an elevated service to prevent other processes from impersonating Chrome and gaining access to the plain text passwords: https://security.googleblog.com/2024/07/improving-security-o...
  • matof 19 minutes ago
    Edge is built by a company not focusing on user data-protection, so no surprise here. At least Brave and Firefox are usable and actual competitors, but have a business model based on user security rather than data.
  • kleiba2 1 hour ago
    Does this tool access an Edge instance running on the same machine? Couldn't you then just simply export all saved passwords anyway?

    https://support.microsoft.com/en-us/topic/export-passwords-i...

    • riedel 1 hour ago
      Password managers often go through quite some hassle to keep passwords 'safe' in memory. However, I often do not get the attack model of many of those tools. Tools like keepass e.g. go through quite to register a browser plugin. But then anyone with normal user rights can extract that key from the browser and do everything with it. Also this whole 'trust this browser' stuff of web apps seems strange if one e.g. can read the cookie store easily...
  • timedude 43 minutes ago
    That's kinda stupid. The passwords could get swapped to disk in the swap file in plaintext when memory is low by the OS.
    • alterom 27 minutes ago
      You say this as if accessing that file was any easier than accessing memory.
      • mintplant 23 minutes ago
        If I have a disk image or access to the physical drive, it's trivial. This means they can no longer be considered encrypted at rest.
  • OptionOfT 13 minutes ago
    I think in general one should not assume anything in Edge is done correctly. Microsoft Edge is the place where things get tried out my Microsoft, that's why it changes so fast. It has a built-in updater that is not tied to Windows update, and as such they can iterate incredibly fast.
  • nubinetwork 1 hour ago
    Yeah, you can probably do the same thing to pam on linux... just attach gdb to openssh or your getty login process.
  • dkenyser 1 hour ago
    Anyone have a link to the source code for this .exe? Would love to see _how_ it's extracting them.
  • myHNAccount123 1 hour ago
  • mfro 2 hours ago
    To be fair, 'loads into memory' and 'stores' are not the same thing.
    • saghm 1 hour ago
      The headline here says "stores in memory", which sounds pretty much identical to me. Can you elaborate on what you consider the difference between "loading" and "storing" into memory?
      • mfro 1 hour ago
        When someone says passwords are ‘stored’, the assumption will always be ‘stored on disk’. ‘stores in memory’ is not an accurate representation because memory is inherently volatile and they are loaded there temporarily. Plaintext on disk is egregious, plaintext in memory is considerably less so.
        • jazzyjackson 41 minutes ago
          especially when the point of a password manager is to stick a plaintext string into a webpage, which then transmits the plain text to a remote server. passwords are just not a very good solution to keeping secrets.
          • StilesCrisis 7 minutes ago
            Never enter your password into a website that doesn't use https.
  • fsflover 21 minutes ago
    I don't understand, who are all these people who care about security and at the same time are using Microsoft Edge. Could someone enlighten me?
  • jmclnx 1 hour ago
    In this day and time Microsoft should really know better. But I have seen this, and worse, happen over and over again in some fortune 500 companies with ERP and in-house systems.

    I would think this is a local vulnerability assuming Windows works as other OSs.

  • busterarm 1 hour ago
    For anyone that thinks this is an Edge-specific dunk, Chrome does not hash your passwords and they are cleartext in memory while Chrome is running (which for most users is always).
    • bobbiechen 1 hour ago
      This is generally true of every application that handles sensitive data. Unless you explicitly clear that memory, it's likely to hang around forever.

      For example, here is a 2019 writeup from KeePassXC with similar notes: https://keepassxc.org/blog/2019-02-21-memory-security/ - even though they explicitly clear sensitive data, there is still a window of opportunity.

      During my time working on confidential computing, we had a variety of demos showing similar attacks against lots of different datastores, scripts, etc. That's just how computers work and your options are very limited if this is part of your threat model (imo just confidential computing and, if you can handle the performance hit, fully-homomorphic encryption).

    • Someone1234 1 hour ago
      Password hashes are one-directional lossy storage. If a password manager "hashed your password" it would be essentially deleting your password and replacing it with something else which cannot be used to log into anything. The password MUST be recoverable to plain-text to replay it to a website.

      But you're correct that Chrome, Firefox, Edge, Lastpass, BitWarden, even Keepass have the same issue. It is an Operating System limitation, not a password manager problem.

  • FuriouslyAdrift 1 hour ago
    A reminder that Edge is just Chromium plus some Microsoft hooks for automated SSO.
  • WolfeReader 1 hour ago
    Please use a dedicated password manager, instead of a browser-based one. KeePass is likely the best going forward.
    • sedatk 1 hour ago
      @taviso had claimed the exact opposite: https://lock.cmpxchg8b.com/passmgrs.html

      EDIT: Yes, he claimed that for online password managers, not keepass. I thought the argument was about password managers in general.

      • echelon_musk 1 hour ago
        Where?

        > Good examples of simple and safe password managers are keepass and keepassx

      • WolfeReader 1 hour ago
        Browser-based password management serves the purpose of locking users into a specific browser; I'd much rather have the freedom to switch browsers at will without the cognitive tax of securely moving all my creds every time I want to switch my main browser.
        • sedatk 1 hour ago
          I agree. It's especially problematic when you use different browsers on different devices and operating systems.
      • busterarm 1 hour ago
        That's not what that is saying. It's saying don't use an _online_ password manager instead of the browser one. In the very opening they state that simple implementations are great and even lists some. Then the rest of the article dives specifically into online password managers, which are something else.
        • sedatk 1 hour ago
          You're right. Edited my comment.
    • 75central 1 hour ago
      Out of curiosity, why KeePass versus Bitwarden? I've been using Bitwarden for years, but if there's a specific reason I should be using KeePass instead, I'm open to changing.
      • dcanelhas 1 hour ago
        KeePass is just an encrypted database file with UI around it for usability. You can keep the db on a USB drive, sync it through a cloud storage, e-mail it to yourself, whatever ... It's really not that complicated. BitWarden is the above as a service, I reckon.

        Nb. The above refers to KeePassX. No idea what the KeePass without the x is about. Naming things. So hard.

      • kelvinjps10 41 minutes ago
        Bitwarden is cloud bases keepass is local
      • WolfeReader 1 hour ago
        Bitwarden has taken investor money, sadly. It's still in good shape for the moment. But the time will come when they place profits above other needs; it's a matter of when, not if.
        • jazzyjackson 57 minutes ago
          Luckily offering enterprise / credential sharing features is a decent freemium model. It still wins out in keeping compatibility with self hosted vaultwarden, are there other extensions that let you point to your own domain for the encrypted blob storage?
    • Someone1234 1 hour ago
      If it is a process, running in the same user context, with the ability to read/dump arbitrary memory -- As the KeePass database is decrypted it would "store all passwords in memory in plain text" too.

      The fix isn't Edge Vs. Chrome. Vs KeePass Vs. Bitwarden, it is "How do I have my passwords exist in a different execution context than [evil process able to read all memory]?"

      Android and iOS have an "answer" to this problem. Desktop OSs having all processes running side by side in the user's execution context, do not. It is only as secure as the least secure process running.

      • jazzyjackson 56 minutes ago
        Windows 11* and MacOS also do the job as long as you're using hardware bound passkeys.

        * I don't want to speak past my own experience so checking my work, Windows can store passkeys in a TPM if available but falls back to storing on disk... https://helgeklein.com/blog/checking-windows-hello-for-busin...

      • WolfeReader 1 hour ago
        This makes me miss running Qubes a few years ago, and keeping BitWarden in a separate VM from everything else. I've never felt as secure as when I had that setup.
      • wat10000 1 hour ago
        I'm pretty sure macOS is more like iOS in this respect. At the very least, the passwords are typically secured biometrically and only the one being used is actually decrypted at the time of use.
  • thumbsup-_- 1 hour ago
    Its Microsoft doing Microsoft things
    • washingupliquid 1 hour ago
      Linux stores plenty of passwords in clear text in /etc and $HOME and this is considered acceptable by most users. These same people also believe the TPM is a spy chip.
      • simonh 1 hour ago
        You really need to upgrade to UNIX Version 6 or later. Some of the improvements since 1974 are well worth having.
      • abhinavk 40 minutes ago
        You know `/etc/passwd` doesn't really have passwords in it.
      • vondur 1 hour ago
        Really in /etc plain text? I could see some random app possibly doing that somewhere in ~/.config, but I don't think Linux itself stores passwords in plain text for systemwide use.
        • tgv 39 minutes ago
          I think the commenter means that some Linux applications store the passwords they need for access to external resources in plain text.
      • josefritzishere 1 hour ago
        I thought Linux stored plain text credentials owned by root that require elevated permissions.
      • cwillu 1 hour ago
        > Linux stores plenty of passwords in plain text in /etc

        That's gonna be a big ol' [CITATION NEEDED] from me, dawg.

        • SoftTalker 1 hour ago
          Wifi passwords in /etc/netplan files, is one I can think of.
        • fragmede 44 minutes ago
          I haven't solved the problem of sensitive .env files sitting around on my computer.
          • spacemule 20 minutes ago
            `sops exec-env`

            I have an alias set for when I'm working with opentofu:

            `alias tfenter='sops exec-env secrets.yaml "/bin/bash"'`

            I encrypt with openbao's transit engine and backup age key kept in a password manager, so no secrets live on disk.

  • jdlyga 1 hour ago
    My brain stores all my passwords in memory in clear text too
  • mghackerlady 2 hours ago
    Why wouldn't it? What else would you expect from the p̶e̶o̶p̶l̶e̶ masochists who subjected us to internet explorer