Bug 1788004 Comment 19 Edit History

Note: The actual edited comment in the bug view page will always show the original commenter’s name and original timestamp.

**Important: These STR can leave your system in an unbootable and/or corrupt state. Please follow them in a virtual machine.**

Steps to reproduce the `std::sys::windows::rand::fallback_rng` crash:

- Take a snapshot of your VM, and boot it.
- Install the Firefox version you want to test.
- If testing Firefox 32-bit on Windows 64-bit, navigate to `C:\Windows\SysWOW64`.
  In all other cases, navigate to `C:\Windows\System32` instead.
  In case of doubt, do the steps in both folders.
- Right click on `bcryptprimitives.dll`, click `Properties`, then under `Security` click `Advanced`.
- Under `Owner`, click `Edit...`, select your current user, click `OK`, click `OK`.
- Close `Advanced Security Settings`.
- Back in `bcryptprimitives.dll Properties`, under `Security`, click `Edit...`, select `Users`, click the `Allow` box next to `Full control`, click `OK`, click `Yes`.
- Back in the file explorer, rename `bcryptprimites.dll` to `bcryptprimitivesnotfound.dll`, click `Continue`.
- Run Firefox.

Problem:

- Firefox refuses to start and crashes immediately.

Expected:

- Firefox starts.

To reproduce the `uuid::Uuid::new_v4`, we would need do the same, except that Firefox accepts to start and we need to force a call to `glean_core::metrics::ping::PingType::submit_sync(glean_core::core::Glean*, enum2$<core::option::Option<str> >)`, and I'm not sure how to do that.

The `std::sys::windows::rand::fallback_rng` crash is much more impactful (Firefox does not start) so I'll see if we can have a hook in `BCryptGenRandom` that does the `RtlGenRandom` fallback directly.
**Important: These STR can leave your system in an unbootable and/or corrupt state. Please follow them in a virtual machine.**

Steps to reproduce the `std::sys::windows::rand::fallback_rng` crash (which currently impacts Firefox 110.0 Release and 111.0 beta):

- Take a snapshot of your VM, and boot it.
- Install the Firefox version you want to test.
- If testing Firefox 32-bit on Windows 64-bit, navigate to `C:\Windows\SysWOW64`.
  In all other cases, navigate to `C:\Windows\System32` instead.
  In case of doubt, do the steps in both folders.
- Right click on `bcryptprimitives.dll`, click `Properties`, then under `Security` click `Advanced`.
- Under `Owner`, click `Edit...`, select your current user, click `OK`, click `OK`.
- Close `Advanced Security Settings`.
- Back in `bcryptprimitives.dll Properties`, under `Security`, click `Edit...`, select `Users`, click the `Allow` box next to `Full control`, click `OK`, click `Yes`.
- Back in the file explorer, rename `bcryptprimites.dll` to `bcryptprimitivesnotfound.dll`, click `Continue`.
- Run Firefox.

Problem:

- Firefox refuses to start and crashes immediately.

Expected:

- Firefox starts.

To reproduce the `uuid::Uuid::new_v4`, we would need do the same, except that Firefox accepts to start and we need to force a call to `glean_core::metrics::ping::PingType::submit_sync(glean_core::core::Glean*, enum2$<core::option::Option<str> >)`, and I'm not sure how to do that.

The `std::sys::windows::rand::fallback_rng` crash is much more impactful (Firefox does not even start) so I'll see if we can have a hook in `BCryptGenRandom` that does the `RtlGenRandom` fallback directly.
**Important: These STR can leave your system in an unbootable and/or corrupt state. Please follow them in a virtual machine.**

Steps to reproduce the `std::sys::windows::rand::fallback_rng` crash (which currently impacts Firefox 110.0 Release and 111.0 beta):

- Take a snapshot of your VM, and boot it.
- Install the Firefox version you want to test.
- If testing Firefox 32-bit on Windows 64-bit, navigate to `C:\Windows\SysWOW64`.
  In all other cases, navigate to `C:\Windows\System32` instead.
  In case of doubt, do the steps in both folders.
- Right click on `bcryptprimitives.dll`, click `Properties`, then under `Security` click `Advanced`.
- Under `Owner`, click `Edit...`, select your current user, click `OK`, click `OK`.
- Close `Advanced Security Settings`.
- Back in `bcryptprimitives.dll Properties`, under `Security`, click `Edit...`, select `Users`, click the `Allow` box next to `Full control`, click `OK`, click `Yes`.
- Back in the file explorer, rename `bcryptprimites.dll` to `bcryptprimitivesnotfound.dll`, click `Continue`.
- Run Firefox.
- After noticing the problem, restore your VM snapshot.

Problem:

- Firefox refuses to start and crashes immediately.

Expected:

- Firefox starts.

To reproduce the `uuid::Uuid::new_v4`, we would need do the same, except that Firefox accepts to start and we need to force a call to `glean_core::metrics::ping::PingType::submit_sync(glean_core::core::Glean*, enum2$<core::option::Option<str> >)`, and I'm not sure how to do that.

The `std::sys::windows::rand::fallback_rng` crash is much more impactful (Firefox does not even start) so I'll see if we can have a hook in `BCryptGenRandom` that does the `RtlGenRandom` fallback directly.
**Important: These STR can leave your system in an unbootable and/or corrupt state. Please follow them in a virtual machine.**

Steps to reproduce the `std::sys::windows::rand::fallback_rng` crash (which currently impacts Firefox 110.0 Release and 111.0 beta):

- Take a snapshot of your VM, and boot it.
- Install the Firefox version you want to test.
- If testing Firefox 32-bit on Windows 64-bit, navigate to `C:\Windows\SysWOW64`.
  In all other cases, navigate to `C:\Windows\System32` instead.
  In case of doubt, do the steps in both folders.
- Right click on `bcryptprimitives.dll`, click `Properties`, then under `Security` click `Advanced`.
- Under `Owner`, click `Edit...`, select your current user, click `OK`, click `OK`.
- Close `Advanced Security Settings`.
- Back in `bcryptprimitives.dll Properties`, under `Security`, click `Edit...`, select `Users`, click the `Allow` box next to `Full control`, click `OK`, click `Yes`.
- Back in the file explorer, rename `bcryptprimitives.dll` to `bcryptprimitivesnotfound.dll`, click `Continue`.
- Run Firefox.
- After noticing the problem, restore your VM snapshot.

Problem:

- Firefox refuses to start and crashes immediately.

Expected:

- Firefox starts.

To reproduce the `uuid::Uuid::new_v4`, we would need do the same, except that Firefox accepts to start and we need to force a call to `glean_core::metrics::ping::PingType::submit_sync(glean_core::core::Glean*, enum2$<core::option::Option<str> >)`, and I'm not sure how to do that.

The `std::sys::windows::rand::fallback_rng` crash is much more impactful (Firefox does not even start) so I'll see if we can have a hook in `BCryptGenRandom` that does the `RtlGenRandom` fallback directly.
**Important: These STR can leave your system in an unbootable and/or corrupt state. Please follow them in a virtual machine.**

Steps to reproduce the `std::sys::windows::rand::fallback_rng` crash (which currently impacts Firefox 110.0 Release and 111.0 beta):

- Take a snapshot of your VM, and boot it.
- Install the Firefox version you want to test.
- If testing Firefox 32-bit on Windows 64-bit, navigate to `C:\Windows\SysWOW64`.
  In all other cases, navigate to `C:\Windows\System32` instead.
  In case of doubt, do the steps in both folders.
- Right click on `bcryptprimitives.dll`, click `Properties`, then under `Security` click `Advanced`.
- Under `Owner`, click `Edit...`, select your current user, click `OK`, click `OK`.
- Close `Advanced Security Settings`.
- Back in `bcryptprimitives.dll Properties`, under `Security`, click `Edit...`, select `Users`, click the `Allow` box next to `Full control`, click `OK`, click `Yes`.
- Back in the file explorer, rename `bcryptprimitives.dll` to `bcryptprimitivesnotfound.dll`, click `Continue`.
- Run Firefox.
- After noticing the problem, restore your VM snapshot.

Problem:

- Firefox refuses to start and crashes immediately.

Expected:

- Firefox starts.

To reproduce the `uuid::Uuid::new_v4` crash, we would need do the same, except that Firefox accepts to start and we need to force a call to `glean_core::metrics::ping::PingType::submit_sync(glean_core::core::Glean*, enum2$<core::option::Option<str> >)`, and I'm not sure how to do that.

The `std::sys::windows::rand::fallback_rng` crash is much more impactful (Firefox does not even start) so I'll see if we can have a hook in `BCryptGenRandom` that does the `RtlGenRandom` fallback directly.
**Important: These STR can leave your system in an unbootable and/or corrupt state. Please follow them in a virtual machine.**

Steps to reproduce the `std::sys::windows::rand::fallback_rng` crash (which currently impacts Firefox 110.0 Release and 111.0 beta):

- Take a snapshot of your VM, and boot it.
- Install the Firefox version you want to test.
- If testing Firefox 32-bit on Windows 64-bit, navigate to `C:\Windows\SysWOW64`.
  In all other cases, navigate to `C:\Windows\System32` instead.
  In case of doubt, do the steps in both folders.
- Right click on `bcryptprimitives.dll`, click `Properties`, then under `Security` click `Advanced`.
- Under `Owner`, click `Edit...`, select your current user, click `OK`, click `OK`.
- Close `Advanced Security Settings`.
- Back in `bcryptprimitives.dll Properties`, under `Security`, click `Edit...`, select `Users`, click the `Allow` box next to `Full control`, click `OK`, click `Yes`.
- Back in the file explorer, rename `bcryptprimitives.dll` to `bcryptprimitivesnotfound.dll`, click `Continue`.
- Run Firefox.
- After noticing the problem, restore your VM snapshot.

Problem:

- Firefox refuses to start and crashes immediately.

Expected:

- Firefox starts.

To reproduce the `uuid::Uuid::new_v4` crash, we would need do the same, except that Firefox accepts to start and we need to force a call to `glean_core::metrics::ping::PingType::submit_sync(glean_core::core::Glean*, enum2$<core::option::Option<str> >)`, and I'm not sure how to do that.

The `std::sys::windows::rand::fallback_rng` crash is much more impactful (Firefox does not even start) so I'll see if we can have a hook in `BCryptGenRandom` that does the `RtlGenRandom` fallback directly.

Edit: Actually I seem to be able to reproduce the `uuid::Uuid::new_v4` crash e.g. on Firefox 109.0.1 crash just by following exactly the same STR.
**Important: These STR can leave your system in an unbootable and/or corrupt state. Please follow them in a virtual machine.**

These STR only apply to Windows 7, which is the main concern for this crash.

Steps to reproduce the `std::sys::windows::rand::fallback_rng` crash (which currently impacts Firefox 110.0 Release and 111.0 beta):

- Take a snapshot of your VM, and boot it.
- Install the Firefox version you want to test.
- If testing Firefox 32-bit on Windows 64-bit, navigate to `C:\Windows\SysWOW64`.
  In all other cases, navigate to `C:\Windows\System32` instead.
  In case of doubt, do the steps in both folders.
- Right click on `bcryptprimitives.dll`, click `Properties`, then under `Security` click `Advanced`.
- Under `Owner`, click `Edit...`, select your current user, click `OK`, click `OK`.
- Close `Advanced Security Settings`.
- Back in `bcryptprimitives.dll Properties`, under `Security`, click `Edit...`, select `Users`, click the `Allow` box next to `Full control`, click `OK`, click `Yes`.
- Back in the file explorer, rename `bcryptprimitives.dll` to `bcryptprimitivesnotfound.dll`, click `Continue`.
- Run Firefox.
- After noticing the problem, restore your VM snapshot.

Problem:

- Firefox refuses to start and crashes immediately.

Expected:

- Firefox starts.

To reproduce the `uuid::Uuid::new_v4` crash, we would need do the same, except that Firefox accepts to start and we need to force a call to `glean_core::metrics::ping::PingType::submit_sync(glean_core::core::Glean*, enum2$<core::option::Option<str> >)`, and I'm not sure how to do that.

The `std::sys::windows::rand::fallback_rng` crash is much more impactful (Firefox does not even start) so I'll see if we can have a hook in `BCryptGenRandom` that does the `RtlGenRandom` fallback directly.

Edit: Actually I seem to be able to reproduce the `uuid::Uuid::new_v4` crash e.g. on Firefox 109.0.1 crash just by following exactly the same STR.
**Important: These STR can leave your system in an unbootable and/or corrupt state. Please follow them in a virtual machine.**

**Important: These STR only apply to Windows 7**, which is the main concern for this crash.

Steps to reproduce the `std::sys::windows::rand::fallback_rng` crash (which currently impacts Firefox 110.0 Release and 111.0 beta):

- Take a snapshot of your VM, and boot it.
- Install the Firefox version you want to test.
- If testing Firefox 32-bit on Windows 64-bit, navigate to `C:\Windows\SysWOW64`.
  In all other cases, navigate to `C:\Windows\System32` instead.
  In case of doubt, do the steps in both folders.
- Right click on `bcryptprimitives.dll`, click `Properties`, then under `Security` click `Advanced`.
- Under `Owner`, click `Edit...`, select your current user, click `OK`, click `OK`.
- Close `Advanced Security Settings`.
- Back in `bcryptprimitives.dll Properties`, under `Security`, click `Edit...`, select `Users`, click the `Allow` box next to `Full control`, click `OK`, click `Yes`.
- Back in the file explorer, rename `bcryptprimitives.dll` to `bcryptprimitivesnotfound.dll`, click `Continue`.
- Run Firefox.
- After noticing the problem, restore your VM snapshot.

Problem:

- Firefox refuses to start and crashes immediately.

Expected:

- Firefox starts.

To reproduce the `uuid::Uuid::new_v4` crash, we would need do the same, except that Firefox accepts to start and we need to force a call to `glean_core::metrics::ping::PingType::submit_sync(glean_core::core::Glean*, enum2$<core::option::Option<str> >)`, and I'm not sure how to do that.

The `std::sys::windows::rand::fallback_rng` crash is much more impactful (Firefox does not even start) so I'll see if we can have a hook in `BCryptGenRandom` that does the `RtlGenRandom` fallback directly.

Edit: Actually I seem to be able to reproduce the `uuid::Uuid::new_v4` crash e.g. on Firefox 109.0.1 crash just by following exactly the same STR.
**Important: These STR can leave your system in an unbootable and/or corrupt state. Please follow them in a virtual machine.**

**Important: These STR only apply to Windows 7**, which is the main concern for this crash.

Steps to reproduce:

- Take a snapshot of your VM, and boot it.
- Install the Firefox version you want to test.
- If testing Firefox 32-bit on Windows 64-bit, navigate to `C:\Windows\SysWOW64`.
  In all other cases, navigate to `C:\Windows\System32` instead.
  In case of doubt, do the steps in both folders.
- Right click on `bcryptprimitives.dll`, click `Properties`, then under `Security` click `Advanced`.
- Under `Owner`, click `Edit...`, select your current user, click `OK`, click `OK`.
- Close `Advanced Security Settings`.
- Back in `bcryptprimitives.dll Properties`, under `Security`, click `Edit...`, select `Users`, click the `Allow` box next to `Full control`, click `OK`, click `Yes`.
- Back in the file explorer, rename `bcryptprimitives.dll` to `bcryptprimitivesnotfound.dll`, click `Continue`.
- Run Firefox.
- After noticing the problem, restore your VM snapshot.

Problem:

- Firefox refuses to start and crashes immediately.

Expected:

- Firefox starts.
**Important: These STR can leave your system in an unbootable and/or corrupt state. Please follow them in a virtual machine.**

**Important: These STR only apply to Windows 7**, which is the main concern for this crash. It is expected that Firefox can start after following these STR on Windows 7. It is **not** expected that Firefox can start after following these STR on Windows 10 and 11.

Steps to reproduce:

- Take a snapshot of your Windows 7 VM, and boot it.
- Install the Firefox version you want to test.
- If testing Firefox 32-bit on Windows 64-bit, navigate to `C:\Windows\SysWOW64`.
  In all other cases, navigate to `C:\Windows\System32` instead.
  In case of doubt, do the steps in both folders.
- Right click on `bcryptprimitives.dll`, click `Properties`, then under `Security` click `Advanced`.
- Under `Owner`, click `Edit...`, select your current user, click `OK`, click `OK`.
- Close `Advanced Security Settings`.
- Back in `bcryptprimitives.dll Properties`, under `Security`, click `Edit...`, select `Users`, click the `Allow` box next to `Full control`, click `OK`, click `Yes`.
- Back in the file explorer, rename `bcryptprimitives.dll` to `bcryptprimitivesnotfound.dll`, click `Continue`.
- Run Firefox.
- After noticing the problem, restore your VM snapshot.

Problem:

- Firefox refuses to start and crashes immediately.

Expected:

- Firefox starts (on Windows 7).
**Important: These STR can leave your system in an unbootable and/or corrupt state. Please follow them in a virtual machine.**

**Important: These STR only apply to Windows 7**, which is the main concern for this crash.

Steps to reproduce:

- Take a snapshot of your Windows 7 VM, and boot it.
- Install the Firefox version you want to test.
- If testing Firefox 32-bit on Windows 64-bit, navigate to `C:\Windows\SysWOW64`.
  In all other cases, navigate to `C:\Windows\System32` instead.
  In case of doubt, do the steps in both folders.
- Right click on `bcryptprimitives.dll`, click `Properties`, then under `Security` click `Advanced`.
- Under `Owner`, click `Edit...`, select your current user, click `OK`, click `OK`.
- Close `Advanced Security Settings`.
- Back in `bcryptprimitives.dll Properties`, under `Security`, click `Edit...`, select `Users`, click the `Allow` box next to `Full control`, click `OK`, click `Yes`.
- Back in the file explorer, rename `bcryptprimitives.dll` to `bcryptprimitivesnotfound.dll`, click `Continue`.
- Run Firefox.
- After noticing the problem, restore your VM snapshot.

Problem:

- Firefox refuses to start and crashes immediately (on Windows 7).

Expected:

- Firefox starts (on Windows 7).

Back to Bug 1788004 Comment 19