Why TraceMint

Your security stack.
On your terms.

Start with the reports you already have. Choose where analysis runs. Follow a finding to its source—and a decision to its record.

Explore a real finding
Existing tools. Model choice. Inspectable evidence.Find your starting point
Evidence, not a feature list

A finding you can follow.
All the way upstream.

One real contribution to open source. Explore the code, the trust boundary and the fix—each tied to a public record.

TwentyPublic-code walkthrough
CVE-2026-27023
01 / Before the fix

The first check
was not the last hop.

The client resolved the requested hostname and checked its IP. It then selected one agent from the original protocol and handed the request to Axios.

The important question is what happens after this adapter handoff.

Initial destination checkL46–48
    const { address: resolvedIp, family } = await dnsLookup(url.hostname);    if (isPrivateIp(resolvedIp)) {
get-secure-axios-adapter.util.ts
Handoff to the HTTP adapterL87–87
    return httpAdapter(config);
get-secure-axios-adapter.util.ts
02 / Request lifecycle

A redirect changes
the trust decision.

Axios followed redirects inside the adapter. The advisory identifies a gap between checking the starting URL and checking the destination actually reached.

A protocol change also matters: only the original protocol’s agent had been configured.

Simplified from the public source and advisory
A
Initial URLHostname resolved · address checked
Checked
Request enters the HTTP adapter
B
Redirect responseAdapter follows the next location
Destination or protocol changes
C
New connectionInitial validation does not cover this destination

The security boundary is the connection—not just the input URL.

03 / Published result

Follow the claim
to its record.

The upstream advisory describes a server-side request forgery bypass for an authenticated user who controls an outbound URL. What could be reached depended on the deployment.

Read the upstream advisory
Upstream security advisory

SSRF through redirect handling

Reference
CVE-2026-27023
Classification
SSRF · CWE-918
Severity
Moderate · 5.0 CVSS 3.1
Affected / patched
<= 1.17 / 1.18
Published
Finder creditTraceMint @tracemintai
04 / Upstream fix

Move the check
to the connection.

Twenty’s fix installs HTTP and HTTPS agents in safe mode. Each new connection checks the host and attaches validation to DNS resolution.

The lookup handler closes the socket if its resolved address fails the private-IP check.

Inspect the complete fix
Both protocols covered in safe modeL34–35
          httpAgent: createSsrfSafeAgent('http'),          httpsAgent: createSsrfSafeAgent('https'),
secure-http-client.service.ts
Inside HTTP agent connection creationL66–68
    validateHost(options.host ?? undefined);    return attachLookupValidation(super.createConnection(options, callback));
create-ssrf-safe-agent.util.ts
Upstream patch · 610c0ebc · included in v1.18.0

Public evidence establishes TraceMint’s finder credit. This walkthrough is not a recording of an internal scan; the fix is Twenty’s upstream work.

Read the research note

Selected source excerpts: twentyhq/twenty, GNU AGPL v3. Immutable revisions and original line ranges are linked beside each excerpt.

Built around your constraints

Where does TraceMint fit?

Start with the question your team needs to answer.

Give the original finding a deeper review.

Bring a supported report into a defined project scope. Review the finding against available source context and keep the reasoning with the decision.

Report → reviewIllustrative workflow
  1. Supported reportOriginal scanner finding
  2. Source contextRelevant code within scope
  3. AI reviewReasoning and evidence
  4. Recorded decisionAssessment retained for review

The imported report remains the starting evidence.

Check supported report formats

Choose where the product and inference run.

Decide who operates the application, who serves the model, and where analysis context travels. Each is a separate deployment choice.

Application / inferenceConfiguration guide
Four deployment routes and their model data boundaries
RouteProduct locationModel context
SaaSTraceMintConfigured hosted endpoint
Fully localYour environmentLocal model · stays inside
TraceMint LLMYour environmentContext → TraceMint endpoint
BYOKYour environmentContext → your model provider

Hosted inference needs no customer GPU. Local inference needs suitable hardware. Review other integrations separately.

Compare deployment boundaries

Move from a source reference to the surrounding system.

Inspect component scopes and source references. Review the evidence behind an inferred relationship as you explore the relevant part of the application.

Scope / billingIllustrative component view
Invoice APIComponent in scope
Inferred
Invoice storeRelated component
Source reference · Invoice APIbilling/routes.ts:42

Inspect the source behind the relationship. Review the AI interpretation.

Explore architecture and context

Keep the reason, the reviewer, and the time limit.

Record a rationale and category. Keep the requester and reviewer distinct, set an expiry, and retain the audit trail behind a risk decision.

Risk decision / review recordIllustrative record
Category · time-bound acceptance

Restricted endpoint. Mitigation tracked with the application owner.

Requester
Application owner
Reviewer
Risk reviewer
Expiry
30 days from approval Example
Audit trailRequest Review Decision

Accepting risk does not resolve or disprove the finding.

See risk and remediation controls
Make the comparison useful

Bring your constraints.
Leave with a clear fit.

Bring a representative repository or supported SAST export, your model requirements and the decisions your team needs to make. We’ll walk through the relevant workflow and agree what a successful evaluation should demonstrate.