diff --git a/common/deployments/hub-production.yaml b/common/deployments/hub-production.yaml
index c94153cdd2ee4227a0456e702f0aeda8106afda7..0316dbbbaccbb54c5b07c3e0b30c082e23bc418b 100644
--- a/common/deployments/hub-production.yaml
+++ b/common/deployments/hub-production.yaml
@@ -158,8 +158,8 @@ hub:
   # keep k8s-hub version in sync with ../playbooks/notebooks.yaml
   image:
     name: eginotebooks/hub
-    # k8s-hub 4.0.0
-    tag: "sha-aef23d2"
+    # k8s-hub 4.2.0
+    tag: "sha-4e2fb2f"
   loadRoles:
     #user scopes required for user initiated sharing API
     user:
diff --git a/common/deployments/hub-staging.yaml b/common/deployments/hub-staging.yaml
index 1a43d287b87bb1a6baa1b9e5bbb827fb40baf563..7c859702b458c09cd4a7adef8d31cac0c7d3352b 100644
--- a/common/deployments/hub-staging.yaml
+++ b/common/deployments/hub-staging.yaml
@@ -158,8 +158,8 @@ hub:
   # keep k8s-hub version in sync with ../playbooks/notebooks.yaml
   image:
     name: eginotebooks/hub
-    # k8s-hub 4.0.0
-    tag: "sha-aef23d2"
+    # k8s-hub 4.2.0
+    tag: "sha-4e2fb2f"
   loadRoles:
     #user scopes required for user initiated sharing API
     user:
diff --git a/common/playbooks/files/jupyterhub-jwt.yaml b/common/playbooks/files/jupyterhub-jwt.yaml
index d43cb1684863757c88f2346d7a5a3d1202d4d186..d7df6d521dd9a6cc2e31eeb7f4668b29a21d6d87 100644
--- a/common/playbooks/files/jupyterhub-jwt.yaml
+++ b/common/playbooks/files/jupyterhub-jwt.yaml
@@ -20,7 +20,7 @@ spec:
       containers:
         - name: jwt
           # recommended to keep it in sync with */deployments/*.yaml
-          image: eginotebooks/hub:sha-aef23d2
+          image: eginotebooks/hub:sha-4e2fb2f
           args:
             - fastapi
             - run
diff --git a/common/playbooks/notebooks.yaml b/common/playbooks/notebooks.yaml
index 5ebaa69ad88967a8710247432504ad4485a074bd..f8384b6a9d75bad974635a3afad6250d96a0601d 100644
--- a/common/playbooks/notebooks.yaml
+++ b/common/playbooks/notebooks.yaml
@@ -37,7 +37,7 @@
       vars:
         name: "{{ item | basename | splitext | first }}"
         # keep in sync with ../deployments/*.yaml (original k8s-hub image version)
-        version: "4.0.0" # app 5.2.1 (2024-11-07)
+        version: "4.2.0" # app 5.3.0 (2025-04-16)
       shell: |-
         helm status --namespace {{ name }} {{ name }}
         if [ $? -ne 0 ]; then
diff --git a/eosc-devel/deployments/fullhub.yaml b/eosc-devel/deployments/fullhub.yaml
index cd5520ebefd00ce8b00482a8db3d7d410a5b2dd2..ff1258bc50a91f10938079ad531fa6cc1247d1f6 100644
--- a/eosc-devel/deployments/fullhub.yaml
+++ b/eosc-devel/deployments/fullhub.yaml
@@ -159,8 +159,8 @@ hub:
   # keep k8s-hub version in sync with ../playbooks/notebooks.yaml
   image:
     name: eginotebooks/hub
-    # k8s-hub 4.0.0
-    tag: "sha-aef23d2"
+    # k8s-hub 4.2.0
+    tag: "sha-4e2fb2f"
   loadRoles:
     #user roles required for user initiated sharing API
     user:
diff --git a/eosc-testing/deployments/hub.yaml b/eosc-testing/deployments/hub.yaml
index 089393e46722d8b2a73a36450ff97d8ef3d0f158..4315d1fb0186a9b1824deaff3b4ad1e8dea77541 100644
--- a/eosc-testing/deployments/hub.yaml
+++ b/eosc-testing/deployments/hub.yaml
@@ -159,8 +159,8 @@ hub:
   # keep k8s-hub version in sync with ../playbooks/notebooks.yaml
   image:
     name: eginotebooks/hub
-    # k8s-hub 4.0.0
-    tag: "sha-aef23d2"
+    # k8s-hub 4.2.0
+    tag: "sha-4e2fb2f"
   loadRoles:
     #user roles required for user initiated sharing API
     user: