diff --git a/extra/firefox/PKGBUILD b/extra/firefox/PKGBUILD
index 0c471c359..8ad3b6de9 100644
--- a/extra/firefox/PKGBUILD
+++ b/extra/firefox/PKGBUILD
@@ -10,7 +10,7 @@
 highmem=1
 
 pkgname=firefox
-pkgver=103.0.1
+pkgver=103.0.2
 pkgrel=1
 pkgdesc="Standalone web browser from mozilla.org"
 arch=(x86_64)
@@ -28,12 +28,13 @@ optdepends=('networkmanager: Location detection via available WiFi networks'
             'xdg-desktop-portal: Screensharing with Wayland')
 options=(!emptydirs !makeflags !strip !lto !debug)
 source=(https://archive.mozilla.org/pub/firefox/releases/$pkgver/source/firefox-$pkgver.source.tar.xz{,.asc}
-        zstandard-0.18.0.diff
+        zstandard-0.18.0.diff arc4random.diff
         build-arm-libopus.patch
         $pkgname.desktop identity-icons-brand.svg)
-sha256sums=('b2db4df5fae0801e6406686876e8115d9529fb93a01566f22548908ca6c2cf82'
+sha256sums=('766183e8e39c17a84305a85da3237919ffaeb018c6c9d97a7324aea51bd453aa'
             'SKIP'
             'a6857ad2f2e2091c6c4fdcde21a59fbeb0138914c0e126df64b50a5af5ff63be'
+            '714ca50b2ce0cac470dbd5a60e9a0101b28072f08a5e7a9bba94fef2058321c4'
             '2d4d91f7e35d0860225084e37ec320ca6cae669f6c9c8fe7735cdbd542e3a7c9'
             '298eae9de76ec53182f38d5c549d0379569916eebf62149f9d7f4a7edef36abf'
             'a9b8b4a0a1f4a7b4af77d5fc70c2686d624038909263c795ecc81e0aec7711e9')
@@ -59,6 +60,9 @@ prepare() {
   # Unbreak build with python-zstandard 0.18.0
   patch -Np1 -i ../zstandard-0.18.0.diff
 
+  # Unbreak build with glibc 2.36
+  patch -Np1 -i ../arc4random.diff
+
   echo -n "$_google_api_key" >google-api-key
   echo -n "$_mozilla_api_key" >mozilla-api-key
 
diff --git a/extra/firefox/arc4random.diff b/extra/firefox/arc4random.diff
new file mode 100644
index 000000000..c877d54c1
--- /dev/null
+++ b/extra/firefox/arc4random.diff
@@ -0,0 +1,33 @@
+diff --git i/ipc/chromium/src/third_party/libevent/linux/event2/event-config.h w/ipc/chromium/src/third_party/libevent/linux/event2/event-config.h
+index 101d39d455107..3764806240f9f 100644
+--- i/ipc/chromium/src/third_party/libevent/linux/event2/event-config.h
++++ w/ipc/chromium/src/third_party/libevent/linux/event2/event-config.h
+@@ -30,13 +30,13 @@
+ /* #undef EVENT__HAVE_AFUNIX_H 1 */
+ 
+ /* Define to 1 if you have the `arc4random' function. */
+-/* #undef EVENT__HAVE_ARC4RANDOM */
++#define EVENT__HAVE_ARC4RANDOM 1
+ 
+ /* Define to 1 if you have the `arc4random_addrandom' function. */
+ /* #undef EVENT__HAVE_ARC4RANDOM_ADDRANDOM */
+ 
+ /* Define to 1 if you have the `arc4random_buf' function. */
+-/* #undef EVENT__HAVE_ARC4RANDOM_BUF */
++#define EVENT__HAVE_ARC4RANDOM_BUF 1
+ 
+ /* Define to 1 if you have the <arpa/inet.h> header file. */
+ #define EVENT__HAVE_ARPA_INET_H 1
+diff --git i/toolkit/crashreporter/client/ping.cpp w/toolkit/crashreporter/client/ping.cpp
+index 57cf85de80b79..93a2f6e80ad0b 100644
+--- i/toolkit/crashreporter/client/ping.cpp
++++ w/toolkit/crashreporter/client/ping.cpp
+@@ -53,7 +53,7 @@ static string GenerateUUID() {
+ 
+   CFRelease(uuid);
+ #elif defined(HAVE_ARC4RANDOM_BUF)  // Android, BSD, ...
+-  arc4random_buf(id, sizeof(UUID));
++  arc4random_buf(&id, sizeof(UUID));
+ #else                               // Linux
+   int fd = open("/dev/urandom", O_RDONLY);
+