diff --git a/substrate/Cargo.lock b/substrate/Cargo.lock
index dc438b7dea226a2f9341c8e26adf6b367636afdd..e37cc1cb52c90e6f3488e00a6b4527dd919bb15c 100644
--- a/substrate/Cargo.lock
+++ b/substrate/Cargo.lock
@@ -10437,18 +10437,18 @@ checksum = "388a1df253eca08550bef6c72392cfe7c30914bf41df5269b68cbd6ff8f570a3"
 
 [[package]]
 name = "serde"
-version = "1.0.162"
+version = "1.0.163"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "71b2f6e1ab5c2b98c05f0f35b236b22e8df7ead6ffbf51d7808da7f8817e7ab6"
+checksum = "2113ab51b87a539ae008b5c6c02dc020ffa39afd2d83cffcb3f4eb2722cebec2"
 dependencies = [
  "serde_derive",
 ]
 
 [[package]]
 name = "serde_derive"
-version = "1.0.162"
+version = "1.0.163"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a2a0814352fd64b58489904a44ea8d90cb1a91dcb6b4f5ebabc32c8318e93cb6"
+checksum = "8c805777e3930c8883389c602315a24224bcc738b63905ef87cd1420353ea93e"
 dependencies = [
  "proc-macro2",
  "quote",
diff --git a/substrate/bin/node/bench/Cargo.toml b/substrate/bin/node/bench/Cargo.toml
index 2bac5f34acacdfaa94da8acb522f80989ac792ae..22f5b88420ef8f6c7cf55b0f223f2daacdf8b0bb 100644
--- a/substrate/bin/node/bench/Cargo.toml
+++ b/substrate/bin/node/bench/Cargo.toml
@@ -21,7 +21,7 @@ kitchensink-runtime = { version = "3.0.0-dev", path = "../runtime" }
 sc-client-api = { version = "4.0.0-dev", path = "../../../client/api/" }
 sp-runtime = { version = "24.0.0", path = "../../../primitives/runtime" }
 sp-state-machine = { version = "0.28.0", path = "../../../primitives/state-machine" }
-serde = "1.0.136"
+serde = "1.0.163"
 serde_json = "1.0.85"
 derive_more = { version = "0.99.17", default-features = false, features = ["display"] }
 kvdb = "0.13.0"
diff --git a/substrate/bin/node/cli/Cargo.toml b/substrate/bin/node/cli/Cargo.toml
index 4a2a82a8856da549a389fdab7b488e878da0513a..d4e13aea4b65002b24c152b35be9ed6c8fb7f65f 100644
--- a/substrate/bin/node/cli/Cargo.toml
+++ b/substrate/bin/node/cli/Cargo.toml
@@ -38,7 +38,7 @@ crate-type = ["cdylib", "rlib"]
 array-bytes = "4.1"
 clap = { version = "4.2.5", features = ["derive"], optional = true }
 codec = { package = "parity-scale-codec", version = "3.2.2" }
-serde = { version = "1.0.136", features = ["derive"] }
+serde = { version = "1.0.163", features = ["derive"] }
 jsonrpsee = { version = "0.16.2", features = ["server"] }
 futures = "0.3.21"
 log = "0.4.17"
diff --git a/substrate/client/chain-spec/Cargo.toml b/substrate/client/chain-spec/Cargo.toml
index cc2a5f37ccc7a3cb9c01a27a2f50a73fad71e9ea..1b4ce6e44605abf9cc806a413df5f5dddebb9d99 100644
--- a/substrate/client/chain-spec/Cargo.toml
+++ b/substrate/client/chain-spec/Cargo.toml
@@ -14,7 +14,7 @@ targets = ["x86_64-unknown-linux-gnu"]
 
 [dependencies]
 memmap2 = "0.5.0"
-serde = { version = "1.0.136", features = ["derive"] }
+serde = { version = "1.0.163", features = ["derive"] }
 serde_json = "1.0.85"
 sc-client-api = { version = "4.0.0-dev", path = "../api" }
 sc-chain-spec-derive = { version = "4.0.0-dev", path = "./derive" }
diff --git a/substrate/client/cli/Cargo.toml b/substrate/client/cli/Cargo.toml
index e9dcaf0a3dcb27b58eb0bd47c44e52c97397d915..08e3f18d3961ae3659606a5feee7d008b1f7e6b1 100644
--- a/substrate/client/cli/Cargo.toml
+++ b/substrate/client/cli/Cargo.toml
@@ -25,7 +25,7 @@ parity-scale-codec = "3.2.2"
 rand = "0.8.5"
 regex = "1.6.0"
 rpassword = "7.0.0"
-serde = "1.0.136"
+serde = "1.0.163"
 serde_json = "1.0.85"
 thiserror = "1.0.30"
 tiny-bip39 = "1.0.0"
diff --git a/substrate/client/consensus/babe/rpc/Cargo.toml b/substrate/client/consensus/babe/rpc/Cargo.toml
index 7f6816258a562f90f5569e8c928a7f54848a65d8..c0b20eb11c95a05daca1297d7fa8aa2b7028419f 100644
--- a/substrate/client/consensus/babe/rpc/Cargo.toml
+++ b/substrate/client/consensus/babe/rpc/Cargo.toml
@@ -15,7 +15,7 @@ targets = ["x86_64-unknown-linux-gnu"]
 [dependencies]
 jsonrpsee = { version = "0.16.2", features = ["client-core", "server", "macros"] }
 futures = "0.3.21"
-serde = { version = "1.0.136", features = ["derive"] }
+serde = { version = "1.0.163", features = ["derive"] }
 thiserror = "1.0"
 sc-consensus-babe = { version = "0.10.0-dev", path = "../" }
 sc-consensus-epochs = { version = "0.10.0-dev", path = "../../epochs" }
diff --git a/substrate/client/consensus/beefy/Cargo.toml b/substrate/client/consensus/beefy/Cargo.toml
index f4c07f41e11379abd4e966466fbb1abff2e58ccf..adf0baa0143406f08338c2c9edf9843d21918a97 100644
--- a/substrate/client/consensus/beefy/Cargo.toml
+++ b/substrate/client/consensus/beefy/Cargo.toml
@@ -40,7 +40,7 @@ sp-mmr-primitives = { version = "4.0.0-dev", path = "../../../primitives/merkle-
 sp-runtime = { version = "24.0.0", path = "../../../primitives/runtime" }
 
 [dev-dependencies]
-serde = "1.0.136"
+serde = "1.0.163"
 tempfile = "3.1.0"
 tokio = "1.22.0"
 sc-block-builder = { version = "0.10.0-dev", path = "../../block-builder" }
diff --git a/substrate/client/consensus/beefy/rpc/Cargo.toml b/substrate/client/consensus/beefy/rpc/Cargo.toml
index a12046671bfabfd41f5c8dfe9ed7f85b35f50f93..392492c9341524d2bc71f35da4d5b670946b57b5 100644
--- a/substrate/client/consensus/beefy/rpc/Cargo.toml
+++ b/substrate/client/consensus/beefy/rpc/Cargo.toml
@@ -14,7 +14,7 @@ futures = "0.3.21"
 jsonrpsee = { version = "0.16.2", features = ["client-core", "server", "macros"] }
 log = "0.4"
 parking_lot = "0.12.1"
-serde = { version = "1.0.136", features = ["derive"] }
+serde = { version = "1.0.163", features = ["derive"] }
 thiserror = "1.0"
 sc-consensus-beefy = { version = "4.0.0-dev", path = "../" }
 sp-consensus-beefy = { version = "4.0.0-dev", path = "../../../../primitives/consensus/beefy" }
diff --git a/substrate/client/consensus/grandpa/Cargo.toml b/substrate/client/consensus/grandpa/Cargo.toml
index 7f26dbded8e3b4c85df0750ac341cc5d23eac3ce..eaf878f9895505ceaf00ced03a3c267f9f4a76ad 100644
--- a/substrate/client/consensus/grandpa/Cargo.toml
+++ b/substrate/client/consensus/grandpa/Cargo.toml
@@ -51,7 +51,7 @@ sp-runtime = { version = "24.0.0", path = "../../../primitives/runtime" }
 [dev-dependencies]
 assert_matches = "1.3.0"
 finality-grandpa = { version = "0.16.2", features = ["derive-codec", "test-helpers"] }
-serde = "1.0.136"
+serde = "1.0.163"
 tokio = "1.22.0"
 sc-network = { version = "0.10.0-dev", path = "../../network" }
 sc-network-test = { version = "0.8.0", path = "../../network/test" }
diff --git a/substrate/client/consensus/grandpa/rpc/Cargo.toml b/substrate/client/consensus/grandpa/rpc/Cargo.toml
index 0b160b95f2ff583bf0fe649ee89964adcfa70035..177f1eeffc7402b466239997df4956a5ff7842b6 100644
--- a/substrate/client/consensus/grandpa/rpc/Cargo.toml
+++ b/substrate/client/consensus/grandpa/rpc/Cargo.toml
@@ -15,7 +15,7 @@ futures = "0.3.16"
 jsonrpsee = { version = "0.16.2", features = ["client-core", "server", "macros"] }
 log = "0.4.8"
 parity-scale-codec = { version = "3.2.2", features = ["derive"] }
-serde = { version = "1.0.105", features = ["derive"] }
+serde = { version = "1.0.163", features = ["derive"] }
 thiserror = "1.0"
 sc-client-api = { version = "4.0.0-dev", path = "../../../api" }
 sc-consensus-grandpa = { version = "0.10.0-dev", path = "../" }
diff --git a/substrate/client/merkle-mountain-range/rpc/Cargo.toml b/substrate/client/merkle-mountain-range/rpc/Cargo.toml
index 44f7c8bc631c239a59d72d8a1b71aaa682061847..24c9e0a2799d9b743fbfd85fb4b28e9470f45c00 100644
--- a/substrate/client/merkle-mountain-range/rpc/Cargo.toml
+++ b/substrate/client/merkle-mountain-range/rpc/Cargo.toml
@@ -14,7 +14,7 @@ targets = ["x86_64-unknown-linux-gnu"]
 [dependencies]
 codec = { package = "parity-scale-codec", version = "3.2.2" }
 jsonrpsee = { version = "0.16.2", features = ["client-core", "server", "macros"] }
-serde = { version = "1.0.136", features = ["derive"] }
+serde = { version = "1.0.163", features = ["derive"] }
 sp-api = { version = "4.0.0-dev", path = "../../../primitives/api" }
 sp-blockchain = { version = "4.0.0-dev", path = "../../../primitives/blockchain" }
 sp-core = { version = "21.0.0", path = "../../../primitives/core" }
diff --git a/substrate/client/network/Cargo.toml b/substrate/client/network/Cargo.toml
index b026f5f29f1be177536b03be2873e9fb92c6a4b2..be8112327eb80f6c0bdfdb7e85142f00eb5f7e4f 100644
--- a/substrate/client/network/Cargo.toml
+++ b/substrate/client/network/Cargo.toml
@@ -34,7 +34,7 @@ parking_lot = "0.12.1"
 partial_sort = "0.2.0"
 pin-project = "1.0.12"
 rand = "0.8.5"
-serde = { version = "1.0.136", features = ["derive"] }
+serde = { version = "1.0.163", features = ["derive"] }
 serde_json = "1.0.85"
 smallvec = "1.8.0"
 thiserror = "1.0"
diff --git a/substrate/client/network/common/Cargo.toml b/substrate/client/network/common/Cargo.toml
index 67d9111361817f6dddf3e3bd5f7f84b4d550ae51..b87508e0d874508463ef482c76cced15e3722ad0 100644
--- a/substrate/client/network/common/Cargo.toml
+++ b/substrate/client/network/common/Cargo.toml
@@ -30,7 +30,7 @@ prometheus-endpoint = { package = "substrate-prometheus-endpoint", version = "0.
 smallvec = "1.8.0"
 sc-consensus = { version = "0.10.0-dev", path = "../../consensus/common" }
 sc-utils = { version = "4.0.0-dev", path = "../../utils" }
-serde = { version = "1.0.136", features = ["derive"] }
+serde = { version = "1.0.163", features = ["derive"] }
 sp-consensus = { version = "0.10.0-dev", path = "../../../primitives/consensus/common" }
 sp-consensus-grandpa = { version = "4.0.0-dev", path = "../../../primitives/consensus/grandpa" }
 sp-runtime = { version = "24.0.0", path = "../../../primitives/runtime" }
diff --git a/substrate/client/rpc-api/Cargo.toml b/substrate/client/rpc-api/Cargo.toml
index cc0a9bc8527ed9faa37e1712cc84c8aeaa3ec5b2..cbc38e5c5bc70344f3a1471666486519292e0ce1 100644
--- a/substrate/client/rpc-api/Cargo.toml
+++ b/substrate/client/rpc-api/Cargo.toml
@@ -15,7 +15,7 @@ targets = ["x86_64-unknown-linux-gnu"]
 [dependencies]
 codec = { package = "parity-scale-codec", version = "3.2.2" }
 scale-info = { version = "2.5.0", default-features = false, features = ["derive"] }
-serde = { version = "1.0.136", features = ["derive"] }
+serde = { version = "1.0.163", features = ["derive"] }
 serde_json = "1.0.85"
 thiserror = "1.0"
 sc-chain-spec = { version = "4.0.0-dev", path = "../chain-spec" }
diff --git a/substrate/client/service/Cargo.toml b/substrate/client/service/Cargo.toml
index a434ed2cd9e2ad091d8b59e21e048c95d7b88fe2..a064b71d0fb12a5d6267c203dd94d3d18667d919 100644
--- a/substrate/client/service/Cargo.toml
+++ b/substrate/client/service/Cargo.toml
@@ -31,7 +31,7 @@ log = "0.4.17"
 futures-timer = "3.0.1"
 exit-future = "0.2.0"
 pin-project = "1.0.12"
-serde = "1.0.136"
+serde = "1.0.163"
 serde_json = "1.0.85"
 sc-keystore = { version = "4.0.0-dev", path = "../keystore" }
 sp-runtime = { version = "24.0.0", path = "../../primitives/runtime" }
diff --git a/substrate/client/sync-state-rpc/Cargo.toml b/substrate/client/sync-state-rpc/Cargo.toml
index 6367900fcac2b70d364c27b30504fce06e72a17b..0bf9df9424fce190ca91985795ed2c093e8a881e 100644
--- a/substrate/client/sync-state-rpc/Cargo.toml
+++ b/substrate/client/sync-state-rpc/Cargo.toml
@@ -14,7 +14,7 @@ targets = ["x86_64-unknown-linux-gnu"]
 [dependencies]
 codec = { package = "parity-scale-codec", version = "3.2.2" }
 jsonrpsee = { version = "0.16.2", features = ["client-core", "server", "macros"] }
-serde = { version = "1.0.136", features = ["derive"] }
+serde = { version = "1.0.163", features = ["derive"] }
 serde_json = "1.0.85"
 thiserror = "1.0.30"
 sc-chain-spec = { version = "4.0.0-dev", path = "../chain-spec" }
diff --git a/substrate/client/sysinfo/Cargo.toml b/substrate/client/sysinfo/Cargo.toml
index 6fe1f6d9b8c9c14aa2371c99fd4c50bba3bb8f94..1435511915732b311158a5412e86e946eba855f6 100644
--- a/substrate/client/sysinfo/Cargo.toml
+++ b/substrate/client/sysinfo/Cargo.toml
@@ -20,7 +20,7 @@ log = "0.4.17"
 rand = "0.8.5"
 rand_pcg = "0.3.1"
 regex = "1"
-serde = { version = "1.0.136", features = ["derive"] }
+serde = { version = "1.0.163", features = ["derive"] }
 serde_json = "1.0.85"
 sc-telemetry = { version = "4.0.0-dev", path = "../telemetry" }
 sp-core = { version = "21.0.0", path = "../../primitives/core" }
diff --git a/substrate/client/telemetry/Cargo.toml b/substrate/client/telemetry/Cargo.toml
index 1d4758c7d261bd83a0bdcae8be2982a1d574c67c..f138557c8c2290f7a0e1e5d5a1e002c5c1b38e19 100644
--- a/substrate/client/telemetry/Cargo.toml
+++ b/substrate/client/telemetry/Cargo.toml
@@ -22,7 +22,7 @@ parking_lot = "0.12.1"
 pin-project = "1.0.12"
 sc-utils = { version = "4.0.0-dev", path = "../utils" }
 rand = "0.8.5"
-serde = { version = "1.0.136", features = ["derive"] }
+serde = { version = "1.0.163", features = ["derive"] }
 serde_json = "1.0.85"
 thiserror = "1.0.30"
 wasm-timer = "0.2.5"
diff --git a/substrate/client/tracing/Cargo.toml b/substrate/client/tracing/Cargo.toml
index 9c9cdaa1005559527eed741320c0a62761ace10b..5ffb0d80ef1855479b8bdf4664f96fce700528fb 100644
--- a/substrate/client/tracing/Cargo.toml
+++ b/substrate/client/tracing/Cargo.toml
@@ -23,7 +23,7 @@ once_cell = "1.8.0"
 parking_lot = "0.12.1"
 regex = "1.6.0"
 rustc-hash = "1.1.0"
-serde = "1.0.136"
+serde = "1.0.163"
 thiserror = "1.0.30"
 tracing = "0.1.29"
 tracing-log = "0.1.3"
diff --git a/substrate/client/transaction-pool/Cargo.toml b/substrate/client/transaction-pool/Cargo.toml
index 37ed98c5d033a47955ba16abe9a58363d344484d..d6af6a9eabd20d7362b8148706eb5ff389db97e1 100644
--- a/substrate/client/transaction-pool/Cargo.toml
+++ b/substrate/client/transaction-pool/Cargo.toml
@@ -21,7 +21,7 @@ linked-hash-map = "0.5.4"
 log = "0.4.17"
 num-traits = "0.2.8"
 parking_lot = "0.12.1"
-serde = { version = "1.0.136", features = ["derive"] }
+serde = { version = "1.0.163", features = ["derive"] }
 thiserror = "1.0.30"
 prometheus-endpoint = { package = "substrate-prometheus-endpoint", version = "0.10.0-dev", path = "../../utils/prometheus" }
 sc-client-api = { version = "4.0.0-dev", path = "../api" }
diff --git a/substrate/client/transaction-pool/api/Cargo.toml b/substrate/client/transaction-pool/api/Cargo.toml
index 8c0e96c2a32a7fbeb82c13036ea684fe408efec1..34b6b4f637791e2e47ecb65f47a98b3114d82087 100644
--- a/substrate/client/transaction-pool/api/Cargo.toml
+++ b/substrate/client/transaction-pool/api/Cargo.toml
@@ -13,7 +13,7 @@ async-trait = "0.1.57"
 codec = { package = "parity-scale-codec", version = "3.2.2" }
 futures = "0.3.21"
 log = "0.4.17"
-serde = { version = "1.0.136", features = ["derive"] }
+serde = { version = "1.0.163", features = ["derive"] }
 thiserror = "1.0.30"
 sp-blockchain = { version = "4.0.0-dev", path = "../../../primitives/blockchain" }
 sp-core = { version = "21.0.0", default-features = false, path = "../../../primitives/core" }
diff --git a/substrate/frame/beefy-mmr/Cargo.toml b/substrate/frame/beefy-mmr/Cargo.toml
index eece45f9bc3cac0fd187d8506ecb303810627797..25a92178ef1655490c853a0fb505ad63d86f5074 100644
--- a/substrate/frame/beefy-mmr/Cargo.toml
+++ b/substrate/frame/beefy-mmr/Cargo.toml
@@ -13,7 +13,7 @@ array-bytes = { version = "4.1", optional = true }
 codec = { package = "parity-scale-codec", version = "3.2.2", default-features = false, features = ["derive"] }
 log = { version = "0.4.17", default-features = false }
 scale-info = { version = "2.5.0", default-features = false, features = ["derive"] }
-serde = { version = "1.0.136", optional = true }
+serde = { version = "1.0.163", optional = true }
 binary-merkle-tree = { version = "4.0.0-dev", default-features = false, path = "../../utils/binary-merkle-tree" }
 frame-support = { version = "4.0.0-dev", default-features = false, path = "../support" }
 frame-system = { version = "4.0.0-dev", default-features = false, path = "../system" }
diff --git a/substrate/frame/beefy/Cargo.toml b/substrate/frame/beefy/Cargo.toml
index 2f67d71ecc96443c4b6e43e0f298599b944ff56f..51345675fc4960befb8b9e621a8d880a31fbf6c9 100644
--- a/substrate/frame/beefy/Cargo.toml
+++ b/substrate/frame/beefy/Cargo.toml
@@ -11,7 +11,7 @@ homepage = "https://substrate.io"
 [dependencies]
 codec = { package = "parity-scale-codec", version = "3.2.2", default-features = false, features = ["derive"] }
 scale-info = { version = "2.5.0", default-features = false, features = ["derive"] }
-serde = { version = "1.0.136", optional = true }
+serde = { version = "1.0.163", optional = true }
 frame-support = { version = "4.0.0-dev", default-features = false, path = "../support" }
 frame-system = { version = "4.0.0-dev", default-features = false, path = "../system" }
 pallet-authorship = { version = "4.0.0-dev", default-features = false, path = "../authorship" }
diff --git a/substrate/frame/benchmarking/Cargo.toml b/substrate/frame/benchmarking/Cargo.toml
index a65e0eca477ed7f2066fc8bd4791988d1f2ef426..f334fa3dcd01393972bab6ba2fffd81c8973934a 100644
--- a/substrate/frame/benchmarking/Cargo.toml
+++ b/substrate/frame/benchmarking/Cargo.toml
@@ -18,7 +18,7 @@ linregress = { version = "0.5.1", optional = true }
 log = { version = "0.4.17", default-features = false }
 paste = "1.0"
 scale-info = { version = "2.5.0", default-features = false, features = ["derive"] }
-serde = { version = "1.0.136", optional = true }
+serde = { version = "1.0.163", optional = true }
 frame-support = { version = "4.0.0-dev", default-features = false, path = "../support" }
 frame-support-procedural = { version = "4.0.0-dev", default-features = false, path = "../support/procedural" }
 frame-system = { version = "4.0.0-dev", default-features = false, path = "../system" }
diff --git a/substrate/frame/conviction-voting/Cargo.toml b/substrate/frame/conviction-voting/Cargo.toml
index a5760db2faa89390b37622f261b80d602235f136..55347c1dac6d7327ee4310bce6e988329c98b2bd 100644
--- a/substrate/frame/conviction-voting/Cargo.toml
+++ b/substrate/frame/conviction-voting/Cargo.toml
@@ -19,7 +19,7 @@ codec = { package = "parity-scale-codec", version = "3.2.2", default-features =
 	"max-encoded-len",
 ] }
 scale-info = { version = "2.5.0", default-features = false, features = ["derive"] }
-serde = { version = "1.0.136", features = ["derive"], optional = true }
+serde = { version = "1.0.163", features = ["derive"], optional = true }
 frame-benchmarking = { version = "4.0.0-dev", default-features = false, optional = true, path = "../benchmarking" }
 frame-support = { version = "4.0.0-dev", default-features = false, path = "../support" }
 frame-system = { version = "4.0.0-dev", default-features = false, path = "../system" }
diff --git a/substrate/frame/democracy/Cargo.toml b/substrate/frame/democracy/Cargo.toml
index be26d9dba2e9d25bf3e7d1fe0d97df89114e3c50..0b7f3c20cfdd359db135b1e4972cd472a1758e71 100644
--- a/substrate/frame/democracy/Cargo.toml
+++ b/substrate/frame/democracy/Cargo.toml
@@ -17,7 +17,7 @@ codec = { package = "parity-scale-codec", version = "3.2.2", default-features =
 	"derive",
 ] }
 scale-info = { version = "2.5.0", default-features = false, features = ["derive"] }
-serde = { version = "1.0.136", features = ["derive"], optional = true }
+serde = { version = "1.0.163", features = ["derive"], optional = true }
 frame-benchmarking = { version = "4.0.0-dev", default-features = false, optional = true, path = "../benchmarking" }
 frame-support = { version = "4.0.0-dev", default-features = false, path = "../support" }
 frame-system = { version = "4.0.0-dev", default-features = false, path = "../system" }
diff --git a/substrate/frame/message-queue/Cargo.toml b/substrate/frame/message-queue/Cargo.toml
index a7c0fa242d6fca062050789e8dc836a2f36451ce..e349a639db73e997b5094e0cb78dddda146cf4c6 100644
--- a/substrate/frame/message-queue/Cargo.toml
+++ b/substrate/frame/message-queue/Cargo.toml
@@ -11,7 +11,7 @@ description = "FRAME pallet to queue and process messages"
 [dependencies]
 codec = { package = "parity-scale-codec", version = "3.2.2", default-features = false, features = ["derive"] }
 scale-info = { version = "2.5.0", default-features = false, features = ["derive"] }
-serde = { version = "1.0.137", optional = true, features = ["derive"] }
+serde = { version = "1.0.163", optional = true, features = ["derive"] }
 log = { version = "0.4.17", default-features = false }
 
 sp-core = { version = "21.0.0", default-features = false, path = "../../primitives/core" }
diff --git a/substrate/frame/offences/Cargo.toml b/substrate/frame/offences/Cargo.toml
index e7fdc8176c7290d62b52eb85798fe0492c56c56c..2d2dfe9a9e8a36e995e027fd206358816fa3842a 100644
--- a/substrate/frame/offences/Cargo.toml
+++ b/substrate/frame/offences/Cargo.toml
@@ -16,7 +16,7 @@ targets = ["x86_64-unknown-linux-gnu"]
 codec = { package = "parity-scale-codec", version = "3.2.2", default-features = false, features = ["derive"] }
 log = { version = "0.4.17", default-features = false }
 scale-info = { version = "2.5.0", default-features = false, features = ["derive"] }
-serde = { version = "1.0.136", optional = true }
+serde = { version = "1.0.163", optional = true }
 frame-support = { version = "4.0.0-dev", default-features = false, path = "../support" }
 frame-system = { version = "4.0.0-dev", default-features = false, path = "../system" }
 pallet-balances = { version = "4.0.0-dev", default-features = false, path = "../balances" }
diff --git a/substrate/frame/referenda/Cargo.toml b/substrate/frame/referenda/Cargo.toml
index 29ffe73e94d872f475777238af6b8b8639157969..bc44be387cdc2018d412ef178b05cb685c50ee7d 100644
--- a/substrate/frame/referenda/Cargo.toml
+++ b/substrate/frame/referenda/Cargo.toml
@@ -18,7 +18,7 @@ codec = { package = "parity-scale-codec", version = "3.2.2", default-features =
 	"derive",
 ] }
 scale-info = { version = "2.5.0", default-features = false, features = ["derive"] }
-serde = { version = "1.0.136", features = ["derive"], optional = true }
+serde = { version = "1.0.163", features = ["derive"], optional = true }
 sp-arithmetic = { version = "16.0.0", default-features = false, path = "../../primitives/arithmetic" }
 frame-benchmarking = { version = "4.0.0-dev", default-features = false, optional = true, path = "../benchmarking" }
 frame-support = { version = "4.0.0-dev", default-features = false, path = "../support" }
diff --git a/substrate/frame/remark/Cargo.toml b/substrate/frame/remark/Cargo.toml
index 4ab9c664c1ae580930f1e0d3bc4255f8bb686672..c1e6b296726e2788c24720592ab79ca7f73ac473 100644
--- a/substrate/frame/remark/Cargo.toml
+++ b/substrate/frame/remark/Cargo.toml
@@ -15,7 +15,7 @@ targets = ["x86_64-unknown-linux-gnu"]
 [dependencies]
 codec = { package = "parity-scale-codec", version = "3.2.2", default-features = false }
 scale-info = { version = "2.5.0", default-features = false, features = ["derive"] }
-serde = { version = "1.0.136", optional = true }
+serde = { version = "1.0.163", optional = true }
 frame-benchmarking = { version = "4.0.0-dev", default-features = false, optional = true, path = "../benchmarking" }
 frame-support = { version = "4.0.0-dev", default-features = false, path = "../support" }
 frame-system = { version = "4.0.0-dev", default-features = false, path = "../system" }
diff --git a/substrate/frame/staking/Cargo.toml b/substrate/frame/staking/Cargo.toml
index 414f9a71f4c24d839a4ba9b9fd33730eb67eff5d..b4577401d33662016a894367c0af96ae29897f21 100644
--- a/substrate/frame/staking/Cargo.toml
+++ b/substrate/frame/staking/Cargo.toml
@@ -13,7 +13,7 @@ readme = "README.md"
 targets = ["x86_64-unknown-linux-gnu"]
 
 [dependencies]
-serde = { version = "1.0.136", optional = true }
+serde = { version = "1.0.163", optional = true }
 codec = { package = "parity-scale-codec", version = "3.2.2", default-features = false, features = [
 	"derive",
 ] }
diff --git a/substrate/frame/state-trie-migration/Cargo.toml b/substrate/frame/state-trie-migration/Cargo.toml
index 9cd875932ceafac9894ee7efa9c21be5ad9ca68a..50b665dc332a9529e87988c6112c793aa86128ad 100644
--- a/substrate/frame/state-trie-migration/Cargo.toml
+++ b/substrate/frame/state-trie-migration/Cargo.toml
@@ -15,7 +15,7 @@ targets = ["x86_64-unknown-linux-gnu"]
 codec = { package = "parity-scale-codec", version = "3.2.2", default-features = false }
 log = { version = "0.4.17", default-features = false }
 scale-info = { version = "2.5.0", default-features = false, features = ["derive"] }
-serde = { version = "1.0.133", optional = true }
+serde = { version = "1.0.163", optional = true }
 thousands = { version = "0.2.0", optional = true }
 zstd = { version = "0.12.3", default-features = false, optional = true }
 frame-benchmarking = { default-features = false, optional = true, path = "../benchmarking" }
diff --git a/substrate/frame/support/Cargo.toml b/substrate/frame/support/Cargo.toml
index 26ec90fc961838cb21bf1d7fbf07219f6b31966e..23b7197a811a0bb87a5c4fe9f9ad6365291ca6cf 100644
--- a/substrate/frame/support/Cargo.toml
+++ b/substrate/frame/support/Cargo.toml
@@ -13,7 +13,7 @@ readme = "README.md"
 targets = ["x86_64-unknown-linux-gnu"]
 
 [dependencies]
-serde = { version = "1.0.136", optional = true, features = ["derive"] }
+serde = { version = "1.0.163", optional = true, features = ["derive"] }
 codec = { package = "parity-scale-codec", version = "3.2.2", default-features = false, features = ["derive", "max-encoded-len"] }
 scale-info = { version = "2.5.0", default-features = false, features = ["derive"] }
 frame-metadata = { version = "15.1.0", default-features = false, features = ["v14", "v15-unstable"] }
diff --git a/substrate/frame/support/test/Cargo.toml b/substrate/frame/support/test/Cargo.toml
index 79cbbcab29ae83e30f7e6c21d908533be3d8e758..555d84f5072bd779ff6124474ed243a806299c28 100644
--- a/substrate/frame/support/test/Cargo.toml
+++ b/substrate/frame/support/test/Cargo.toml
@@ -13,7 +13,7 @@ targets = ["x86_64-unknown-linux-gnu"]
 
 [dependencies]
 static_assertions = "1.1.0"
-serde = { version = "1.0.136", default-features = false, features = ["derive"] }
+serde = { version = "1.0.163", default-features = false, features = ["derive"] }
 codec = { package = "parity-scale-codec", version = "3.2.2", default-features = false, features = ["derive"] }
 scale-info = { version = "2.5.0", default-features = false, features = ["derive"] }
 sp-api = { version = "4.0.0-dev", default-features = false, path = "../../../primitives/api" }
diff --git a/substrate/frame/support/test/pallet/Cargo.toml b/substrate/frame/support/test/pallet/Cargo.toml
index c08fba324eef62240ef46fc6b68acc5872d309a7..97b2193f02335bbdd52eed43cfffceddcccd178d 100644
--- a/substrate/frame/support/test/pallet/Cargo.toml
+++ b/substrate/frame/support/test/pallet/Cargo.toml
@@ -14,7 +14,7 @@ targets = ["x86_64-unknown-linux-gnu"]
 [dependencies]
 codec = { package = "parity-scale-codec", version = "3.2.2", default-features = false, features = ["derive"] }
 scale-info = { version = "2.0.0", default-features = false, features = ["derive"] }
-serde = { version = "1.0.136", default-features = false, features = ["derive"] }
+serde = { version = "1.0.163", default-features = false, features = ["derive"] }
 frame-support = { version = "4.0.0-dev", default-features = false, path = "../../" }
 frame-system = { version = "4.0.0-dev", default-features = false, path = "../../../system" }
 
diff --git a/substrate/frame/system/Cargo.toml b/substrate/frame/system/Cargo.toml
index 5f2fa9f72cd9c8ee89abcfdc8e5f0a6b1caf8eb4..2dfe46b548d9b3b954235bf3f65231b2facedc5d 100644
--- a/substrate/frame/system/Cargo.toml
+++ b/substrate/frame/system/Cargo.toml
@@ -17,7 +17,7 @@ cfg-if = "1.0"
 codec = { package = "parity-scale-codec", version = "3.2.2", default-features = false, features = ["derive"] }
 log = { version = "0.4.17", default-features = false }
 scale-info = { version = "2.5.0", default-features = false, features = ["derive"] }
-serde = { version = "1.0.136", features = ["derive"], optional = true }
+serde = { version = "1.0.163", features = ["derive"], optional = true }
 frame-support = { version = "4.0.0-dev", default-features = false, path = "../support" }
 sp-core = { version = "21.0.0", default-features = false, path = "../../primitives/core" }
 sp-io = { version = "23.0.0", default-features = false, path = "../../primitives/io" }
diff --git a/substrate/frame/tips/Cargo.toml b/substrate/frame/tips/Cargo.toml
index 7d14265b439f04c3b6688da9eddd1cef7e5308de..23c98c4796487eb147df3d6774c399c053ec8d8a 100644
--- a/substrate/frame/tips/Cargo.toml
+++ b/substrate/frame/tips/Cargo.toml
@@ -16,7 +16,7 @@ targets = ["x86_64-unknown-linux-gnu"]
 codec = { package = "parity-scale-codec", version = "3.2.2", default-features = false, features = ["derive"] }
 log = { version = "0.4.17", default-features = false }
 scale-info = { version = "2.5.0", default-features = false, features = ["derive"] }
-serde = { version = "1.0.136", features = ["derive"], optional = true }
+serde = { version = "1.0.163", features = ["derive"], optional = true }
 frame-benchmarking = { version = "4.0.0-dev", default-features = false, optional = true, path = "../benchmarking" }
 frame-support = { version = "4.0.0-dev", default-features = false, path = "../support" }
 frame-system = { version = "4.0.0-dev", default-features = false, path = "../system" }
diff --git a/substrate/frame/transaction-payment/Cargo.toml b/substrate/frame/transaction-payment/Cargo.toml
index 3085702414ed8804f3c2d2c9e79732c6cce8dc37..35f1ff49e1285a3678c6bdda72c64fb3ccb4d7e3 100644
--- a/substrate/frame/transaction-payment/Cargo.toml
+++ b/substrate/frame/transaction-payment/Cargo.toml
@@ -17,7 +17,7 @@ codec = { package = "parity-scale-codec", version = "3.2.2", default-features =
 	"derive",
 ] }
 scale-info = { version = "2.5.0", default-features = false, features = ["derive"] }
-serde = { version = "1.0.136", optional = true }
+serde = { version = "1.0.163", optional = true }
 frame-support = { version = "4.0.0-dev", default-features = false, path = "../support" }
 frame-system = { version = "4.0.0-dev", default-features = false, path = "../system" }
 sp-core = { version = "21.0.0", default-features = false, path = "../../primitives/core" }
diff --git a/substrate/frame/transaction-payment/asset-tx-payment/Cargo.toml b/substrate/frame/transaction-payment/asset-tx-payment/Cargo.toml
index c12a704fa313c832cdf69a26fba6e04947294dcd..980c85ee12da69db0560711b62e755c86c362300 100644
--- a/substrate/frame/transaction-payment/asset-tx-payment/Cargo.toml
+++ b/substrate/frame/transaction-payment/asset-tx-payment/Cargo.toml
@@ -27,7 +27,7 @@ frame-benchmarking = { version = "4.0.0-dev", default-features = false, path = "
 # Other dependencies
 codec = { package = "parity-scale-codec", version = "3.2.2", default-features = false, features = ["derive"] }
 scale-info = { version = "2.5.0", default-features = false, features = ["derive"] }
-serde = { version = "1.0.136", optional = true }
+serde = { version = "1.0.163", optional = true }
 
 [dev-dependencies]
 serde_json = "1.0.85"
diff --git a/substrate/frame/transaction-storage/Cargo.toml b/substrate/frame/transaction-storage/Cargo.toml
index b7e14b89f27d89cbb239b5c22608f73f9a86bb98..0305bf9683da533d4712f0bb3d023699c983514e 100644
--- a/substrate/frame/transaction-storage/Cargo.toml
+++ b/substrate/frame/transaction-storage/Cargo.toml
@@ -16,7 +16,7 @@ targets = ["x86_64-unknown-linux-gnu"]
 array-bytes = { version = "4.1", optional = true }
 codec = { package = "parity-scale-codec", version = "3.2.2", default-features = false }
 scale-info = { version = "2.5.0", default-features = false, features = ["derive"] }
-serde = { version = "1.0.136", optional = true }
+serde = { version = "1.0.163", optional = true }
 frame-benchmarking = { version = "4.0.0-dev", default-features = false, optional = true, path = "../benchmarking" }
 frame-support = { version = "4.0.0-dev", default-features = false, path = "../support" }
 frame-system = { version = "4.0.0-dev", default-features = false, path = "../system" }
diff --git a/substrate/frame/treasury/Cargo.toml b/substrate/frame/treasury/Cargo.toml
index 1eaea21b88724c81e9dc2bf798e7a8fff3d451b7..5d8617f76d849798afb160a20688c109c1192a16 100644
--- a/substrate/frame/treasury/Cargo.toml
+++ b/substrate/frame/treasury/Cargo.toml
@@ -19,7 +19,7 @@ codec = { package = "parity-scale-codec", version = "3.2.2", default-features =
 ] }
 impl-trait-for-tuples = "0.2.2"
 scale-info = { version = "2.5.0", default-features = false, features = ["derive"] }
-serde = { version = "1.0.136", features = ["derive"], optional = true }
+serde = { version = "1.0.163", features = ["derive"], optional = true }
 frame-benchmarking = { version = "4.0.0-dev", default-features = false, optional = true, path = "../benchmarking" }
 frame-support = { version = "4.0.0-dev", default-features = false, path = "../support" }
 frame-system = { version = "4.0.0-dev", default-features = false, path = "../system" }
diff --git a/substrate/primitives/application-crypto/Cargo.toml b/substrate/primitives/application-crypto/Cargo.toml
index 5a12a8ec1b4bfe3d1223e4e3ede0c7b221a22f3b..2e21e80c50d8d40a31659504fc8fd0125efd6e49 100644
--- a/substrate/primitives/application-crypto/Cargo.toml
+++ b/substrate/primitives/application-crypto/Cargo.toml
@@ -18,7 +18,7 @@ targets = ["x86_64-unknown-linux-gnu"]
 sp-core = { version = "21.0.0", default-features = false, path = "../core" }
 codec = { package = "parity-scale-codec", version = "3.2.2", default-features = false, features = ["derive"] }
 scale-info = { version = "2.5.0", default-features = false, features = ["derive"] }
-serde = { version = "1.0.136", default-features = false, optional = true, features = ["derive", "alloc"]  }
+serde = { version = "1.0.163", default-features = false, optional = true, features = ["derive", "alloc"]  }
 sp-std = { version = "8.0.0", default-features = false, path = "../std" }
 sp-io = { version = "23.0.0", default-features = false, path = "../io" }
 
diff --git a/substrate/primitives/arithmetic/Cargo.toml b/substrate/primitives/arithmetic/Cargo.toml
index 2f991cab300973618b4a6865b8e778fc8e29e20e..f767967e8fa27629c15c4b844a7d12d656f82fb8 100644
--- a/substrate/primitives/arithmetic/Cargo.toml
+++ b/substrate/primitives/arithmetic/Cargo.toml
@@ -21,7 +21,7 @@ codec = { package = "parity-scale-codec", version = "3.2.2", default-features =
 integer-sqrt = "0.1.2"
 num-traits = { version = "0.2.8", default-features = false }
 scale-info = { version = "2.5.0", default-features = false, features = ["derive"] }
-serde = { version = "1.0.136", default-features = false, features = ["derive", "alloc"], optional = true }
+serde = { version = "1.0.163", default-features = false, features = ["derive", "alloc"], optional = true }
 static_assertions = "1.1.0"
 sp-std = { version = "8.0.0", default-features = false, path = "../std" }
 
diff --git a/substrate/primitives/consensus/babe/Cargo.toml b/substrate/primitives/consensus/babe/Cargo.toml
index 28aa4f518cf394e481ba248312079b27828df137..50cddf38ed445889f16a09fc5452d7eabf09473b 100644
--- a/substrate/primitives/consensus/babe/Cargo.toml
+++ b/substrate/primitives/consensus/babe/Cargo.toml
@@ -16,7 +16,7 @@ targets = ["x86_64-unknown-linux-gnu"]
 async-trait = { version = "0.1.57", optional = true }
 codec = { package = "parity-scale-codec", version = "3.2.2", default-features = false }
 scale-info = { version = "2.5.0", default-features = false, features = ["derive"] }
-serde = { version = "1.0.136", default-features = false, features = ["derive", "alloc"], optional = true }
+serde = { version = "1.0.163", default-features = false, features = ["derive", "alloc"], optional = true }
 sp-api = { version = "4.0.0-dev", default-features = false, path = "../../api" }
 sp-application-crypto = { version = "23.0.0", default-features = false, path = "../../application-crypto" }
 sp-consensus = { version = "0.10.0-dev", optional = true, path = "../common" }
diff --git a/substrate/primitives/consensus/beefy/Cargo.toml b/substrate/primitives/consensus/beefy/Cargo.toml
index 3f13f768028a6aa9d0fd7b8947bf90032ddc88ba..bfcdf619142fcb34657d971d436cc0b0342ebd4f 100644
--- a/substrate/primitives/consensus/beefy/Cargo.toml
+++ b/substrate/primitives/consensus/beefy/Cargo.toml
@@ -14,7 +14,7 @@ targets = ["x86_64-unknown-linux-gnu"]
 [dependencies]
 codec = { package = "parity-scale-codec", version = "3.2.2", default-features = false, features = ["derive"] }
 scale-info = { version = "2.5.0", default-features = false, features = ["derive"] }
-serde = { version = "1.0.136", default-features = false,  optional = true, features =  ["derive", "alloc"] }
+serde = { version = "1.0.163", default-features = false,  optional = true, features =  ["derive", "alloc"] }
 sp-api = { version = "4.0.0-dev", default-features = false, path = "../../api" }
 sp-application-crypto = { version = "23.0.0", default-features = false, path = "../../application-crypto" }
 sp-core = { version = "21.0.0", default-features = false, path = "../../core" }
diff --git a/substrate/primitives/consensus/grandpa/Cargo.toml b/substrate/primitives/consensus/grandpa/Cargo.toml
index e80a50dfd65109460721de2d3683fd1bbd188393..c022b5da055481b739448a81606f4891857bb235 100644
--- a/substrate/primitives/consensus/grandpa/Cargo.toml
+++ b/substrate/primitives/consensus/grandpa/Cargo.toml
@@ -18,7 +18,7 @@ codec = { package = "parity-scale-codec", version = "3.2.2", default-features =
 grandpa = { package = "finality-grandpa", version = "0.16.2", default-features = false, features = ["derive-codec"] }
 log = { version = "0.4.17", default-features = false }
 scale-info = { version = "2.5.0", default-features = false, features = ["derive"] }
-serde = { version = "1.0.136", features = ["derive", "alloc"], default-features = false, optional = true }
+serde = { version = "1.0.163", features = ["derive", "alloc"], default-features = false, optional = true }
 sp-api = { version = "4.0.0-dev", default-features = false, path = "../../api" }
 sp-application-crypto = { version = "23.0.0", default-features = false, path = "../../application-crypto" }
 sp-core = { version = "21.0.0", default-features = false, path = "../../core" }
diff --git a/substrate/primitives/core/Cargo.toml b/substrate/primitives/core/Cargo.toml
index e93375132956670fb59031c8ef61fd25045b19bd..98df775d289c1bea442cf3f780b21c6ae0e5587e 100644
--- a/substrate/primitives/core/Cargo.toml
+++ b/substrate/primitives/core/Cargo.toml
@@ -16,7 +16,7 @@ targets = ["x86_64-unknown-linux-gnu"]
 codec = { package = "parity-scale-codec", version = "3.2.2", default-features = false, features = ["derive","max-encoded-len"] }
 scale-info = { version = "2.5.0", default-features = false, features = ["derive"] }
 log = { version = "0.4.17", default-features = false }
-serde = { version = "1.0.136", optional = true,  default-features = false, features = ["derive", "alloc"] }
+serde = { version = "1.0.163", optional = true,  default-features = false, features = ["derive", "alloc"] }
 bounded-collections = { version = "0.1.7", default-features = false }
 primitive-types = { version = "0.12.0", default-features = false, features = ["codec", "scale-info"] }
 impl-serde = { version = "0.4.0", default-features = false, optional = true }
diff --git a/substrate/primitives/merkle-mountain-range/Cargo.toml b/substrate/primitives/merkle-mountain-range/Cargo.toml
index d372374677f5fa98540dbf853090d16c624dc1a6..a30f788dd486eb33119278ee578b468867e14ea8 100644
--- a/substrate/primitives/merkle-mountain-range/Cargo.toml
+++ b/substrate/primitives/merkle-mountain-range/Cargo.toml
@@ -16,7 +16,7 @@ codec = { package = "parity-scale-codec", version = "3.2.2", default-features =
 scale-info = { version = "2.5.0", default-features = false, features = ["derive"] }
 log = { version = "0.4.17", default-features = false }
 mmr-lib = { package = "ckb-merkle-mountain-range", version = "0.5.2", default-features = false }
-serde = { version = "1.0.136", features = ["derive", "alloc"], default-features = false, optional = true }
+serde = { version = "1.0.163", features = ["derive", "alloc"], default-features = false, optional = true }
 sp-api = { version = "4.0.0-dev", default-features = false, path = "../api" }
 sp-core = { version = "21.0.0", default-features = false, path = "../core" }
 sp-debug-derive = { version = "8.0.0", default-features = false, path = "../debug-derive" }
diff --git a/substrate/primitives/npos-elections/Cargo.toml b/substrate/primitives/npos-elections/Cargo.toml
index c7cdd99a395c9dc3af5b4d4586ff6a746c17d138..11d16b87f8333f4f735dbf422a01851148ca02a8 100644
--- a/substrate/primitives/npos-elections/Cargo.toml
+++ b/substrate/primitives/npos-elections/Cargo.toml
@@ -15,7 +15,7 @@ targets = ["x86_64-unknown-linux-gnu"]
 [dependencies]
 codec = { package = "parity-scale-codec", version = "3.2.2", default-features = false, features = ["derive"] }
 scale-info = { version = "2.5.0", default-features = false, features = ["derive"] }
-serde = { version = "1.0.136", default-features = false, features = ["derive", "alloc"], optional = true }
+serde = { version = "1.0.163", default-features = false, features = ["derive", "alloc"], optional = true }
 sp-arithmetic = { version = "16.0.0", default-features = false, path = "../arithmetic" }
 sp-core = { version = "21.0.0", default-features = false, path = "../core" }
 sp-runtime = { version = "24.0.0", default-features = false, path = "../runtime" }
diff --git a/substrate/primitives/rpc/Cargo.toml b/substrate/primitives/rpc/Cargo.toml
index 1738e5a7096c1f849558c364814e5a975faf2387..37840c38e79f18c14e6ad851cdcbd336716cd0c4 100644
--- a/substrate/primitives/rpc/Cargo.toml
+++ b/substrate/primitives/rpc/Cargo.toml
@@ -14,7 +14,7 @@ targets = ["x86_64-unknown-linux-gnu"]
 
 [dependencies]
 rustc-hash = "1.1.0"
-serde = { version = "1.0.136", features = ["derive"] }
+serde = { version = "1.0.163", features = ["derive"] }
 sp-core = { version = "21.0.0", path = "../core" }
 
 [dev-dependencies]
diff --git a/substrate/primitives/runtime/Cargo.toml b/substrate/primitives/runtime/Cargo.toml
index ff4158eb45bdf7f7cbf85616ef8e4c74f817b081..c80cc8cf56dcb35eee15abc57abc56efcc7f6d2e 100644
--- a/substrate/primitives/runtime/Cargo.toml
+++ b/substrate/primitives/runtime/Cargo.toml
@@ -22,7 +22,7 @@ log = { version = "0.4.17", default-features = false }
 paste = "1.0"
 rand = { version = "0.8.5", optional = true }
 scale-info = { version = "2.5.0", default-features = false, features = ["derive"] }
-serde = { version = "1.0.136", default-features = false, features = ["derive", "alloc"], optional = true }
+serde = { version = "1.0.163", default-features = false, features = ["derive", "alloc"], optional = true }
 sp-application-crypto = { version = "23.0.0", default-features = false, path = "../application-crypto" }
 sp-arithmetic = { version = "16.0.0", default-features = false, path = "../arithmetic" }
 sp-core = { version = "21.0.0", default-features = false, path = "../core" }
diff --git a/substrate/primitives/staking/Cargo.toml b/substrate/primitives/staking/Cargo.toml
index 4c2819fc791514a8b4651e60729f53e1ed40d2fe..83b9849f266bd0919af59fa162ea72747eddeb0c 100644
--- a/substrate/primitives/staking/Cargo.toml
+++ b/substrate/primitives/staking/Cargo.toml
@@ -13,7 +13,7 @@ readme = "README.md"
 targets = ["x86_64-unknown-linux-gnu"]
 
 [dependencies]
-serde = { version = "1.0.136", optional = true }
+serde = { version = "1.0.163", optional = true }
 codec = { package = "parity-scale-codec", version = "3.2.2", default-features = false, features = ["derive"] }
 scale-info = { version = "2.5.0", default-features = false, features = ["derive"] }
 sp-core = { version = "21.0.0", default-features = false, path = "../core" }
diff --git a/substrate/primitives/storage/Cargo.toml b/substrate/primitives/storage/Cargo.toml
index 41e0acfe6197b9ccc3f40a69035aebba3a7ed1b9..6949647c4d307a334bae4ded25e24ae731de173e 100644
--- a/substrate/primitives/storage/Cargo.toml
+++ b/substrate/primitives/storage/Cargo.toml
@@ -17,7 +17,7 @@ targets = ["x86_64-unknown-linux-gnu"]
 codec = { package = "parity-scale-codec", version = "3.2.2", default-features = false, features = ["derive"] }
 impl-serde = { version = "0.4.0", optional = true, default-features = false }
 ref-cast = "1.0.0"
-serde = { version = "1.0.136", default-features = false, features = ["derive", "alloc"], optional = true }
+serde = { version = "1.0.163", default-features = false, features = ["derive", "alloc"], optional = true }
 sp-debug-derive = { version = "8.0.0", default-features = false, path = "../debug-derive" }
 sp-std = { version = "8.0.0", default-features = false, path = "../std" }
 
diff --git a/substrate/primitives/test-primitives/Cargo.toml b/substrate/primitives/test-primitives/Cargo.toml
index bb2049fe7f6954c10cc5bc984ff3883fc8ecf015..750773d04647df5d0b6c5d0e793a2cb6874604bc 100644
--- a/substrate/primitives/test-primitives/Cargo.toml
+++ b/substrate/primitives/test-primitives/Cargo.toml
@@ -14,7 +14,7 @@ targets = ["x86_64-unknown-linux-gnu"]
 [dependencies]
 codec = { package = "parity-scale-codec", version = "3.2.2", default-features = false, features = ["derive"] }
 scale-info = { version = "2.1.1", default-features = false, features = ["derive"] }
-serde = { version = "1.0.136", default-features = false, features = ["derive"], optional = true }
+serde = { version = "1.0.163", default-features = false, features = ["derive"], optional = true }
 sp-application-crypto = { version = "23.0.0", default-features = false, path = "../application-crypto" }
 sp-core = { version = "21.0.0", default-features = false, path = "../core" }
 sp-runtime = { version = "24.0.0", default-features = false, path = "../runtime" }
diff --git a/substrate/primitives/version/Cargo.toml b/substrate/primitives/version/Cargo.toml
index c891e1b094920feb6d79a5b12a4bbda8b11883c6..fd91fdf71405783b81884e5a4e93eeb69f576c93 100644
--- a/substrate/primitives/version/Cargo.toml
+++ b/substrate/primitives/version/Cargo.toml
@@ -18,7 +18,7 @@ codec = { package = "parity-scale-codec", version = "3.2.2", default-features =
 impl-serde = { version = "0.4.0", default-features = false, optional = true }
 parity-wasm = { version = "0.45", optional = true }
 scale-info = { version = "2.5.0", default-features = false, features = ["derive"] }
-serde = { version = "1.0.136",  default-features = false, features = ["derive", "alloc"], optional = true }
+serde = { version = "1.0.163",  default-features = false, features = ["derive", "alloc"], optional = true }
 thiserror = { version = "1.0.30", optional = true }
 sp-core-hashing-proc-macro = { version = "9.0.0", path = "../core/hashing/proc-macro" }
 sp-runtime = { version = "24.0.0", default-features = false, path = "../runtime" }
diff --git a/substrate/primitives/weights/Cargo.toml b/substrate/primitives/weights/Cargo.toml
index 763c5744093814437254e25a0d7001546ba2e35d..634b8ee16f4e4d72d29ebfcbf7519fbc1b30ecf1 100644
--- a/substrate/primitives/weights/Cargo.toml
+++ b/substrate/primitives/weights/Cargo.toml
@@ -15,7 +15,7 @@ targets = ["x86_64-unknown-linux-gnu"]
 [dependencies]
 codec = { package = "parity-scale-codec", version = "3.2.2", default-features = false, features = ["derive"] }
 scale-info = { version = "2.5.0", default-features = false, features = ["derive"] }
-serde = { version = "1.0.136", default-features = false, optional = true, features = ["derive", "alloc"] }
+serde = { version = "1.0.163", default-features = false, optional = true, features = ["derive", "alloc"] }
 smallvec = "1.8.0"
 sp-arithmetic = { version = "16.0.0", default-features = false, path = "../arithmetic" }
 sp-core = { version = "21.0.0", default-features = false, path = "../core" }
diff --git a/substrate/test-utils/client/Cargo.toml b/substrate/test-utils/client/Cargo.toml
index e745be28a5e42365c83159bef2880a5ed26057e6..294421091e331b550a04e552f9657fe96df31ef8 100644
--- a/substrate/test-utils/client/Cargo.toml
+++ b/substrate/test-utils/client/Cargo.toml
@@ -17,7 +17,7 @@ array-bytes = "4.1"
 async-trait = "0.1.57"
 codec = { package = "parity-scale-codec", version = "3.2.2" }
 futures = "0.3.21"
-serde = "1.0.136"
+serde = "1.0.163"
 serde_json = "1.0.85"
 sc-client-api = { version = "4.0.0-dev", path = "../../client/api" }
 sc-client-db = { version = "0.10.0-dev", default-features = false, features = [
diff --git a/substrate/test-utils/runtime/Cargo.toml b/substrate/test-utils/runtime/Cargo.toml
index 4c7a0d8c565a98db18a3b89014e52901539c50d8..efdc39d579ffb9be80c0ec19155a86b838c10ce0 100644
--- a/substrate/test-utils/runtime/Cargo.toml
+++ b/substrate/test-utils/runtime/Cargo.toml
@@ -54,7 +54,7 @@ sp-debug-derive = { path = "../../primitives/debug-derive" }
 # 3rd party
 array-bytes = { version = "6.1", optional = true }
 log = { version = "0.4.17", default-features = false }
-serde = { version = "1.0.136", optional = true, features = ["derive"] }
+serde = { version = "1.0.163", optional = true, features = ["derive"] }
 
 [dev-dependencies]
 futures = "0.3.21"
diff --git a/substrate/utils/frame/benchmarking-cli/Cargo.toml b/substrate/utils/frame/benchmarking-cli/Cargo.toml
index 59eaaa35bd3ee2f7ee3cdf14b67c4193c244c0be..7bad75a2ae2695aaaeaac5eb46294724a4d4b72d 100644
--- a/substrate/utils/frame/benchmarking-cli/Cargo.toml
+++ b/substrate/utils/frame/benchmarking-cli/Cargo.toml
@@ -26,7 +26,7 @@ linked-hash-map = "0.5.4"
 log = "0.4.17"
 rand = { version = "0.8.4", features = ["small_rng"] }
 rand_pcg = "0.3.1"
-serde = "1.0.136"
+serde = "1.0.163"
 serde_json = "1.0.85"
 thiserror = "1.0.30"
 thousands = "0.2.0"
diff --git a/substrate/utils/frame/remote-externalities/Cargo.toml b/substrate/utils/frame/remote-externalities/Cargo.toml
index c0f801564b6f120d5751abda3cd38ee31ff326b9..734e965a9070e465cf7495a07aca3440b7bd7abb 100644
--- a/substrate/utils/frame/remote-externalities/Cargo.toml
+++ b/substrate/utils/frame/remote-externalities/Cargo.toml
@@ -15,7 +15,7 @@ targets = ["x86_64-unknown-linux-gnu"]
 jsonrpsee = { version = "0.16.2", features = ["http-client"] }
 codec = { package = "parity-scale-codec", version = "3.2.2" }
 log = "0.4.17"
-serde = "1.0.136"
+serde = "1.0.163"
 frame-support = { version = "4.0.0-dev", optional = true, path = "../../../frame/support" }
 sp-core = { version = "21.0.0", path = "../../../primitives/core" }
 sp-io = { version = "23.0.0", path = "../../../primitives/io" }
diff --git a/substrate/utils/frame/try-runtime/cli/Cargo.toml b/substrate/utils/frame/try-runtime/cli/Cargo.toml
index 192b0794127d10da5cc7900e78836c45cfc17257..e63698387ab851201325e2307b849851acbd34dd 100644
--- a/substrate/utils/frame/try-runtime/cli/Cargo.toml
+++ b/substrate/utils/frame/try-runtime/cli/Cargo.toml
@@ -40,7 +40,7 @@ clap = { version = "4.2.5", features = ["derive"] }
 hex = { version = "0.4.3", default-features = false }
 log = "0.4.17"
 parity-scale-codec = "3.2.2"
-serde = "1.0.136"
+serde = "1.0.163"
 serde_json = "1.0.85"
 zstd = { version = "0.12.3", default-features = false }