Defect
Protected develop currently returns IOException.getMessage() directly from POST /api/cdc/stop when CDC shutdown fails. Exception messages at this boundary can contain filesystem paths, broker/host details, connector identifiers, or other operational internals and therefore should not be reflected to an unauthenticated/untrusted API client.
RCA
- Immediate cause:
CdcController.stopCdc() concatenates the raw exception message into the HTTP 500 body.
- Root cause: this older endpoint predates the repository's newer bounded/problem-detail error-handling conventions and has no regression asserting diagnostic confidentiality.
- Impact: internal operational details can cross the public HTTP trust boundary during shutdown failures.
Bounded acceptance
Use strict test-first repair from the exact current protected develop head. RED must inject an IOException containing unmistakably sensitive diagnostic text and prove the HTTP response does not contain that text. GREEN should return a stable generic 500 message while preserving the status and stop invocation. Do not log or otherwise re-expose the injected secret-shaped diagnostic. Run the focused controller test and the full hosted reactor, and keep inherited/shared scanner or coverage governance blockers separate from this source defect.
Defect
Protected
developcurrently returnsIOException.getMessage()directly fromPOST /api/cdc/stopwhen CDC shutdown fails. Exception messages at this boundary can contain filesystem paths, broker/host details, connector identifiers, or other operational internals and therefore should not be reflected to an unauthenticated/untrusted API client.RCA
CdcController.stopCdc()concatenates the raw exception message into the HTTP 500 body.Bounded acceptance
Use strict test-first repair from the exact current protected
develophead. RED must inject anIOExceptioncontaining unmistakably sensitive diagnostic text and prove the HTTP response does not contain that text. GREEN should return a stable generic 500 message while preserving the status and stop invocation. Do not log or otherwise re-expose the injected secret-shaped diagnostic. Run the focused controller test and the full hosted reactor, and keep inherited/shared scanner or coverage governance blockers separate from this source defect.