VegaSec / Solidity scan report

Contract.sol

VSS-20260529-ZY120KX9 · generated May 29, 2026, 3:34 AM

Partial coverage · watch1 findingPartial analyzer coveragePasted source1 warningsemgrep 1.163.0

Verdict is derived from severity counts via the same deterministic formula every VegaSec report uses. Contract.sol was scanned from pasted source. This is static-analysis triage, not a certification or formal audit attestation.

Partial coverage, not a clean-surface verdict. At least one required analyzer (slither, semgrep) did not complete this scan, so the score is capped at 50/100 and the verdict above can never be Strong/Clear surface. Cause: slither exit 1: .

Signature

unsigned

This report has no signature. It was persisted before report signing shipped, so nobody can prove authorship for it, including us. The bytes can still be hashed to check that they did not change.

PDF artifact

Queued artifact pipeline · not blocking on the scan

Not requested

No PDF artifact has been requested for this report yet. The HTML report and the Markdown export already carry the full disclaimer and limitations inline. PDF synthesis is a queued artifact, not part of the scan path.

Status endpoint

GET /report/solidity/VSS-20260529-ZY120KX9/export.pdf

Solidity evidence report

1 audit finding

medium: 0

Severity distribution

Executive summary

  • 1 finding surfaced (0 critical, 0 high, 1 medium, 0 low, 0 informational).
  • No critical or high severity findings; medium and low signals still require operator review before public promotion.
  • Automated static analysis only. A human operator review has not been attached to this report.

Warnings (1)

  • · slither exit 1:
semgrep 1.163.0
  • mediumUnchecked callConfidence: unknownExploitability: unknownDetector: semgrep

    Low-level

    Affected location
    Contract.sol:4
    Detector / source
    semgrep · semgrep:vegasec-low-level-call-untrusted

    Evidence

    Low-level .call to an externally-controlled target. Combined with reentrancy or unchecked return values, this is a common fund-draining pattern.

    Exploitability notes

    Analyzer did not report a confidence level; treat as unverified until reviewed.

    Remediation

    Check the boolean return of low-level call/delegatecall/send and revert on failure with a descriptive reason string.

    Limitations

    • Analyzer did not report confidence; fail closed and treat the finding as unverified.
    • Static analysis did not prove exploitability; do not present this as an exploit claim.
    • Analyzer output did not include a source excerpt for this finding.

Limitations

  • VegaSec runs static analysis only. Findings can include false positives, miss patterns the configured detectors do not cover, and never replace manual auditor judgement.
  • Scan ran slither and semgrep against a single sandboxed copy of the source. Multi-file dependency analysis beyond what slither resolves automatically is out of scope.
  • Some detectors emitted warnings (see `warnings`); their output was still ingested but should be read with extra care.
  • This report is not a certification, audit attestation, or financial advice.

Exploit reasoning

Reference-grade reasoning tied to evidence

  • 77a805d0bc3b9d557233741248c529f8ea37d76ff3526d553a60a241a48ad384 · unchecked-callmedium

    Not determined

    Question: Is this finding exploitable in this specific contract?

    Reason: Analyzer confidence or exploitability is unknown; the narrative would overclaim without operator review.

Audit pipeline

Audit cockpit

Honest stage-by-stage view of what VegaSec ran against this contract. Automated stages do not replace a human operator review.

Passed: 4Partial: 4Blocked: 1
  1. Audit intake

    Passed3:34 AM

    Normalize the submitted contract target and confirm it can enter the Solidity audit lane.

  2. Source acquisition

    Passed3:34 AM

    Resolve pasted source or verified explorer source without treating malformed input as demo data.

  3. Toolchain validation

    Partial3:34 AM

    Confirm the configured static analyzers can run and produce parseable output.

    • One or more analyzers emitted warnings; report findings remain usable but should be read with limitations.
  4. Analyzer execution

    Partial3:34 AM

    Run static analyzers against the sandboxed source and collect raw detector evidence.

    • One or more analyzers emitted warnings; report findings remain usable but should be read with limitations.
  5. Finding aggregation

    Passed3:34 AM

    Dedupe detectors, classify vulnerability classes and compute severity-weighted risk.

  6. Exploitability context review

    Partial3:34 AM

    Frame automated findings with conservative exploitability and limitation notes.

    • Automated context review is conservative and does not replace a manual exploitability assessment.
  7. Remediation draft

    Partial3:34 AM

    Prepare remediation-oriented evidence for the shareable report artifact.

    • Remediation notes are generated from detector evidence and require project-specific engineering review.
  8. Operator review

    Blocked3:34 AM

    Flag whether a human operator has reviewed the automated result before buyer escalation.

    • Human operator review has not been attached to this automated scan yet.
  9. Final report

    Passed3:34 AM

    Publish the report artifact or explain why the scan failed closed.

Report badges

Verified source

Badges describe the evidence carried by this report artifact, not financial value or future pricing. Operator-reviewed is never granted automatically.

How to read this report

Score, confidence, ranking: four moving parts, no hand-tuning.

Generated May 29, 2026, 3:34 AM · Solidity · Contract.sol

Score bands

  • 0-19

    AVOID-style triage

    Multiple high or critical findings, low source confidence, or unverified context. Public action should pause until a Private Review or a re-scan with better evidence.

  • 20-49

    High caution

    Notable findings or thin evidence. Worth a Private Review before relying on the artifact.

  • 50-69

    Watch · this report

    Mixed signals: some evidence, some gaps. Re-scan after material changes to the target.

  • 70-89

    Clear surface (automated)

    No critical or high findings via static analysis. Not a safety claim: human review is still recommended for diligence work.

  • 90-100

    Strong surface (automated)

    No critical or high findings, verified source, and high source confidence. Not a safety claim: human review is still recommended for diligence work.

Score
Deterministic 0-100 derived from severity counts. Same formula across every report. Lower means more risk.
Confidence
Separate axis. Measures how much VegaSec trusts the input data. Low confidence pushes the verdict toward UNKNOWN; the two are never collapsed into one number.
Ranking / percentile
Only meaningful within the eligible Trust Index set. Shown on /trust-index when the eligible pool is large enough. Today the public index is a controlled preview.

Private Review is separate

A paid Private Review does not raise the public score on this report. Public score reflects public-source evidence only. Private Review adds operator attestation and a confidential memo, never a score bump.

Export and share

  • · Shareable public URL: copy from the report actions panel.
  • · Markdown export: every export carries the report id, target, verdict, generated timestamp, and the public-data disclaimer.
  • · PDF export: not in this MVP. Tracked as a follow-up. The Markdown export contains the same content and prints cleanly to PDF from a browser today.

Source provenance

This report scanned a Solidity source provided directly by the submitter (paste). No on-chain address is associated.

Scanned source (217 chars)

// SPDX-License-Identifier: MIT
pragma solidity ^0.8.20;
contract Vuln { mapping(address=>uint) bal;
 function withdraw(uint a) external { (bool ok,)=msg.sender.call{value:a}(""); require(ok); bal[msg.sender]-=a; } }

Public-data disclaimer

Solidity scans are triage based on slither + semgrep static analysis. Output is not a certification, audit attestation or financial advice. Findings can include false positives and may miss patterns the configured detectors do not cover.