High / Finding status
Historically evidencedLending counter-review supports the historical High rating.
DeFi Audit / 2026-10-08 / 2026-10-09
The 8–9 October 2026 audit archive supports a High lending finding and a Medium bridge assessment. This review explains the evidence, counterchecks and rules for remediation verification.
Present state and any fixes were not checked. Code examples are defensive models, not STRATO source code.
Counter-review retains the lending rating after corrected custody attribution. Overall bridge severity and impact must be read separately.
Lending counter-review supports the historical High rating.
Critical was not established in the reviewed archive.
No entry is documented for this filter.
Collateral, state transitions and accounting are reviewed in context. The article evaluates historical report evidence.
Cross-system transitions need clearly defined trust and finality assumptions. Local models and actual observations remain separate.
Data quality and freshness are part of security assumptions. A bounded counterreview is not a guarantee for every possible state.
Explanatory diagram, not live telemetry or an audit score. The article documents the assessment and its limits.
The audit asks whether STRATO's financial components keep claims and assets consistent, and which loss paths the reviewed state actually permits. It concerns the STRATO blockchain on upquark, not the hosting provider.
The 8–9 October 2026 archive covers lending, CDP, SaveUSDST, classic and yield vaults, pools, oracles, bridges and MetalForge/TokenFactory. This assessment brings those reports together. Official project sources provide context; data collected in the audit supports deployment-state claims.
Overview of the components assessed in this article. Not a complete call graph or a current deployment inventory.
Before a source finding can be assessed economically, executable logic, registry routing and custody must be identified. Different components may hold these roles. Lending counter-review corrected the initially assumed custody attribution. The assessment therefore had to use the actual asset holder, not just the reviewed logic contract.
The following model compares four fields in two invented manifests. It reports a changed routing revision. That calls for renewed attribution, not an automatic security finding. Matching values would be only as reliable as their supporting evidence.
expected = {"network": "demo", "implementation": "rev-A", "routing": "map-A", "custody": "pool-A"}
observed = {**expected, "routing": "map-B"}
required = ("network", "implementation", "routing", "custody")
def compare(left, right):
missing = [key for key in required if key not in left or key not in right]
changed = [key for key in required if key in left and key in right and left[key] != right[key]]
return {"matches": not missing and not changed, "missing": missing, "changed": changed}
result = compare(expected, observed)
assert result["changed"] == ["routing"]
print(result)
Line numbers refer to this excerpt. Choose a note to highlight its range.
The reports use source code, time-anchored state queries, index reconciliation, local calculations and simulations. Source explains a rule; state data records configuration and balances at the time of review. Local simulation tests behavior under model assumptions.
Documented writes were rejected before contract execution. They show no successful state change. Non-persistent calls are not executed transactions either. The model below therefore separates integrity, method description and a write claim. A matching hash checks bytes, not the truth of an observation.
from hashlib import sha256
payload = b"invented local state observation"
record = {"digest": sha256(payload).hexdigest(), "anchor": "snapshot-A",
"method": "local-model", "persistent": False}
allowed = {"source-review", "state-read", "local-model", "executed-write"}
def inspect(data, evidence):
intact = sha256(data).hexdigest() == evidence["digest"]
described = bool(evidence["anchor"]) and evidence["method"] in allowed
write_claim = evidence["method"] == "executed-write" and evidence["persistent"] is True
return {"intact": intact, "described": described, "write_claim": write_claim}
assert inspect(payload, record)["write_claim"] is False
assert inspect(payload + b"changed", record)["intact"] is False
print(inspect(payload, record))
Line numbers refer to this excerpt. Choose a note to highlight its range.
Historical lending counter-review retains the High rating. It connects the known finding to corrected custody attribution and the economic state at that time. Critical was not established.
Three claims must remain separate: a logic error, its reachability in the specific deployment and the economic prerequisites for loss. Evidence for one does not replace the others. Rejected writes in particular do not demonstrate successful fund removal.
Remediation verification needs unique claims, correctly bound collateral and an independently reconstructed balance sheet. A present rating requires fresh state evidence.
The native bridge was rated Medium overall: High impact with Low likelihood. Local model testing supports a conditional loss effect, but establishes neither the necessary attacker control nor production execution. High impact is an assessment dimension here, not a High severity rating.
Defensive review separates observation, confirmation and completion into distinct states. The model permits only listed transitions and rejects completion without prior confirmation. It does not establish whether confirmation is trustworthy: consensus, operational state and actual finality are outside the example.
def advance(state, event, verified=False):
if state == "new" and event == "observe":
return "observed"
if state == "observed" and event == "confirm" and verified is True:
return "confirmed"
if state == "confirmed" and event == "complete":
return "completed"
raise ValueError("transition rejected")
assert advance("observed", "confirm", verified=True) == "confirmed"
try:
advance("observed", "complete")
except ValueError:
print("unconfirmed completion rejected")
else:
raise AssertionError("invalid transition accepted")
Line numbers refer to this excerpt. Choose a note to highlight its range.
SaveUSDST review did not establish a publicly triggerable severe deposit loss in the examined state. The report separately addresses a narrower question about expected-reward availability. That concerns a different entitlement from deposited principal.
Vault review did not observe the shared-resource topology required by an examined amplification hypothesis. A necessary prerequisite was therefore absent. Custody concentration may still matter, but does not prove that loss path.
The arithmetic model adds cash and deployed assets in the same integer unit, then compares them with liabilities. It checks a total. Validity of claims, value of strategy assets and timely asset availability require separate checks.
def reconcile(cash, deployed, liabilities):
values = [cash, *deployed, liabilities]
if any(type(value) is not int or value < 0 for value in values):
raise ValueError("non-negative integer units required")
assets = cash + sum(deployed)
return {"assets": assets, "liabilities": liabilities,
"surplus": assets - liabilities, "covered": assets >= liabilities}
assert reconcile(60, [25, 15], 100)["surplus"] == 0
assert reconcile(60, [25, 15], 101)["covered"] is False
print(reconcile(60, [25, 15], 100))
Line numbers refer to this excerpt. Choose a note to highlight its range.
The oracle report distinguishes stale entries from feeds economically mapped at the time of review. The stale entries did not establish a severe loss finding in the reviewed snapshot. An old timestamp alone does not tell whether an active financial component consumes that price.
The model accepts only positive prices with known, non-future and sufficiently recent timestamps. Missing information causes rejection. It checks freshness, not price accuracy, origin or actual application use.
def valid_price(price, updated, now, max_age):
values = (price, updated, now, max_age)
if any(type(value) is not int for value in values):
return False
if price <= 0 or updated < 0 or now < 0 or max_age < 0:
return False
age = now - updated
return 0 <= age <= max_age
assert valid_price(100, 990, 1000, 30)
assert not valid_price(100, 900, 1000, 30)
assert not valid_price(100, 1001, 1000, 30)
assert not valid_price(100, None, 1000, 30)
print("fresh accepted; stale, future and missing rejected")
Line numbers refer to this excerpt. Choose a note to highlight its range.
CDP and MetalForge/TokenFactory reports did not establish a severe publicly triggerable asset loss along their reviewed paths. Pool counter-review limited the economic significance of the examined edge behavior. These results did not establish Critical either.
Counterchecks are part of the audit: without required permissions, economic use or topology, the specific hypothesis remains unconfirmed. This does not settle unreviewed paths or later changes. Results apply to documented scope, not as whole-system approval.
Remediation verification should start with evidenced attribution: rebind the current implementation, routing and asset holder. Then independently reconstruct claims against balances. Bridge transitions need documented confirmation prerequisites; freshness must be checked where price affects an economic decision.
The examples explain these rules but do not replace tests of the actual implementation. A production regression test must detect a broken invariant and cover the relevant configuration. This assessment did not check whether STRATO has made such changes.
The lending finding remains High in the historical archive. The bridge remains Medium overall; Critical was not established. Corrected custody attribution was particularly important: without it, economic assessment would have relied on the wrong component.
The next step is to bind the historical finding to the current deployment and test any remediation against the same security rules.
The links provide project context. The judgment rests on the evidence described in the audit. Review models and actual tool excerpts are labelled separately.
STRATO Platform — öffentliches Projekt / public project ↗BlockApps — STRATO Mercata developer documentation ↗The lending finding remains High in the historical archive. The bridge remains Medium overall; Critical was not established. Corrected custody attribution was particularly important: without it, economic assessment would have relied on the wrong component. The next step is to bind the historical finding to the current deployment and test any remediation against the same security rules.
Start a conversation