README.md
Rendering markdown...
FROM wordpress:6.2-php8.1-apache
# CVE-2016-15041: MainWP Dashboard 3.1.2 - Unauthenticated Stored XSS
# Vulnerable version obtained from WordPress SVN revision r1394563 (April 14, 2016)
# Fix was applied in r1406725 (April 29, 2016) with version 3.1.3
#
# The plugin has been patched for PHP 8.x compatibility:
# - Removed deprecated __autoload() fallback (spl_autoload_register remains)
# - Fixed curly brace array access syntax
#
# The XSS vulnerability (missing esc_attr in view-mainwp-extensions-view.php line 74)
# is NOT affected by these compatibility changes.
RUN apt-get update && apt-get install -y unzip netcat-openbsd && rm -rf /var/lib/apt/lists/*
# Install WP-CLI
RUN curl -sO https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar && \
chmod +x wp-cli.phar && \
mv wp-cli.phar /usr/local/bin/wp
# Create plugins directory
RUN mkdir -p /var/www/html/wp-content/plugins
# Copy and extract the vulnerable MainWP plugin
COPY mainwp-3.1.2-vulnerable.zip /tmp/
RUN unzip -q /tmp/mainwp-3.1.2-vulnerable.zip -d /tmp/ && \
mv /tmp/mainwp-vuln /var/www/html/wp-content/plugins/mainwp && \
rm /tmp/mainwp-3.1.2-vulnerable.zip
# Set proper permissions
RUN chown -R www-data:www-data /var/www/html/wp-content
# Copy custom entrypoint
COPY docker-entrypoint-custom.sh /usr/local/bin/
RUN chmod +x /usr/local/bin/docker-entrypoint-custom.sh
EXPOSE 80
ENTRYPOINT ["docker-entrypoint-custom.sh"]
CMD ["apache2-foreground"]