Cursor agent — initial scan

Cursor agent initial findings

The application before any remediation. Provenance: the agent wrote this application during this run.

Model disclosure: the application was written by gpt-5.4-mini from Cursor Models, pinned for this run and recorded in the run's evidence. The fix was made by the same agent, but through reachctl remediate, which selects the agent and does not pin its model — so the fixing model is whichever that agent's CLI resolved at run time, and is not asserted here.

Scanner provenance

REACHABLE wheel/build and scan timestamps, read from the scanner database rows that produced the page. Actionable counts are repo.db SIGNAL rows under the product ACTIONABLE_SQL filter.

ScanREACHABLE versionTimestamp (UTC)CommitStatusActionable
Baseline1.0.0b1992026-09-12 15:12:51156aff7fsuperseded21
Baseline1.0.0b1992026-09-12 15:16:19156aff7fcomplete22
Baseline1.0.0b1992026-09-12 15:39:270e5b4506complete17

Run estimate

Token estimates are recorded before the run starts. The remediation estimate is recalculated after REACHABLE has the scan database and knows how many findings are in scope.

Planned runtime21-110 minutes
Planned model tokens53000-475000 total
Planned input tokens28000-280000
Planned output tokens25000-195000
Generation budget1800s
Remediation scope21

The application itself was written on the runner and exists only as the published copy: browse the code before remediation, read the generation prompt, open the file listing; fixed code after remediation; side-by-side before/after diff. The source of each finding is linked in the table below.

21
Remediation scope (repo.db)
8
Noise (repo.db)

Remediation scope — 21 finding(s)

repo.db actionable on the baseline scan. Table lists 21 ledger/validation row(s) as evidence.

#SeverityTypeFinding File
1CRITICALCWEUser-controlled path joined into filesystem path - path traversal riskportal/src/server.ts
2CRITICALCWEFlask route sends a non-literal file path — path traversal riskdocs-worker/app.py
3HIGHCWESQL query constructed with template interpolation before query/prepare — CWE-89. Use parameterized queries instead.portal/src/server.ts
4HIGHCWESQL query constructed with template interpolation before query/prepare — CWE-89. Use parameterized queries instead.portal/src/server.ts
5HIGHCVEGHSA-rmj7-2vxq-3g9frisk-api/src/main/java/com/treasury/risk/RiskApi.java
6HIGHCVEGHSA-j3rv-43j4-c7qmrisk-api/src/main/java/com/treasury/risk/RiskApi.java
7HIGHCVEGHSA-rmj7-2vxq-3g9frisk-api/src/main/java/com/treasury/risk/RiskApi.java
8HIGHCVEGHSA-j3rv-43j4-c7qmrisk-api/src/main/java/com/treasury/risk/RiskApi.java
9MEDIUMCWERunning flask app with host 0.0.0.0 could expose the server publicly.docs-worker/app.py
10MEDIUMCVEGHSA-5gvw-p9qm-jgwhrisk-api/src/main/java/com/treasury/risk/RiskApi.java
11MEDIUMCVEGHSA-hgj6-7826-r7m5risk-api/src/main/java/com/treasury/risk/RiskApi.java
12MEDIUMCVEGHSA-5gvw-p9qm-jgwhrisk-api/src/main/java/com/treasury/risk/RiskApi.java
13MEDIUMCVEGHSA-5jmj-h7xm-6q6vrisk-api/src/main/java/com/treasury/risk/RiskApi.java
14MEDIUMCVEGHSA-5jmj-h7xm-6q6vrisk-api/src/main/java/com/treasury/risk/RiskApi.java
15MEDIUMCVEGHSA-3pjw-73gf-8qr5risk-api/src/main/java/com/treasury/risk/RiskApi.java
16MEDIUMCVEGHSA-hgj6-7826-r7m5risk-api/src/main/java/com/treasury/risk/RiskApi.java
17MEDIUMCVEGHSA-mhm7-754m-9p8wrisk-api/src/main/java/com/treasury/risk/RiskApi.java
18MEDIUMCVEGHSA-3pjw-73gf-8qr5risk-api/src/main/java/com/treasury/risk/RiskApi.java
19MEDIUMCVEGHSA-mhm7-754m-9p8wrisk-api/src/main/java/com/treasury/risk/RiskApi.java
20LOWCONFIGFound an HTTP server without TLS. Use 'http.ListenAndServeTLS' instead. See https://golang.org/pkg/net/http/#ListenAndServeTLS for more information.payments-api/main.go
21LOWCVEGHSA-68rp-wp8r-4726docs-worker/app.py

Noise — 8 finding(s)

These findings have explicit non-production or unreachable evidence, so they are excluded from the remediation scope. They are listed, not hidden, and each row says which of the two exclusions applies. Nothing has been attempted yet on this page — what became of them is on the result page.

Why it is excludedSeverityTypeFindingFile
1not reachableHIGHCWEDatabase credential detected. Use IAM database authentication where available. Store credentials in a secrets manager with automatic rotation. Use connection poolers with credential injection (PgBouncagent-remediation/workspace-remediation/20260912-151617/iteration-01/proof-state/scanner-v0/payments-api/main.go
2not reachableLOWSECRETHardcoded variable `TESTING` detected. Use environment variables or config files insteadagent-remediation/workspace-remediation/20260912-151617/iteration-01/proof-state/scanner-v0/docs-worker/test_app.py
3not reachableMEDIUMCWEInternal error details written to HTTP response — exposes server internals (table names, paths, stack traces) to clients. Return a generic error message and log the detail server-side.agent-remediation/workspace-remediation/20260912-151617/iteration-01/proof-state/scanner-v0/payments-api/main.go
4not reachableMEDIUMCWEInternal error details written to HTTP response — exposes server internals (table names, paths, stack traces) to clients. Return a generic error message and log the detail server-side.agent-remediation/workspace-remediation/20260912-151617/iteration-01/proof-state/scanner-v0/payments-api/main.go
5not reachableMEDIUMCWEInternal error details written to HTTP response — exposes server internals (table names, paths, stack traces) to clients. Return a generic error message and log the detail server-side.agent-remediation/workspace-remediation/20260912-151617/iteration-01/proof-state/scanner-v0/payments-api/main.go
6not reachableMEDIUMCWEInternal error details written to HTTP response — exposes server internals (table names, paths, stack traces) to clients. Return a generic error message and log the detail server-side.agent-remediation/workspace-remediation/20260912-151617/iteration-01/proof-state/scanner-v0/payments-api/main.go
7not reachableMEDIUMCWEInternal error details written to HTTP response — exposes server internals (table names, paths, stack traces) to clients. Return a generic error message and log the detail server-side.agent-remediation/workspace-remediation/20260912-151617/iteration-01/proof-state/scanner-v0/payments-api/main.go
8not reachableMEDIUMCWEInternal error details written to HTTP response — exposes server internals (table names, paths, stack traces) to clients. Return a generic error message and log the detail server-side.agent-remediation/workspace-remediation/20260912-151617/iteration-01/proof-state/scanner-v0/payments-api/main.go

What the agent fixed — pass by pass

Each pass hands the still-open findings back to the agent. Started with minus Fixed equals Left on every row, and the last row's Left is what the final scan found.

PassStarted withFixedLeftTimeHow it ended
121022475.1sran to completion
222517530.9skilled at the budget
Total215171006.0s1 of 2 killed

Full detail: what REACHABLE fixed, finding by finding →