diff --git a/.github/container/Dockerfile b/.github/container/Dockerfile
index fd7850bd1..92bc51980 100644
--- a/.github/container/Dockerfile
+++ b/.github/container/Dockerfile
@@ -1,6 +1,6 @@
#' Define default build variables
-ARG OTP_VSN='28.3.0.0'
-ARG ELIXIR_VSN='1.19.4'
+ARG OTP_VSN='28.3.1.0'
+ARG ELIXIR_VSN='1.19.5'
ARG UID='9000'
ARG USER='ejabberd'
ARG HOME="opt/$USER"
diff --git a/CONTAINER.md b/CONTAINER.md
index 5fb602a73..f1c2ad129 100644
--- a/CONTAINER.md
+++ b/CONTAINER.md
@@ -1071,7 +1071,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.3.0.0-alpine
Elixir 1.19.4 | Alpine 3.22
Erlang/OTP 26.2
Elixir 1.18.3 |
+| Software | Erlang/OTP 28.3.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 80c0bd3d7..4619a1b11 100755
--- a/tools/make-binaries
+++ b/tools/make-binaries
@@ -71,8 +71,8 @@ expat_vsn='2.7.3'
zlib_vsn='1.3.1'
yaml_vsn='0.2.5'
ssl_vsn='3.5.4'
-otp_vsn='28.3'
-elixir_vsn='1.19.4'
+otp_vsn='28.3.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'
jpeg_vsn='9f'