diff --git a/.github/container/Dockerfile b/.github/container/Dockerfile
index 867c97e86..743e484aa 100644
--- a/.github/container/Dockerfile
+++ b/.github/container/Dockerfile
@@ -1,5 +1,5 @@
#' Define default build variables
-ARG OTP_VSN='28.4.0.0'
+ARG OTP_VSN='28.4.1.0'
ARG ELIXIR_VSN='1.19.5'
ARG UID='9000'
ARG USER='ejabberd'
diff --git a/CONTAINER.md b/CONTAINER.md
index 328bef98a..e9106901d 100644
--- a/CONTAINER.md
+++ b/CONTAINER.md
@@ -1113,7 +1113,7 @@ Let's summarize the differences between both container images. Legend:
| Generated by | [container.yml](https://github.com/processone/ejabberd/blob/master/.github/workflows/container.yml) | [tests.yml](https://github.com/processone/docker-ejabberd/blob/master/.github/workflows/tests.yml) |
| Built for | stable releases
`master` branch | stable releases
[`master` branch zip](https://github.com/processone/docker-ejabberd/actions/workflows/tests.yml) |
| Architectures | `linux/amd64`
`linux/arm64` | `linux/amd64` |
-| Software | Erlang/OTP 28.4.0.0-alpine ðŸŸ
Elixir 1.19.5 🟠| Alpine 3.22
Erlang/OTP 26.2
Elixir 1.18.3 |
+| Software | Erlang/OTP 28.4.1.0-alpine ðŸŸ
Elixir 1.19.5 🟠| Alpine 3.22
Erlang/OTP 26.2
Elixir 1.18.3 |
| Published in | [ghcr.io/processone/ejabberd](https://github.com/processone/ejabberd/pkgs/container/ejabberd) | [docker.io/ejabberd/ecs](https://hub.docker.com/r/ejabberd/ecs/)
[ghcr.io/processone/ecs](https://github.com/processone/docker-ejabberd/pkgs/container/ecs) |
| :black_square_button: **Additional content** |
| [ejabberd-contrib](#ejabberd-contrib) | included | not included |
diff --git a/tools/make-binaries b/tools/make-binaries
index 74f2b8456..fccc169b5 100755
--- a/tools/make-binaries
+++ b/tools/make-binaries
@@ -71,7 +71,7 @@ expat_vsn='2.7.4'
zlib_vsn='1.3.2'
yaml_vsn='0.2.5'
ssl_vsn='3.5.5'
-otp_vsn='28.4'
+otp_vsn='28.4.1'
elixir_vsn='1.19.5'
pam_vsn='1.6.1' # Newer Linux-PAM versions use Meson, we don't support that yet.
png_vsn='1.6.45'