services: # ── PostgreSQL Database ───────────────────────────────────────────── db: image: postgres:15-alpine container_name: litellm-db-45809 environment: POSTGRES_DB: litellm POSTGRES_USER: litellm POSTGRES_PASSWORD: litellm123 ports: - "5432:5432" healthcheck: test: ["CMD-SHELL", "pg_isready -U litellm -d litellm"] interval: 5s timeout: 3s retries: 10 # ── Vulnerable LiteLLM (v1.65.4 — SQL injection in /key/block) ──── litellm-vuln: build: ./litellm-vuln container_name: litellm-cve-45809-vuln ports: - "4000:4000" volumes: - ./litellm_config.yaml:/app/config.yaml environment: LITELLM_MASTER_KEY: sk-litellm-master-key DATABASE_URL: postgresql://litellm:litellm123@db:5432/litellm depends_on: db: condition: service_healthy restart: unless-stopped # ── Fixed LiteLLM (v1.81.0+ — parameterized queries) ────────────── litellm-fixed: image: ghcr.io/berriai/litellm:v1.83.10-stable container_name: litellm-cve-45809-fixed ports: - "4001:4000" volumes: - ./litellm_config.yaml:/app/config.yaml environment: LITELLM_MASTER_KEY: sk-litellm-master-key DATABASE_URL: postgresql://litellm:litellm123@db:5432/litellm profiles: - fixed depends_on: db: condition: service_healthy restart: unless-stopped