Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
87 changes: 87 additions & 0 deletions ProFTPD/CVE-2019-12815/Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,87 @@
# syntax=docker/dockerfile:1

FROM debian:12.11-slim@sha256:cea2634840f5a87503d8210e4df97b9f23a2acd67ff860a76c133d963032f866 AS ftp-builder

ARG DEBIAN_FRONTEND=noninteractive
ARG PROFTPD_REPO=https://github.com/proftpd/proftpd.git
ARG PROFTPD_COMMIT=4bc883f8764b78e1a239f138adff8b8e6d0bf268

RUN apt-get update \
&& apt-get install -y --no-install-recommends \
ca-certificates \
git \
build-essential \
libcrypt-dev \
&& rm -rf /var/lib/apt/lists/*

WORKDIR /usr/src/proftpd

RUN git init . \
&& git remote add origin "${PROFTPD_REPO}" \
&& git fetch --depth 1 origin "${PROFTPD_COMMIT}" \
&& git checkout --detach "${PROFTPD_COMMIT}" \
&& test "$(git rev-parse HEAD)" = "${PROFTPD_COMMIT}"

RUN ./configure \
--prefix=/usr/local \
--sysconfdir=/etc/proftpd \
--localstatedir=/run/proftpd \
--disable-auth-pam \
--with-modules=mod_copy \
&& make -j"$(nproc)" \
&& make install DESTDIR=/opt/proftpd-root

RUN mkdir -p /opt/proftpd-root/usr/local/share \
&& git rev-parse HEAD > /opt/proftpd-root/usr/local/share/proftpd-source.commit \
&& git archive --format=tar --prefix=proftpd-1.3.5b/ HEAD \
| sha256sum > /opt/proftpd-root/usr/local/share/proftpd-source.tar.sha256


FROM debian:12.11-slim@sha256:cea2634840f5a87503d8210e4df97b9f23a2acd67ff860a76c133d963032f866 AS ftp

ARG DEBIAN_FRONTEND=noninteractive

RUN apt-get update \
&& apt-get install -y --no-install-recommends \
bash \
ca-certificates \
coreutils \
libcrypt1 \
netbase \
passwd \
&& rm -rf /var/lib/apt/lists/* \
&& if ! getent group ftp >/dev/null; then groupadd --system ftp; fi \
&& if ! getent passwd ftp >/dev/null; then useradd --system --gid ftp --home-dir /srv/ftp --shell /usr/sbin/nologin ftp; fi

COPY --from=ftp-builder /opt/proftpd-root/ /
COPY proftpd.conf /etc/proftpd/proftpd.conf
COPY entrypoint.sh /usr/local/sbin/entrypoint.sh

RUN chmod 0755 /usr/local/sbin/entrypoint.sh \
&& mkdir -p /srv/ftp/var/www/html /run/proftpd

EXPOSE 21 80 30000-30009

ENTRYPOINT ["/usr/local/sbin/entrypoint.sh"]


FROM php:8.2.29-apache-bookworm@sha256:bb954ec03238abf760e91a3fa74202f192d644be12bd4bda5bac577997a76466 AS web

RUN mkdir -p /var/www/html

COPY web-entrypoint.sh /usr/local/bin/web-entrypoint.sh

RUN chmod 0755 /usr/local/bin/web-entrypoint.sh

EXPOSE 80

ENTRYPOINT ["/usr/local/bin/web-entrypoint.sh"]
CMD ["apache2-foreground"]


FROM python:3.12.10-slim-bookworm@sha256:97983fa8cc88343512862c62307159a82261c3528dc025f79e5a3f7af43e50b4 AS poc

WORKDIR /app
COPY poc.py /app/poc.py

CMD ["python3", "-c", "import time; time.sleep(31536000)"]
Loading