name: cve-2026-49060-hippoo-lab services: db-vuln: image: mariadb:10.11 container_name: cve-2026-49060-db-vuln environment: MARIADB_DATABASE: wordpress MARIADB_USER: wordpress MARIADB_PASSWORD: wordpress MARIADB_ROOT_PASSWORD: rootpass volumes: - db-vuln:/var/lib/mysql networks: - lab healthcheck: test: ["CMD", "healthcheck.sh", "--connect", "--innodb_initialized"] interval: 5s timeout: 5s retries: 30 db-patched: image: mariadb:10.11 container_name: cve-2026-49060-db-patched environment: MARIADB_DATABASE: wordpress MARIADB_USER: wordpress MARIADB_PASSWORD: wordpress MARIADB_ROOT_PASSWORD: rootpass volumes: - db-patched:/var/lib/mysql networks: - lab healthcheck: test: ["CMD", "healthcheck.sh", "--connect", "--innodb_initialized"] interval: 5s timeout: 5s retries: 30 vuln: build: context: ./vuln args: HIPPOO_VERSION: "1.9.4" WOOCOMMERCE_VERSION: "9.9.5" image: cve-2026-49060-vuln:1.9.4 container_name: cve-2026-49060-vuln depends_on: db-vuln: condition: service_healthy environment: WORDPRESS_DB_HOST: db-vuln:3306 WORDPRESS_DB_USER: wordpress WORDPRESS_DB_PASSWORD: wordpress WORDPRESS_DB_NAME: wordpress WORDPRESS_DEBUG: "1" volumes: - wp-vuln:/var/www/html ports: - "8081:80" networks: - lab healthcheck: test: ["CMD-SHELL", "test -f /var/www/html/.cve-2026-49060-ready"] interval: 5s timeout: 3s retries: 120 patched: build: context: ./patched args: HIPPOO_VERSION: "1.9.5" WOOCOMMERCE_VERSION: "9.9.5" image: cve-2026-49060-patched:1.9.5 container_name: cve-2026-49060-patched depends_on: db-patched: condition: service_healthy environment: WORDPRESS_DB_HOST: db-patched:3306 WORDPRESS_DB_USER: wordpress WORDPRESS_DB_PASSWORD: wordpress WORDPRESS_DB_NAME: wordpress WORDPRESS_DEBUG: "1" volumes: - wp-patched:/var/www/html ports: - "8082:80" networks: - lab healthcheck: test: ["CMD-SHELL", "test -f /var/www/html/.cve-2026-49060-ready"] interval: 5s timeout: 3s retries: 120 init-vuln: image: cve-2026-49060-vuln:1.9.4 container_name: cve-2026-49060-init-vuln depends_on: db-vuln: condition: service_healthy vuln: condition: service_started environment: WORDPRESS_DB_HOST: db-vuln:3306 WORDPRESS_DB_USER: wordpress WORDPRESS_DB_PASSWORD: wordpress WORDPRESS_DB_NAME: wordpress volumes: - wp-vuln:/var/www/html networks: - lab entrypoint: [] command: - bash - -c - | set -euo pipefail echo "[init-vuln] waiting for WordPress files" until [ -f /var/www/html/wp-load.php ]; do sleep 2 done echo "[init-vuln] waiting for database" until wp db check --allow-root --path=/var/www/html; do sleep 2 done if ! wp core is-installed --allow-root --path=/var/www/html; then echo "[init-vuln] installing WordPress core" wp core install \ --allow-root \ --path=/var/www/html \ --url="http://localhost:8081" \ --title="CVE-2026-49060 Hippoo vulnerable" \ --admin_user="admin" \ --admin_password="AdminPass123!" \ --admin_email="admin@example.test" \ --skip-email else echo "[init-vuln] WordPress already installed" fi echo "[init-vuln] activating WooCommerce" wp plugin activate woocommerce --allow-root --path=/var/www/html echo "[init-vuln] activating Hippoo" wp plugin activate hippoo --allow-root --path=/var/www/html echo "[init-vuln] disabling WooCommerce tracking" wp option update woocommerce_allow_tracking no --allow-root --path=/var/www/html echo "[init-vuln] verifying active plugins" wp plugin list --allow-root --path=/var/www/html --status=active echo "[init-vuln] verifying admin user" wp user get admin --field=user_login --allow-root --path=/var/www/html echo "[init-vuln] creating readiness marker" touch /var/www/html/.cve-2026-49060-ready echo "[init-vuln] READY: http://localhost:8081 admin/AdminPass123! Hippoo 1.9.4" tail -f /dev/null init-patched: image: cve-2026-49060-patched:1.9.5 container_name: cve-2026-49060-init-patched depends_on: db-patched: condition: service_healthy patched: condition: service_started environment: WORDPRESS_DB_HOST: db-patched:3306 WORDPRESS_DB_USER: wordpress WORDPRESS_DB_PASSWORD: wordpress WORDPRESS_DB_NAME: wordpress volumes: - wp-patched:/var/www/html networks: - lab entrypoint: [] command: - bash - -c - | set -euo pipefail echo "[init-patched] waiting for WordPress files" until [ -f /var/www/html/wp-load.php ]; do sleep 2 done echo "[init-patched] waiting for database" until wp db check --allow-root --path=/var/www/html; do sleep 2 done if ! wp core is-installed --allow-root --path=/var/www/html; then echo "[init-patched] installing WordPress core" wp core install \ --allow-root \ --path=/var/www/html \ --url="http://localhost:8082" \ --title="CVE-2026-49060 Hippoo patched" \ --admin_user="admin" \ --admin_password="AdminPass123!" \ --admin_email="admin@example.test" \ --skip-email else echo "[init-patched] WordPress already installed" fi echo "[init-patched] activating WooCommerce" wp plugin activate woocommerce --allow-root --path=/var/www/html echo "[init-patched] activating Hippoo" wp plugin activate hippoo --allow-root --path=/var/www/html echo "[init-patched] disabling WooCommerce tracking" wp option update woocommerce_allow_tracking no --allow-root --path=/var/www/html echo "[init-patched] verifying active plugins" wp plugin list --allow-root --path=/var/www/html --status=active echo "[init-patched] verifying admin user" wp user get admin --field=user_login --allow-root --path=/var/www/html echo "[init-patched] creating readiness marker" touch /var/www/html/.cve-2026-49060-ready echo "[init-patched] READY: http://localhost:8082 admin/AdminPass123! Hippoo 1.9.5" tail -f /dev/null networks: lab: name: cve-2026-49060-lab volumes: db-vuln: db-patched: wp-vuln: wp-patched: