CMPSBL® · The Collective Master Library

Integration Report — Damn Vulnerable Web Application (DVWA)

A deliberately vulnerable host exposes the most important limit of the library: one evaluation pass can map, compose and govern remediation, but it cannot truthfully certify a real website secure.

RepositoryDVWA-master(1).zip
Commit SHA5d5c76cced604e54462b13723f5c69af58e78748
Archive SHA-2561e9fda4921a905537316b32624fdd150b9a8a36beac99f30882e493af3f76681
PreparedAugust 21, 2026
Prepared byChatGPT (GPT-5.6 Sol) — manual evaluation; kit Runner not invoked
Library versionv3.1.0
LicenceLicenseRef-CMPSBL-Perpetual-1.0
Price evaluatedUS$499 one time, perpetual, per company

In 60 seconds

What this adds to Damn Vulnerable Web Application (DVWA)

It does not “fix DVWA in one pass.” This pre-purchase run modifies zero host lines. What the library can add is a vulnerability-preserving defensive twin, security-regression matrix, replayable attack evidence, deploy-safety gates and a remediation-closure discipline. For a real vulnerable website, those capabilities reduce blind spots but still require direct code remediation and independent retesting.

Vulnerability-Preserving Defensive Twin

Keep every intentional hacking lesson intact while running the same request through a defended comparison lane.

STIER-S-124 + STIER-S-IMM04 + STIER-S-122 → security.php + vulnerabilities/*/source/*.php

Security Regression Matrix

Prove both halves of the curriculum contract: vulnerable levels stay vulnerable as intended; impossible resists the expected class.

BLD-ENG-248 + BLD-ENG-256 + BLD-ENG-075 → tests/ + vulnerabilities/*/source/*.php

Remediation Closure Gate

Refuse to call a real-world finding “closed” merely because code changed; require adversarial regression and then independent retest.

BLD-ENG-248 + STIER-S-CJ132 + BLD-ENG-075 → tests/ + CI

Exploit-to-Evidence Replay Capsule

Turn a transient security exercise into tamper-evident, replayable evidence.

STIER-S-71 + STIER-S-90 → dvwa/includes/dvwaPage.inc.php

Safe-Lab Exposure Lock

Turn DVWA’s deployment warning and safe defaults into executable assertions without breaking classroom mode.

BLD-ENG-075 + STIER-EXTRA-03 + BLD-PRM-068 → compose.yml + config/config.inc.php.dist

1,162/1,162engineered rows screened
6,479/6,479Discovery rows screened
301/301cyber-v1 dedicated pass
0host lines fixed in evaluate-only mode

At least one card above is a Step 5A composite. Licence gate: EVALUATE ONLY — no CMPSBL purchase/grant record was supplied, so no implementation source may be copied or wired.

Step 0

Licence conflict check

Run before any file is copied. This host may be evaluated fully, but integration is blocked until the organisation has a valid CMPSBL Perpetual Edition purchase or grant record.

Evaluation targetSupplied archive DVWA-master(1).zip, pinned by archive comment to commit 5d5c76cced604e54462b13723f5c69af58e78748.
Host licence (SPDX)GPL-3.0-or-later
Where foundCOPYING.txt and README.md:19–34
Purchase or grant recordNone supplied with this run.
CMPSBL authoritative licenceCMPSBL Perpetual Edition License 1.0 — US$499 one time, perpetual, per company; no recurring fee or expiry.
VerdictEVALUATE ONLY — complete Steps 1–8; copy/integrate zero CMPSBL implementation files.
Clause that drove itAGENTS.md Step 0: no purchase/grant record permits evaluation but blocks integration.
Scope limitsCatalog metadata may be evaluated; Discovery source is absent pre-purchase; PHP bridge output cannot be generated from this kit; no implementation/verification claims beyond catalog metadata.
Runner conditionrun-agent-kit.mjs was not invoked. The evaluating agent performed the procedure manually, as instructed by the user.

Sub-package note: the API lesson has its own Composer dependency graph under vulnerabilities/api/, but the repository root GPL licence remains the host licence for this evaluation. A separate nonprofit twin, if granted by the licensor, is outside and does not alter the paying host’s licence or this cost model.

Verdict

BUY CONDITIONALLY

Excellent for a defensive-twin and remediation-closure build; invalid as a “one pass and the site is fixed” promise.

DVWA is a deliberately adversarial test because 57 low/medium/high module-level combinations are supposed to remain vulnerable. The library therefore succeeds only if it can add defense, evidence and verification without erasing the lesson. It can. But it does not replace direct PHP remediation, SAST/DAST, dependency review, manual penetration testing, or independent retest. On a real vulnerable site, the honest workflow is iterative: evaluate → remediate/integrate → internally regress → independently retest → repeat until the defined scope closes.

Net value (range)
−US$12,499 to +US$29,501, B-only counterfactual after estimated integration and the US$499 licence; A=0 and C=0 on available evidence.
Break-even
3.3 engineer-hours for licence alone at US$150/h; actual project break-even requires benefits to exceed roughly 3–6 engineer-weeks of PHP bridge/wiring/review.
Highest-leverage item
Vulnerability-Preserving Defensive Twin
Strongest argument against
If the goal is merely to keep DVWA as an intentionally vulnerable classroom app, its existing impossible variants, warnings and isolation model already serve that purpose; CML is optional.

Step 5A — the section that sells

Composite components built for Damn Vulnerable Web Application (DVWA)

These are intentionally designed around DVWA’s unusual product contract: some vulnerabilities are not bugs to remove. The composites add a defended lane, security regressions, evidence and closure semantics without rewriting the vulnerable curriculum.

Composite 1 — Vulnerability-Preserving Defensive Twin

Mirrors an exercise request into a defended comparison lane, applies sanitization only to that lane, and uses an explicit lesson-integrity policy so intentional vulnerable behavior is preserved in the training lane.

CompositionCMPSBL STIER-S-124 “Shadow Run Environment” + STIER-S-IMM04 “Autoimmune Prevention Governor” + STIER-S-122 “Input Sanitization Gateway” + host security.php and vulnerabilities/*/source/{low,medium,high,impossible}.php
Problem it removesA generic security layer would erase the very vulnerabilities DVWA exists to teach. The host explicitly declares low/medium/high intentionally flawed while impossible is the secure comparison.
Runtime behaviourMirrors an exercise request into a defended comparison lane, applies sanitization only to that lane, and uses an explicit lesson-integrity policy so intentional vulnerable behavior is preserved in the training lane.
New becauseNo individual catalog row knows which vulnerabilities are product content; no DVWA module provides a shadow defended execution with false-positive suppression.
Attachment pointsecurity.php; dvwa/includes/dvwaPage.inc.php; vulnerabilities/*/source/*.php
Leaves untouchedThe original low/medium/high lesson code and expected exploitability.
Effort8–15 engineer-days, basis = three direct components + PHP bridge validation + 19-module policy matrix.
Verified (weakest ingredient, verbatim)C:ok I:ok B:load T:— S:scan. Expanded: any T:— is Not claimed; any B:— is Not claimed.

Data path

request
  |
  +--> training lane (original DVWA level; unchanged)
  |
  +--> shadow lane -> sanitize -> execute defended comparator
                      |
                 lesson-integrity policy
                      |
                 compare + record delta

Composite 2 — Security Regression Matrix

Generates controlled hostile inputs, classifies them, runs level-specific contracts, and audits drift in the expected vulnerable-versus-secure matrix.

CompositionCMPSBL BLD-ENG-248 “Adversarial Input Generator” + BLD-ENG-256 “Schema Validator” + BLD-ENG-075 “Self-Audit Loop” + host 19 vulnerability families and impossible variants
Problem it removestests/test_url.py proves URLs respond, but it does not prove low/medium/high remain intentionally vulnerable or that impossible resists the expected attack classes.
Runtime behaviourGenerates controlled hostile inputs, classifies them, runs level-specific contracts, and audits drift in the expected vulnerable-versus-secure matrix.
New becauseIt tests both sides of DVWA’s product contract: “this route should be breakable here” and “the secure comparison should resist here.”
Attachment pointtests/test_url.py; vulnerabilities/*/source/*.php; security.php
Leaves untouchedLesson implementation logic; tests observe and assert behavior rather than patching it.
Effort6–12 engineer-days, basis = 19 families × four levels, test adapters, and three <200-LOC direct components.
Verified (weakest ingredient, verbatim)C:ok I:ok B:— T:— S:scan. Expanded: any T:— is Not claimed; any B:— is Not claimed.

Data path

adversarial catalog -> generated cases -> level matrix
                                      |
                         low / medium / high / impossible
                                      |
                            schema classify + assertions
                                      |
                                self-audit report

Composite 3 — Exploit-to-Evidence Replay Capsule

Captures a bounded training/security episode into a hash-linked record and replays the event sequence for teaching, regression, or incident review.

CompositionCMPSBL STIER-S-71 “Tamper-Evident Chain” + STIER-S-90 “Forensic Replay Engine” + host session/security-level/request metadata
Problem it removesDVWA can demonstrate an exploit, but the repository has no native immutable episode chain that reconstructs exactly which lesson level, request sequence, and state transitions produced it.
Runtime behaviourCaptures a bounded training/security episode into a hash-linked record and replays the event sequence for teaching, regression, or incident review.
New becauseThe combination turns a transient exploit demonstration into a reproducible evidence artifact without modifying the lesson itself.
Attachment pointdvwa/includes/dvwaPage.inc.php; login.php; selected lesson request boundaries
Leaves untouchedDatabase semantics and vulnerability code; secrets must be redacted before evidence persistence.
Effort5–9 engineer-days, basis = two small direct components + request/session adapter + replay fixtures.
Verified (weakest ingredient, verbatim)C:ok I:ok B:load T:— S:scan. Expanded: any T:— is Not claimed; any B:— is Not claimed.

Data path

request/session facts -> event record -> hash chain -> replay session
                                               |
                                        deterministic timeline

Composite 4 — Safe-Lab Exposure Lock

Audits startup/deploy invariants, refuses or alarms on unsafe public-facing configuration, rate-limits only the defended perimeter, and redacts operational logs while preserving explicitly marked teaching demonstrations.

CompositionCMPSBL BLD-ENG-075 “Self-Audit Loop” + STIER-EXTRA-03 “Rate Limiter” + BLD-PRM-068 “Redact Secrets” + host compose.yml/config/config.inc.php.dist/.github/workflows/vulnerable.yml
Problem it removesDVWA already warns against public exposure and binds Docker to loopback, but configuration can disable authentication and the CI lesson intentionally demonstrates secret exfiltration. A real deployment needs a guard that distinguishes lab mode from accidental exposure.
Runtime behaviourAudits startup/deploy invariants, refuses or alarms on unsafe public-facing configuration, rate-limits only the defended perimeter, and redacts operational logs while preserving explicitly marked teaching demonstrations.
New becauseIt makes “safe to run as a lab” an executable deployment contract rather than a README warning alone.
Attachment pointcompose.yml; config/config.inc.php.dist; .github/workflows/vulnerable.yml; deployment entrypoint
Leaves untouchedExplicitly enabled classroom examples, including the intentionally vulnerable workflow when run in isolated teaching mode.
Effort5–10 engineer-days, basis = three direct components + deployment-policy adapter + CI mode flag.
Verified (weakest ingredient, verbatim)C:ok I:ok B:— T:— S:scan. Expanded: any T:— is Not claimed; any B:— is Not claimed.

Data path

startup / CI / request perimeter -> policy facts
                                 |
                   self-audit -> allow / refuse / warn
                                 |
                     redact operational evidence
                                 +-> rate-limit defended edge

Composite 5 — Remediation Closure Gate

Moves a finding from remediated to internally verified only after adversarial regression and policy checks pass; it then emits an explicit “external retest still required” state rather than declaring the site secure.

CompositionCMPSBL BLD-ENG-248 “Adversarial Input Generator” + STIER-S-CJ132 “Adversarial Simulation Engine” + BLD-ENG-075 “Self-Audit Loop” + host tests and secure/impossible implementations
Problem it removesA code change can look like a fix without proving the exploit path is closed or that adjacent behavior did not regress.
Runtime behaviourMoves a finding from remediated to internally verified only after adversarial regression and policy checks pass; it then emits an explicit “external retest still required” state rather than declaring the site secure.
New becauseIt encodes the exact lesson this evaluation is testing: implementation is not closure, and internal retest is not independent assurance.
Attachment pointtests/; secure/impossible lesson variants; CI result handling
Leaves untouchedIndependent DAST/penetration testing remains external work; the gate cannot manufacture third-party assurance.
Effort5–10 engineer-days, basis = two small adversarial components + self-audit + closure-state/test wiring.
Verified (weakest ingredient, verbatim)C:ok I:ok B:— T:— S:scan. Expanded: any T:— is Not claimed; any B:— is Not claimed.

Data path

finding -> code change -> adversarial regression -> self-audit
                                           |
                                      pass / fail
                                           |
                                INTERNAL VERIFIED
                                           |
                                 independent retest
                                           |
                                        CLOSED

Composite ledger

CompositeIngredientsNew behaviourEffort
Vulnerability-Preserving Defensive TwinCMPSBL STIER-S-124 “Shadow Run Environment” + STIER-S-IMM04 “Autoimmune Prevention Governor” + STIER-S-122 “Input Sanitization Gateway”Mirrors an exercise request into a defended comparison lane, applies sanitization only to that lane, and uses an explicit lesson-integrity policy so intentional vulnerable behavior is preserved in the training lane.8–15 engineer-days, basis = three direct components + PHP bridge validation + 19-module policy matrix.
Security Regression MatrixCMPSBL BLD-ENG-248 “Adversarial Input Generator” + BLD-ENG-256 “Schema Validator” + BLD-ENG-075 “Self-Audit Loop”Generates controlled hostile inputs, classifies them, runs level-specific contracts, and audits drift in the expected vulnerable-versus-secure matrix.6–12 engineer-days, basis = 19 families × four levels, test adapters, and three <200-LOC direct components.
Exploit-to-Evidence Replay CapsuleCMPSBL STIER-S-71 “Tamper-Evident Chain” + STIER-S-90 “Forensic Replay Engine”Captures a bounded training/security episode into a hash-linked record and replays the event sequence for teaching, regression, or incident review.5–9 engineer-days, basis = two small direct components + request/session adapter + replay fixtures.
Safe-Lab Exposure LockCMPSBL BLD-ENG-075 “Self-Audit Loop” + STIER-EXTRA-03 “Rate Limiter” + BLD-PRM-068 “Redact Secrets”Audits startup/deploy invariants, refuses or alarms on unsafe public-facing configuration, rate-limits only the defended perimeter, and redacts operational logs while preserving explicitly marked teaching demonstrations.5–10 engineer-days, basis = three direct components + deployment-policy adapter + CI mode flag.
Remediation Closure GateCMPSBL BLD-ENG-248 “Adversarial Input Generator” + STIER-S-CJ132 “Adversarial Simulation Engine” + BLD-ENG-075 “Self-Audit Loop”Moves a finding from remediated to internally verified only after adversarial regression and policy checks pass; it then emits an explicit “external retest still required” state rather than declaring the site secure.5–10 engineer-days, basis = two small adversarial components + self-audit + closure-state/test wiring.

Build this composite first: Vulnerability-Preserving Defensive Twin. It establishes the boundary that prevents every later defensive control from accidentally “fixing” the training product itself.

A composite inherits the weakest verification claim of its ingredients. Every composite above includes at least one Not claimed test-coverage axis; PHP bridge behavior is also Not claimed until the host validates it.

Step 5B — new single-component designs

New components designed for this product

These are host-specific designs produced after the full catalog screen. They are proposals, not implemented code in this evaluate-only run.

Design 1 — Lesson Integrity Contract

A policy object that declares, per module and level, whether exploitability is required, tolerated, or forbidden. Every defensive control consults it before blocking a request.

Built fromSTIER-S-IMM04 Autoimmune Prevention Governor (FalsePositiveRecord, BlockDecision, AutoimmunePreventionGovernor) + BLD-ENG-075 Self-Audit Loop (registerPolicy, runAudit)
Plus hostsecurity.php; vulnerabilities/*/source/*.php
New becauseNormal security tooling treats a successful exploit as failure; DVWA needs a machine-readable exception model where some exploitability is the expected product behavior.
UnlocksSafe CML hardening without accidentally turning DVWA into a non-training application.
Evidence pathPer-lesson policy receipt + regression report showing expected vulnerable and expected defended outcomes.
Effort3–6 engineer-days, basis = 19 lesson families × four-level policy table + adapters.
ConstraintsBoth catalog rows are direct with no ports. STIER-S-IMM04 Verified: C:ok I:ok B:load T:— S:scan (T = Not claimed). BLD-ENG-075 Verified: C:ok I:ok B:exec T:— S:scan (T = Not claimed). PHP bridge output is Not claimed until host validation.
ConfidenceHigh — the host’s four-level security contract is explicit in security.php.

Data path

module + level -> integrity contract -> block? observe? preserve?
                                      |
                                 audit receipt

Design 2 — Secure-Baseline Differential Comparator

Runs the same controlled input against the intentionally vulnerable lane and its impossible comparison, then records the behavioral delta. It fails if a known weakness leaks into impossible or if an expected teaching weakness disappears from the lesson lane.

Built fromSTIER-S-124 Shadow Run Environment (createShadowRun, addAssertion, completeRun) + BLD-ENG-248 Adversarial Input Generator (generateAdversarialInputs)
Plus hostvulnerabilities/*/source/low.php ... impossible.php; security.php
New becauseNeither the shadow runner nor fuzz generator knows DVWA’s paired pedagogical contract by itself.
UnlocksA regression signal for the teaching curriculum and for secure-baseline quality at the same time.
Evidence pathInput case -> two outcomes -> assertion delta -> retained run record.
Effort4–8 engineer-days, basis = 19 modules, case normalization, and PHP execution adapters.
ConstraintsSTIER-S-124 Verified: C:ok I:ok B:load T:— S:scan (T = Not claimed). BLD-ENG-248 Verified: C:ok I:ok B:— T:— S:scan (B and T = Not claimed). No ports; PHP emitter still requires host validation.
ConfidenceHigh on design; medium on implementation until PHP bridge and test harness are exercised.

Data path

case -> vulnerable level ----\
                              > compare -> regression verdict
case -> impossible level -----/

Design 3 — Remediation Closure Ledger

A stateful evidence record for each real vulnerability: detected, scoped, remediated, regression-tested, independently retested, and closed. A state transition carries evidence instead of being a checkbox.

Built fromSTIER-S-71 Tamper-Evident Chain (createAuditChain) + STIER-S-90 Forensic Replay Engine (AuditEvent, ReplaySession, ForensicReplayEngine)
Plus hosttests/test_url.py; CI workflows; remediation evidence produced by host team
New becauseA replay engine alone reconstructs events; a hash chain alone proves integrity. The host-specific state model turns them into a security-closure control.
UnlocksHonest customer language: “closed after independent retest,” not “we ran one tool once.”
Evidence pathTamper-evident finding timeline with test/retest receipt references and replayable state changes.
Effort3–6 engineer-days, basis = small direct components + closure schema + CI adapters.
ConstraintsSTIER-S-71 Verified: C:ok I:ok B:exec T:— S:scan (T = Not claimed). STIER-S-90 Verified: C:ok I:ok B:load T:— S:scan (T = Not claimed). No ports.
ConfidenceHigh — directly addresses the user’s one-pass-versus-closure question.

Data path

DETECTED -> REMEDIATED -> REGRESSION PASS -> EXTERNAL RETEST -> CLOSED
     \________________ tamper-evident evidence chain ______________/

Design 4 — Exposure Refusal Gate

Evaluates deployment facts before serving: public bind, security level, authentication-disable state, and declared lab override. It can refuse production-like exposure and attach rate limits to a deliberately defended perimeter.

Built fromBLD-ENG-075 Self-Audit Loop (registerPolicy, runAudit) + STIER-EXTRA-03 Rate Limiter (createRateLimiter)
Plus hostcompose.yml; config/config.inc.php.dist; runtime startup configuration
New becauseDVWA has warnings and safe defaults but no single runtime contract that turns those defaults into a refusal decision.
UnlocksA safer classroom/demo distribution and a reusable pattern for real vulnerable web applications.
Evidence pathStartup audit report stating which exposure invariant passed or failed and why.
Effort2–5 engineer-days, basis = two direct components + four deployment assertions.
ConstraintsBLD-ENG-075 Verified: C:ok I:ok B:exec T:— S:scan (T = Not claimed). STIER-EXTRA-03 Verified: C:ok I:ok B:load T:— S:scan (T = Not claimed). No ports.
ConfidenceHigh for Docker path; medium for every alternate install path documented by DVWA.

Data path

deployment facts -> policy audit -> safe? --yes--> serve
                                \--no---> refuse / explicit lab override

Design 5 — CI Secret Exfiltration Tripwire

Detects and redacts encoded or transformed secret material in normal CI output while honoring an explicit “teaching fixture” policy for DVWA’s intentionally vulnerable workflow.

Built fromBLD-PRM-068 Redact Secrets (scrubText, redactSecrets, redactHeaders, redactUrl) + STIER-S-IMM04 Autoimmune Prevention Governor
Plus host.github/workflows/vulnerable.yml; operational CI/logging paths
New becauseA generic redactor would either break the lesson or leave normal pipelines exposed; the policy-aware pair can distinguish the two modes.
UnlocksA demonstrable “unsafe lesson versus safe operations” CI boundary.
Evidence pathRedaction event plus policy decision showing whether the output was a permitted lab fixture or blocked operational leakage.
Effort2–5 engineer-days, basis = two direct components + CI mode signaling and test fixtures.
ConstraintsBLD-PRM-068 Verified: C:ok I:ok B:— T:— S:scan (B and T = Not claimed). STIER-S-IMM04 Verified: C:ok I:ok B:load T:— S:scan (T = Not claimed). No ports.
ConfidenceHigh that the host contains the need; medium on workflow integration until exercised.

Data path

CI output -> secret detector -> policy context
                         |
                teaching fixture?
                 /             \
              allow          redact + receipt

Build this one first: Lesson Integrity Contract. It turns “these vulnerabilities are intentional” from prose into an enforceable rule every later control can consult.

Scoreboard

The numbers, each with its basis

The important number for this experiment is zero: in evaluate-only mode, one pass fixed zero host lines. The useful output is the map of what CML can harden, what still needs direct remediation, and how many verification loops are required before a real site can be called closed.

MeasureValueBasis
Engineered catalog rows parsed1,162 / 1,162Parsed from CATALOG-PHASE-3-COMPONENTS.md; zero rows omitted from class screening.
Engineered catalog classes covered21 / 21Every class from primitives/sub-primitives through engines, subsystems, packages, products, cognitives and layer packs was represented in the screen.
Rows matching a host concern482Broad capability/API/keyword triage after host inventory; a match is not a recommendation.
Candidate rows read in full40Full What/API/Entry LOC/Mode/Verified/Constraints read after triage; includes all 21 classes.
Engineered components carried forward11Direct components with a scoped DVWA attachment after twin/overlap/constraint rejection.
Composite components5Mandatory Step 5A combinations, each using exact IDs and host paths.
New host-specific designs5Step 5B single-purpose designs.
Discovery rows screened6,479 / 6,479Whole DISCOVERY-VAULT-INDEX.md screened as second pool.
Cyber vertical dedicated pass301 / 301Every row whose index keywords include cyber-v1 was separately screened before the general Discovery pool.
Provisional Discovery shortlist7Index-only rows; source absent pre-purchase; none included in money totals.
DVWA vulnerability families19Each family has low/medium/high/impossible level sources.
Intentional low/medium/high level combinations5719 families × 3 deliberately vulnerable/challenge levels.
PHP syntax checks169 / 169 cleanphp -l over every PHP file; syntax only, explicitly not security proof.
Host lines changed in this run0EVALUATE ONLY licence state; only the two required report files are added.
(A) cost avoidedUS$0No evidence DVWA maintainers had already budgeted the proposed CML work.
(B) capability acquisitionUS$24k–48k4–8 engineer-weeks at US$150/h if the team chose to build the defensive twin, evidence and closure system.
(C) portfolio reuseUS$0No other owner repositories/products are evidenced by this repository; no portfolio value invented.
Integration costUS$18k–36k3–6 engineer-weeks for PHP bridge validation, wiring, security review and regression work.
Net, B-only counterfactual−US$12,499 to +US$29,501B minus integration minus US$499 one-time licence; A and C remain separate at zero.
One-pass “fixed” claimNoEvaluation did not modify or independently retest the application; closure requires subsequent remediation and independent retest loops.

Step 1

What this repository already has

Host inventory was completed before catalog matching. DVWA is not a normal vulnerable product: its vulnerability curriculum is intentional, its default security level is impossible, Docker binds to loopback, and it already contains secure comparison implementations, scans and isolation guidance. The actual gaps are regression, evidence, enforceable deployment policy and remediation closure.

Host unitPathExported surfaceLOCJob it does
Project intent & safety contractREADME.mdTraining purpose, intentional documented/undocumented vulnerabilities, isolation warning, GPL licence776Defines what must remain vulnerable and why Internet exposure is prohibited.
Security-level controllersecurity.phplow / medium / high / impossible selection; CSRF check89Selects intentional vulnerability level; impossible is the secure comparison lane.
Authentication entrylogin.phpLogin POST, CSRF check, MySQL lookup, session login137Shared/core login path; uses MD5 password hashing and string-built SQL.
Session / page / token coredvwa/includes/dvwaPage.inc.phpdvwa_start_session, dvwaSecurityLevel*, checkToken, generateSessionToken, rendering692Shared session flags, security cookie, CSRF token lifecycle and page output.
Database bootstrapdvwa/includes/DBMS/MySQL.phpschema creation and seed operations159Creates/reset lab database and seeded users/content.
Setup surfacesetup.phpdatabase reset/create flow with CSRF token171Re-initialises the lab; powerful state-reset path.
Configuration baselineconfig/config.inc.php.distDB/env config, default security level, auth-disable switch56Defaults to impossible security; supports DISABLE_AUTHENTICATION override.
Container exposurecompose.ymlDVWA web + MariaDB services; 127.0.0.1:4280:8039Already limits Docker web bind to loopback by default.
Container buildDockerfilephp:8-apache base; composer:latest copy; build/install25Builds runtime; uses mutable image tags.
PHP runtime overridesphp.iniallow_url_fopen=on; allow_url_include=on5Deliberately permissive runtime settings that support vulnerability lessons.
Vulnerability curriculumvulnerabilities/*/source/*.php19 module families × low/medium/high/impossible; 89 PHP source files4,128The product content: exploit examples and secure/impossible comparisons.
API lesson dependency surfacevulnerabilities/api/composer.json + composer.lockSwagger-PHP dependency graph, locked transitive packages454Third-party PHP dependency surface for API lesson.
URL smoke testtests/test_url.pyURL list liveness/status checks124Functional reachability smoke test; not a security-regression suite.
Security scan workflow.github/workflows/shiftleft-analysis.ymlShiftLeft Scan -> SARIF upload35Existing external static/code scanning signal.
CodeQL workflow.github/workflows/codeql-analysis.ymlCodeQL matrix: JavaScript + Python70Code scanning exists, but this workflow does not configure PHP.
Intentional insecure CI lesson.github/workflows/vulnerable.ymlsecret echo/base64 demonstration54Deliberately demonstrates secret exposure behavior; must not be silently “fixed.”

Repository totals observed before any report file was added: 250 files; 169 PHP files; 12,940 PHP lines by physical line count. The 4,128 LOC figure above is the 89 PHP files under the 19 vulnerabilities/*/source lesson trees.

Step 2

Five-axis screen of the candidate set

All 1,162 engineered rows were parsed after the host inventory. 482 rows matched at least one broad DVWA concern during triage. 40 were then read in full across What/API/Entry LOC/Mode/Verified/Constraints, including at least one row from every one of the 21 catalog classes. The table below keeps rejects visible instead of silently dropping them.

Candidate (ID)Direct fitCombinatorialValueCost / riskNoveltyCarried forward?
Shadow Run Environment ⚠twin of `BLD-ENG-050` (STIER-S-124)HighHighHighMediumHigh — defensive twin is not nativeYES — COMBINE
Autoimmune Prevention Governor (STIER-S-IMM04)HighHighHighLow–mediumHigh — crucial for intentional-vulnerability hostYES — COMBINE
Adversarial Input Generator (BLD-ENG-248)HighHighHighLowMediumYES — HARDEN
Schema Validator (BLD-ENG-256)HighHighHighLow–mediumLowYES — HARDEN
Forensic Replay Engine (STIER-S-90)HighHighHighMediumHighYES — COMBINE
Tamper-Evident Chain ⚠twin of `BLD-ENG-009` (STIER-S-71)HighHighHighLowMediumYES — COMBINE
Self-Audit Loop ⚠twin of `STIER-S-78` (BLD-ENG-075)HighHighHighLowMediumYES — HARDEN
Redact Secrets (BLD-PRM-068)HighMediumHighLowLowYES — HARDEN
Rate Limiter ⚠twin of `BLD-ENG-012` (STIER-EXTRA-03)MediumMediumMediumLow–mediumLowYES — HARDEN, defended lane only
Adversarial Simulation Engine (STIER-S-CJ132)HighHighHighMediumHighYES — COMBINE
Input Sanitization Gateway (STIER-S-122)MediumHighHighMediumLowYES — HARDEN, defended lane only
Defense Guardrail Kernel (BLD-ENG-294)MediumHighMediumHigh — 1,307 closure LOCMediumNO — defer; too broad for first pass
Provenance Chain Verifier (BLD-ENG-229)MediumMediumMediumLowLowNO — evidence overlap with hash chain
Pipeline Lineage Registry (BLD-ENG-249)MediumMediumMediumLowLowNO — pipeline lineage is secondary here
Evolution Sandbox Environment (STIER-S-CJ116)MediumMediumMediumLowLowNO — Shadow Run is narrower fit
Artifact Hardening Foundry ⚠twin of `STIER-S-FRG03` (BLD-ENG-193)MediumMediumMediumMediumLowNO — hardening pipeline too generic
Rate-Limit, Origin & Secret-Leak Defense Layer (VPACK-CYBER-PERIMETER-SUITE)HighHighHighHigh — layer/Ascension + PHP bridgeMediumNO — defer layer; direct parts first
SANDBOX (PRIM-ENG-07)MediumMediumMediumVery high — 1,277 entry LOC + persistence portLowNO — DVWA already relies on container/VM isolation
Attack Surface Engine (SENGINE-ATTACK-SURFACE-ENGINE)HighHighHighHigh — shared-entry + persistence portMediumNO — shared-entry row not costed
Threat Containment Engine (SENGINE-THREAT-CONTAINMENT-ENGINE)HighHighHighHigh — shared-entry + persistence portMediumNO — shared-entry row not costed
auto-sentinel (PROD-AUTO-SENTINEL)MediumMediumMediumHigh — Node peer + product overlapMediumNO — competes with host workflow
dep-guardian (PROD-DEP-GUARDIAN)LowLowLowHigh — Node peer + separate productLowNO — dependency product is off-scope
@cmpsbl/shield (PKG-SHIELD)LowLowLowMediumLowNO — LLM prompt defense, wrong threat surface
Shield (SUBSYS-10)LowLowLowMediumLowNO — LLM Shield subsystem, wrong threat surface
Safe Patch Rollout Layer (VPACK-SENTINEL-EVOLUTION)LowMediumMediumHigh — Ascension-wrapped layerMediumNO — safe patch rollout is not first-order gap
Audit-Grade Decision Ledger ⚠twin of `BLD-ENG-136` (STIER-S-CJ94)MediumLowMediumLowLowNO — redundant with tamper chain + replay
Audit-Grade Decision Ledger ⚠twin of `STIER-S-CJ94` (BLD-ENG-136)MediumLowMediumLowLowNO — twin/overlap with audit ledger
Rate-Limit, Origin & Secret-Leak Defense Layer (LAYER-CYBER-PERIMETER-SUITE)HighMediumHighHigh — AscensionLayer cannot attach by importMediumNO — layer class requires Ascension
Error Shell (BLD-BLP-017)LowLowLowHigh — React peerLowNO — UI blueprint does not address security gaps
Panel Boundary (BLD-CMP-058)LowLowLowHigh — React peerLowNO — UI component irrelevant
Rate Limit Shield (BLD-FZN-023)MediumLowMediumHigh — React/motion peersLowNO — UI rate-limit shield wrong attachment
OBSIDIAN (COG-OBSIDIAN)LowLowLowMediumLowNO — cognitive capability unnecessary
Resilience Shield (MENGINE-RESILIENCE-SHIELD)MediumMediumMediumHigh — persistence port + broad engineLowNO — over-scoped
AUDIT (PRIM-AGE-03)MediumMediumMediumVery high — 27-project compile + persistence/zustandLowNO — full AUDIT agent excessive
DEFENSE (PRIM-LAY-01)HighMediumHighVery high — layer + persistence + AscensionMediumNO — direct components cover scoped need
IDENTITY (PRIM-ORG-07)LowLowMediumHigh — persistence + Node peerLowNO — host auth is simpler and lesson-specific
AEGIS (ENGINE-AEGIS)LowLowLowHigh — React host peersLowNO — store engine not a PHP security fit
BULKHEAD (SUBP-06)MediumLowMediumLowLowNO — generic bulkhead adds little to local lab
Shadow Mesh (SUBSYS-04)MediumMediumMediumVery high — 14-project compile + persistence/zustandMediumNO — Shadow Run provides smaller fit
@cmpsbl/test-harness (PKG-TEST-HARNESS)MediumMediumMediumMedium — TS harness in PHP hostLowNO — targeted adversarial generator is narrower

Catalog class coverage

ClassRows parsedRepresented in full-read set
AscensionLayer45Yes
Block/Blueprint41Yes
Block/Component90Yes
Block/Engine314Yes
Block/Frozen59Yes
Block/Primitive90Yes
Cognitive5Yes
CrownJewel/S-Tier233Yes
CrownJewel/S-Tier-Unregistered13Yes
MetaEngine26Yes
Package13Yes
Primitive/Agent8Yes
Primitive/Engine8Yes
Primitive/Layer12Yes
Primitive/Organ12Yes
Product9Yes
StoreEngine55Yes
SubPrimitive8Yes
SubstrateEngine80Yes
Subsystem16Yes
VerticalLayerPack25Yes

Candidates screened at row-parse level: 1,162; broad concern matches: 482; full-read set: 40; carried forward engineered components: 11; full-read rejects/deferred: 29. Shared-entry rows in the full-read set: SENGINE-ATTACK-SURFACE-ENGINE, SENGINE-THREAT-CONTAINMENT-ENGINE, LAYER-CYBER-PERIMETER-SUITE, COG-OBSIDIAN, MENGINE-RESILIENCE-SHIELD, ENGINE-AEGIS. They were not costed from shared Entry/Closure columns and were rejected/deferred rather than guessed.

Step 3

Constraints this host imposes

The most important constraint is semantic, not technical: hardening the vulnerable curriculum globally would be a regression. The second is technical: the host is PHP, and the kit’s PHP polyglot output is not among the build-checked target emitters.

ConstraintSource of truthWhat it rules out
Host is PHP/MariaDB, not TypeScriptDockerfile; *.php; compose.ymlRequires licensed polyglot PHP bridge post-purchase. PHP emitter output is Not claimed until independently checked in this host.
Intentional vulnerabilities are product contentREADME.md:3–6; security.php:64–70Rules out global sanitization, global blocking, or “fix all low/medium/high” integration.
Internet exposure is explicitly unsafeREADME.md:9–15Rules out treating CML as permission to publish DVWA publicly; isolation remains mandatory.
Docker already binds web to loopbackcompose.ymlRules out claiming the host has no perimeter control; new work must enforce/attest rather than duplicate.
Default level is impossibleconfig/config.inc.php.dist:30–33Rules out claiming secure-baseline mode is absent; focus on regression and shared/core gaps.
Authentication may be disabled by environmentconfig/config.inc.php.dist:40–43Requires deployment-policy gating if used outside a controlled lab.
Evaluation-only licence stateAGENTS.md Step 0; no purchase/grant record suppliedRules out copying, generating, wiring or actuating CMPSBL implementation material in this run.
Layer classes require Ascension wrappingAGENTS.md rule 12Rules out direct-import integration of AscensionLayer, Primitive/Layer and VerticalLayerPack candidates.
Discovery source absent pre-purchaseDISCOVERY-VAULT-INDEX.md onlyRules out Discovery API/LOC/verification claims and excludes Discovery from savings totals.
Independent test coverage is not claimedRecommended catalog rowsRequires host-side security review and external retest before closure claims.

Recommended-component verification strings, verbatim and expanded

Governed runtime: none of the 11 carried-forward engineered components is marked governed-required; each catalog row is direct. Large governed/persistence-dependent primitives and engines were rejected or deferred. Layer-class rows remain non-importable by rule even when their row says direct.

Adapter ports: none on the carried-forward direct set. Separate post-purchase work remains: generate the PHP bridge using the licensed polyglot tool and validate it because PHP emitter behavior is Not claimed by this pre-purchase kit.

Step 4

Ranked recommendations

Ranked for this deliberately vulnerable PHP application, not by catalog prestige. The first five are combinations; the individual parts follow. None is described as a complete vulnerability remediation engine.

#ItemCatalog IDsHost pathsEffortValueConfidence
1Vulnerability-Preserving Defensive TwinSTIER-S-124 + STIER-S-IMM04 + STIER-S-122security.php; vulnerabilities/*/source/*.php8–15 dVery highHigh on host gap; medium on PHP bridge
2Security Regression MatrixBLD-ENG-248 + BLD-ENG-256 + BLD-ENG-075tests/; vulnerabilities/*/source/*.php6–12 dVery highHigh
3Remediation Closure GateBLD-ENG-248 + STIER-S-CJ132 + BLD-ENG-075tests/; CI workflows5–10 dVery highHigh concept; medium until DAST/retest connected
4Exploit-to-Evidence Replay CapsuleSTIER-S-71 + STIER-S-90dvwa/includes/dvwaPage.inc.php; lesson boundaries5–9 dHighHigh
5Safe-Lab Exposure LockBLD-ENG-075 + STIER-EXTRA-03 + BLD-PRM-068compose.yml; config/config.inc.php.dist; CI5–10 dHighHigh on Docker; medium on alternate installs
6Adversarial Input GeneratorBLD-ENG-248tests/ + lesson inputs1–3 dHighHigh
7Schema ValidatorBLD-ENG-256defended input contracts2–4 dHighMedium-high
8Forensic Replay EngineSTIER-S-90request/session evidence boundary2–4 dMedium-highMedium-high
9Tamper-Evident ChainSTIER-S-71security evidence store1–3 dMedium-highHigh
10Redact SecretsBLD-PRM-068operational logs / non-teaching CI1–3 dHighHigh on need; behavior Not claimed in catalog
11Rate LimiterSTIER-EXTRA-03defended perimeter only2–4 dMediumHigh if public defended surface exists
12Input Sanitization GatewaySTIER-S-122defended/impossible lane only2–4 dHigh if boundedMedium — globally applying it would be wrong
13Adversarial Simulation EngineSTIER-S-CJ132internal security regression/closure gate2–4 dMedium-highMedium-high

Findings, in fixed shape

COMBINE

STIER-S-124 — Shadow Run Environment ⚠twin of `BLD-ENG-050`

[HARDEN] CMPSBL STIER-S-124 "Shadow Run Environment ⚠twin of `BLD-ENG-050`"
  Why: Sandboxed execution environment for testing mutations, experiments, and risky operations before promoting to production. Provides full-fidelity simulation without any risk to live systems.
  Uses: `ShadowRun`, `ShadowAssertion`, `createShadowRun`, `startRun`, `addAssertion`, `addLog`, `completeRun`, `getRun`, `listRuns`
  Saves: ~6–12 engineer-hours, basis = 77 Entry LOC + isolated-run/assertion correctness concerns. This is equivalent component-build effort, not host integration effort.
  Verified: C:ok I:ok B:load T:— S:scan — T:— means Not claimed; any B:— means behavior is Not claimed.
  Mode: direct
  Ports to implement: none
COMBINE

STIER-S-IMM04 — Autoimmune Prevention Governor

[HARDEN] CMPSBL STIER-S-IMM04 "Autoimmune Prevention Governor"
  Why: Prevents false-positive immune responses that would attack legitimate system operations. Teaches the defense system to distinguish friend from foe — preventing the substrate from fighting itself.
  Uses: `FalsePositiveRecord`, `BlockDecision`, `AutoimmunePreventionGovernor`
  Saves: ~1–3 engineer-days, basis = 130 Entry LOC + false-positive/allow/block correctness concerns. This is equivalent component-build effort, not host integration effort.
  Verified: C:ok I:ok B:load T:— S:scan — T:— means Not claimed; any B:— means behavior is Not claimed.
  Mode: direct
  Ports to implement: none
HARDEN

BLD-ENG-248 — Adversarial Input Generator

[HARDEN] CMPSBL BLD-ENG-248 "Adversarial Input Generator"
  Why: Catalog-driven fuzzing inputs: injection, overflow, encoding, unicode edge cases.
  Uses: `ADVERSARIAL_CATALOG`, `generateAdversarialInputs`
  Saves: ~4–8 engineer-hours, basis = 33 Entry LOC + input-family/encoding correctness concerns. This is equivalent component-build effort, not host integration effort.
  Verified: C:ok I:ok B:— T:— S:scan — T:— means Not claimed; any B:— means behavior is Not claimed.
  Mode: direct
  Ports to implement: none
HARDEN

BLD-ENG-256 — Schema Validator

[HARDEN] CMPSBL BLD-ENG-256 "Schema Validator"
  Why: Generic per-executor schema validation with archetype classification (XSS, SQL, event-handler injection).
  Uses: `FieldSchema`, `ExecutorSchema`, `ValidationIssue`, `InputArchetype`, `ValidationReport`, `SchemaRegistry`, `validateInput`
  Saves: ~1–3 engineer-days, basis = 174 Entry LOC + schema/classification/injection correctness concerns. This is equivalent component-build effort, not host integration effort.
  Verified: C:ok I:ok B:— T:— S:scan — T:— means Not claimed; any B:— means behavior is Not claimed.
  Mode: direct
  Ports to implement: none
COMBINE

STIER-S-90 — Forensic Replay Engine

[HARDEN] CMPSBL STIER-S-90 "Forensic Replay Engine"
  Why: Complete system state replay from the audit trail for incident investigation. Reconstructs exactly what happened at any point in time — like a DVR for your entire infrastructure.
  Uses: `AuditEvent`, `ReplaySession`, `ReplayResult`, `ForensicReplayEngine`
  Saves: ~1–3 engineer-days, basis = 126 Entry LOC + event ordering/state replay correctness concerns. This is equivalent component-build effort, not host integration effort.
  Verified: C:ok I:ok B:load T:— S:scan — T:— means Not claimed; any B:— means behavior is Not claimed.
  Mode: direct
  Ports to implement: none
COMBINE

STIER-S-71 — Tamper-Evident Chain ⚠twin of `BLD-ENG-009`

[HARDEN] CMPSBL STIER-S-71 "Tamper-Evident Chain ⚠twin of `BLD-ENG-009`"
  Why: Hash-chained audit log with Merkle-tree batch verification. Every mutation is cryptographically linked to its predecessor — making tampering mathematically detectable. The foundation of trust in the substrate.
  Uses: `createAuditChain`
  Saves: ~4–8 engineer-hours, basis = 68 Entry LOC + hash-chain/Merkle correctness concerns. This is equivalent component-build effort, not host integration effort.
  Verified: C:ok I:ok B:exec T:— S:scan — T:— means Not claimed; any B:— means behavior is Not claimed.
  Mode: direct
  Ports to implement: none
HARDEN

BLD-ENG-075 — Self-Audit Loop ⚠twin of `STIER-S-78`

[HARDEN] CMPSBL BLD-ENG-075 "Self-Audit Loop ⚠twin of `STIER-S-78`"
  Why: Continuous self-audit loop with violation tracking.
  Uses: `AuditPolicy`, `AuditResult`, `AuditReport`, `registerPolicy`, `removePolicy`, `runAudit`, `getComplianceScore`
  Saves: ~4–8 engineer-hours, basis = 61 Entry LOC + policy-evaluation/compliance correctness concerns. This is equivalent component-build effort, not host integration effort.
  Verified: C:ok I:ok B:exec T:— S:scan — T:— means Not claimed; any B:— means behavior is Not claimed.
  Mode: direct
  Ports to implement: none
HARDEN

BLD-PRM-068 — Redact Secrets

[HARDEN] CMPSBL BLD-PRM-068 "Redact Secrets"
  Why: Deep-walks any value masking JWTs, API key prefixes, base64 blobs, UUIDs, sensitive headers, URL params, and error objects. Circular-ref + depth guarded. Drop into any logger.
  Uses: `scrubText`, `redactSecrets`, `redactHeaders`, `redactUrl`, `redactError`, `mightContainSecrets`
  Saves: ~2–4 engineer-days, basis = 182 Entry LOC + secret-shape/deep-walk/cycle/depth correctness concerns. This is equivalent component-build effort, not host integration effort.
  Verified: C:ok I:ok B:— T:— S:scan — T:— means Not claimed; any B:— means behavior is Not claimed.
  Mode: direct
  Ports to implement: none
HARDEN

STIER-EXTRA-03 — Rate Limiter ⚠twin of `BLD-ENG-012`

[HARDEN] CMPSBL STIER-EXTRA-03 "Rate Limiter ⚠twin of `BLD-ENG-012`"
  Why: Multi-strategy rate limiter: fixed window, sliding window, token bucket and leaky bucket, selectable per limiter. Per-key isolation, burst allowance, penalty escalation with a capped penalty level, and hit/reject analytics. Zero dependencies.
  Uses: `Strategy`, `RateLimitConfig`, `RateLimitResult`, `createRateLimiter`
  Saves: ~2–4 engineer-days, basis = 200 Entry LOC + multi-strategy/burst/penalty correctness concerns. This is equivalent component-build effort, not host integration effort.
  Verified: C:ok I:ok B:load T:— S:scan — T:— means Not claimed; any B:— means behavior is Not claimed.
  Mode: direct
  Ports to implement: none
COMBINE

STIER-S-CJ132 — Adversarial Simulation Engine

[HARDEN] CMPSBL STIER-S-CJ132 "Adversarial Simulation Engine"
  Why: Runs adversarial attack simulations against the substrate to identify vulnerabilities and harden defenses. Generates attack playbooks, measures defense effectiveness, and recommends improvements.
  Uses: `AttackScenario`, `SimulationResult`, `AdversarialSimulation`
  Saves: ~4–12 engineer-hours, basis = 57 Entry LOC + scenario/result correctness concerns. This is equivalent component-build effort, not host integration effort.
  Verified: C:ok I:ok B:load T:— S:scan — T:— means Not claimed; any B:— means behavior is Not claimed.
  Mode: direct
  Ports to implement: none
HARDEN

STIER-S-122 — Input Sanitization Gateway

[HARDEN] CMPSBL STIER-S-122 "Input Sanitization Gateway"
  Why: Multi-layer input sanitization against injection attacks, XSS, and prompt manipulation. Validates, escapes, and transforms all inputs before they reach any processing pipeline — the first line of defense.
  Uses: `SanitizationResult`, `SanitizeOptions`, `ALLOWLISTS`, `sanitize`, `isSafe`
  Saves: ~1–3 engineer-days, basis = 170 Entry LOC + allowlist/escape/transform correctness concerns. This is equivalent component-build effort, not host integration effort.
  Verified: C:ok I:ok B:load T:— S:scan — T:— means Not claimed; any B:— means behavior is Not claimed.
  Mode: direct
  Ports to implement: none

Gap map

GapEvidence in hostWhat addresses it
No security-regression contract across all four lesson levelstests/test_url.py checks reachability; security.php defines the four levels but no matrix asserts expected exploitability/resistance.Security Regression Matrix + Secure-Baseline Differential Comparator
No immutable exploit episode replayNo native host unit records a hash-linked request/session/security-level timeline for replay.Exploit-to-Evidence Replay Capsule
README safety warning is not a complete executable deployment policycompose.yml is safely loopback-bound, but alternate installs exist and DISABLE_AUTHENTICATION can be enabled.Safe-Lab Exposure Lock + Exposure Refusal Gate
One-pass remediation has no closure semanticsA passing code change or smoke test has no state requiring independent retest.Remediation Closure Gate + Remediation Closure Ledger
Intentional insecure CI behavior can be confused with accidental operational leakage.github/workflows/vulnerable.yml intentionally base64-prints secrets as a lesson.CI Secret Exfiltration Tripwire with explicit teaching policy
Shared/core security issues are outside lesson-level sanitizationlogin.php uses MD5; CSRF token is md5(uniqid()); session Secure flag is false; some deployment settings are intentionally permissive.Direct host remediation + regression/retest; CML can test/evidence but does not replace code fixes
Coverage cannot be certified complete from this evaluationREADME states undocumented vulnerabilities are intentional; no DAST or independent pen test was run.Multi-pass process; independent SAST/DAST/manual retest after remediation

Quick wins

Low effort, high confidence, nothing on a critical path.

  • Build the Lesson Integrity Contract before wiring any blocking control.
  • Add adversarial cases around the 19 impossible variants before changing code.
  • Add deployment assertions for loopback/default-impossible/auth-enabled and emit a refusal report.

Do not touch

Items that would duplicate, undermine or dilute systems already trusted here.

  • Do not globally sanitize low/medium/high lesson routes; that destroys DVWA’s product purpose.
  • Do not install PRIM-ENG-01 DREAM, generic memory, or cognitive systems: this PHP training app has no persistent-cognition gap.
  • Do not replace DVWA’s container/VM isolation with PRIM-ENG-07 SANDBOX; it is heavier, requires PORT-PERSISTENCE, and solves a job the host already has.
  • Do not treat @cmpsbl/shield / SUBSYS-10 Shield as web-app injection defense; they are LLM prompt-defense surfaces.
  • Do not start with large SubstrateEngines or MetaEngines requiring persistence; small direct parts cover the actual gaps with less integration risk.
  • Do not integrate AscensionLayer / Primitive-Layer / VerticalLayerPack rows by import; the kit explicitly requires Ascension wrapping.
  • Do not “fix” .github/workflows/vulnerable.yml without first deciding whether the teaching fixture is intentionally retained.
  • Do not claim a real site secure after the CML evaluation pass, after the integration pass, or after an internal test alone.

Step 6

Build versus buy

For this repository, the money answer is intentionally conservative. There is no evidence the maintainers planned the proposed CML work, and there is no evidence in this repo of another owner product to reuse it in, so (A) and (C) are zero. Only the counterfactual value of the new defensive-twin/closure capability is priced.

BucketEngineer-weeksUS$ (range)Basis and assumptions
(A) Cost avoided — work already planned0US$0No roadmap/budget evidence in the supplied repo showing this work was inevitable.
(B) Capability acquisition — would probably not have been built4–8US$24k–48kEquivalent engineering for the defensive twin, regression matrix, replay evidence and closure state if the team decided it wanted them. Based on small direct Entry LOC rows plus multiple correctness concerns and 19×4 host behavior matrix.
(C) Portfolio and future reuse — conditional0US$0No other owner repository/product can be established from this host alone; no portfolio value invented.
− Integration cost3–6US$18k–36kPHP bridge generation/validation, host wiring, test fixtures, security review, CI work, lesson-integrity policy and learning cost. PHP bridge verification is Not claimed until performed here.
= Net against US$499 one-time licence−2.1 to +4.9−US$12,499 to +US$29,501B minus integration minus licence. A and C remain separate at zero. This is not revenue.

Assumptions

One senior US application-security/full-stack engineer at US$150/hour, 40 hours/week. Estimate bands follow the kit’s Entry-LOC guidance but add host-specific PHP bridge, policy, regression and security-review work. The low side can be too optimistic if PHP bridge semantics need adaptation; the high side can be too pessimistic if the host adopts only the first two composites.

What the team would never have arrived at alone

The strongest counterfactual is not a sanitizer or rate limiter. It is the vulnerability-preserving defensive twin plus a closure ledger: a system that can intentionally keep a lesson breakable while simultaneously proving what a defended execution would have done, and that refuses to equate “patched” with “closed.”

Is this a good trade at the stated price?

Conditionally yes. US$499 is small relative to even a few engineer-hours, but the licence price is not the deciding cost. The deciding cost is integration and validation. For plain DVWA training, do not buy it just to “secure DVWA.” For a cyber-range/teaching product or a real vulnerable web application that needs repeatable remediation evidence, the first two composites can justify the experiment.

What would change this answer: a verified PHP bridge, a demonstrated DAST/penetration-test connector, or evidence that the team already planned a comparable defensive twin would raise confidence/value; conversely, if the host must stay a tiny disposable lab with no defended mode, value drops sharply.

Step 7

90-day roadmap, assuming it was bought

PhaseWhat shipsWhy hereGate to proceedEffortCumulative
0–30 daysLesson Integrity Contract; baseline 19×4 Security Regression Matrix; Exposure Refusal Gate; PHP bridge proof on noncritical test path.Establish what must remain vulnerable before any blocker can touch traffic.STOP if any low/medium/high lesson unintentionally becomes non-exploitable, or any impossible case regresses. PHP bridge must pass host tests before broader wiring.2–4 engineer-weeks2–4
30–60 daysVulnerability-Preserving Defensive Twin; Exploit-to-Evidence Replay Capsule; CI Secret Exfiltration Tripwire; direct PHP remediation of agreed shared/core issues.Only after the lesson contract exists can defense be safely layered around the app. Direct code fixes happen separately from CMPSBL integration.Every changed real vulnerability must have a regression case; teaching fixtures must remain deliberate; no secret-bearing evidence may persist unredacted.2–4 engineer-weeks4–8
60–90 daysRemediation Closure Gate/Ledger; independent SAST/DAST/manual penetration retest; residual fixes; repeat regression and retest until scoped findings close.Security closure is an observed outcome, not a code-change event.Do not claim “fixed” until an independent retest validates the defined scope. Any residual finding returns to remediation; there is no fixed maximum pass count.2–5 engineer-weeks + external test time6–13 + external

Dependencies

Valid CML purchase/grant, full delivery, PHP polyglot bridge generation, host PHP test environment, explicit lesson-policy owner, and an independent security testing method/vendor for closure.

Do not start here

Do not start by globally installing Input Sanitization Gateway, full DEFENSE, SANDBOX, or a Cyber Vertical layer. On DVWA that can produce a false success by deleting the lesson instead of improving the security process.

Where the new designs sit

Lesson Integrity Contract + Exposure Refusal Gate in days 0–30; Secure-Baseline Differential Comparator and CI Tripwire in days 30–60; Remediation Closure Ledger in days 60–90.

If you only do one thing

Build the Security Regression Matrix. It answers whether the host is still teaching what it should and whether the secure comparison actually holds after every change.

Capacity assumption: one senior security/full-stack engineer plus periodic maintainer review; independent retest capacity is external to the CML integration estimate.

Discovery Vault — provisional, kept out of every total

Machine-synthesised discoveries worth reading after purchase

All 6,479 Discovery rows were screened. Because DVWA is a cybersecurity training host, the cyber-v1 vertical received a separate full pass over all 301 rows before the general pool. Source does not ship pre-purchase, so these are not treated as engineered recommendations.

Discovery idCapability (index row)Host concern it may touchStatusWhat to read first post-purchase
vdisc-00e02d9bUnified BULWARK-RECON Fabric — Weaves BULWARK and RECON capabilities into a single operational fabric for coordinated patch management and vulnerability enumeration.Patch management + vulnerability enumeration for residual-finding loops.PROVISIONAL — index row only, source not read (pre-purchase)Read vault/vdisc-00e02d9b-unified-bulwark-recon-fabric.ts first; verify provenance header, actual API, side effects and host fit before any recommendation.
vdisc-03cc0ff6CIPHER-Enhanced vulnerability enumeration Engine — Augments vulnerability enumeration capabilities with CIPHER intelligence, while RECON ensures quality and consistency of outputs.Vulnerability enumeration breadth beyond the engineered test inputs.PROVISIONAL — index row only, source not read (pre-purchase)Read vault/vdisc-03cc0ff6-cipher-enhanced-vulnerability-enumeration-engine.ts first; verify provenance header, actual API, side effects and host fit before any recommendation.
vdisc-03036baeBULWARK-Led Multi-Primitive incident response Engine — BULWARK orchestrates VANGUARD, WRAITH, and TEMPEST into a coordinated incident response workflow with real-time adaptation.Incident-response orchestration if DVWA becomes a defended cyber-range.PROVISIONAL — index row only, source not read (pre-purchase)Read vault/vdisc-03036bae-bulwark-led-multi-primitive-incident-response-engine.ts first; verify provenance header, actual API, side effects and host fit before any recommendation.
vdisc-07c3a07bIRONCLAD-Led Multi-Primitive leak prevention Engine — IRONCLAD orchestrates OBSIDIAN, SPECTER, and CIPHER into a coordinated leak prevention workflow with real-time adaptation.Secret/leak prevention around CI and evidence capture.PROVISIONAL — index row only, source not read (pre-purchase)Read vault/vdisc-07c3a07b-ironclad-led-multi-primitive-leak-prevention-engine.ts first; verify provenance header, actual API, side effects and host fit before any recommendation.
vdisc-083a1403WATCHTOWER→VANGUARD→BULWARK Pipeline — WATCHTOWER feeds preprocessed signals to VANGUARD for analysis, then BULWARK applies the results — a fully automated containment strategies pipeline.Containment workflow after a detected attack in a defended lane.PROVISIONAL — index row only, source not read (pre-purchase)Read vault/vdisc-083a1403-watchtower-vanguard-bulwark-pipeline.ts first; verify provenance header, actual API, side effects and host fit before any recommendation.
vdisc-3a5194adVANGUARD-RECON Collaborative attack surface mapping Engine — VANGUARD and RECON collaborate with TRACER oversight to deliver automated attack surface mapping.Attack-surface mapping for alternate install/deploy paths.PROVISIONAL — index row only, source not read (pre-purchase)Read vault/vdisc-3a5194ad-vanguard-recon-collaborative-attack-surface-mapping-engine.ts first; verify provenance header, actual API, side effects and host fit before any recommendation.
vdisc-27c18a53VANGUARD→WRAITH→RECON Pipeline — VANGUARD feeds preprocessed signals to WRAITH for analysis, then RECON applies the results — a fully automated penetration testing pipeline.Post-remediation penetration-test workflow; useful only after source review.PROVISIONAL — index row only, source not read (pre-purchase)Read vault/vdisc-27c18a53-vanguard-wraith-recon-pipeline.ts first; verify provenance header, actual API, side effects and host fit before any recommendation.

No Discovery API surface, LOC, verification verdict or savings figure is stated. None of these rows is included in the Step 5 composites or Step 6 money totals until its source and provenance are read after purchase.

Step 8 — appended, never merged into the body

Self-correction addendum

Claim above / initial assumptionRe-check resultEstimate change
“DVWA has no deployment-safety controls.”Incorrect. compose.yml binds the web service to 127.0.0.1:4280 and config defaults to impossible. README also explicitly forbids Internet-facing deployment.Narrowed Safe-Lab Exposure Lock from “add isolation” to “enforce and attest existing safe defaults across alternate deployment paths.”
“DVWA has no security scanning.”Incorrect. ShiftLeft Scan already runs and uploads SARIF; CodeQL also runs, but its matrix configures JavaScript and Python rather than PHP.Removed any generic scanner recommendation; retained adversarial regression and closure evidence as the gap.
“Input Sanitization Gateway should be the first security fix.”Rejected. Applying it globally would destroy low/medium/high lesson behavior, which is intentional product content.Moved sanitization behind the Vulnerability-Preserving Defensive Twin and limited it to the defended/impossible lane.
“CMPSBL SANDBOX should replace host isolation.”Rejected. DVWA already relies on VM/container isolation and Docker loopback binding; PRIM-ENG-07 is much heavier and requires PORT-PERSISTENCE.PRIM-ENG-07 changed to SKIP; smaller Shadow Run remains for behavior comparison, not OS/container isolation.
“A successful CML pass can certify a vulnerable website fixed.”Rejected. This run is EVALUATE ONLY, changed zero host lines, ran no DAST or penetration retest, and the kit’s own T axis is Not claimed for every recommended component.The report now makes multi-pass closure a first-class result: evaluate -> remediate/integrate -> independent retest -> repeat until scoped findings close.
“The impossible level proves the whole application secure.”Not established. The 19 impossible lesson variants are intended secure comparisons, but shared/core code still includes MD5 password hashing, string-built login SQL, md5(uniqid()) CSRF token generation, Secure=false session cookies, and intentionally permissive php.ini settings; undocumented vulnerabilities are explicitly part of DVWA.No blanket secure-baseline claim. Core/shared code is a separate remediation track and needs independent validation.
“PHP integration can inherit the catalog’s TypeScript verification.”Rejected. The full delivery supports polyglot bridge generation, but the kit states only TypeScript, Python and JavaScript emitters are build-checked; PHP output is Not claimed until host verification.Integration estimate increased to include PHP bridge review, behavior tests and security review.
Initial repository inventorySecond pass reconfirmed 250 total files, 169 PHP files, 19 vulnerability families, all four standard levels present in every family, and PHP syntax lint 169/169 clean.No inventory-count change; syntax cleanliness remains explicitly non-security evidence.
Kit licence wordingAuthoritative AGENTS.md and LICENSING.md say one US$499 one-time perpetual licence. The shipped HTML template and portions of AGENT-HANDOFF-CATALOG.md still contain retired free/annual-door language.Treated that wording as a kit documentation defect and kept the required purchase link while correcting the report to the authoritative current licence.
Runner execution statusConfirmed no call to run-agent-kit.mjs was made. Host inspection, catalog parsing, Discovery screening, scoring and report generation were performed manually by the evaluating agent.No estimate change; this directly satisfies the run condition.

Core learning result: Step 8 improves the evaluation, but it is not a substitute for a post-remediation security retest. The kit’s second inventory pass can catch evaluation mistakes and host overlap; it cannot prove that an implemented web application is free of vulnerabilities. For production security, remediation and independent verification must repeat until the agreed scope has no open findings or accepted risks.

Claim ceiling

What is and is not verified

Extracted from systems the author has run in production since August 2025. Operationally exercised, not independently security-audited.

In this pre-purchase evaluation, verification axes come verbatim from AGENT-HANDOFF-CATALOG.md. Every carried-forward component has test coverage: Not claimed in its compact verification string, and none has an independent third-party security review. S:scan is the library author’s static scan, not an independent audit. The host-side PHP lint result proves syntax only. No DVWA DAST, exploit retest or penetration test was run here.

Verification axes cited: C = compile/project check; I = integration closure check; B = behavior/load/execute evidence; T = test coverage, with T:— expanded as Not claimed; S = security scan/tests as catalogued. PHP polyglot bridge output is also Not claimed until validated in this host.

The Collective Master Library — Licensed Edition v3.1.0

1,162 engineered components · 2,135 delivered source files · 446,551 delivered source lines. CMPSBL Perpetual Edition License 1.0: US$499 USD paid once, perpetual, per company; no recurring fee and no expiry. Offline delivery, no account, no telemetry. This report is evaluation, not a security warranty.

Buy at cmpsbl.com/canon