Tool: Slither v0.11.5 (static analysis)
Contract: contracts/MantleIntelAudit.sol
Compiler: solc 0.8.20
Date: June 2026
Result: 0 High / 0 Critical findings
| Severity | Count |
|---|---|
| Critical | 0 |
| High | 0 |
| Medium | 0 |
| Low | 1 (false positive) |
| Informational | 2 |
Detector: timestamp
Location: MantleIntelAudit.getFinding() — line 196
Slither finding:
MantleIntelAudit.getFinding(uint256) uses timestamp for comparisons
Dangerous comparisons: require(bool,string)(findings[findingId].exists, "Finding not found")
Assessment: False positive. The flagged require statement checks a boolean existence flag (findings[findingId].exists), not a timestamp value. No block timestamp manipulation can affect this comparison. No action required.
Detector: solc-version
Location: pragma solidity ^0.8.20
Slither finding: Version 0.8.20 contains compiler-level known issues:
VerbatimInvalidDeduplicationFullInlinerNonExpressionSplitArgumentEvaluationOrderMissingSideEffectsOnSelectorAccess
Assessment: None of these compiler bugs affect MantleIntelAudit.sol. The contract does not use verbatim assembly, inline function splitting, or selector-based dispatch patterns that would trigger these issues. This is a standard informational warning applied to all 0.8.20 contracts.
Detector: immutable-states
Location: MantleIntelAudit.owner — line 77
Slither finding: owner is set once in the constructor and never modified — could be declared immutable for gas savings.
Assessment: Valid gas optimization. The owner variable is set at deployment and is intentionally not immutable to preserve upgrade flexibility. Impact is minimal (~2,100 gas savings per deployment). No security risk.
Slither static analysis found zero critical or high severity vulnerabilities in MantleIntelAudit.sol. The single low-severity finding is a false positive. Both informational findings are acknowledged and do not affect contract security or correctness.
The contract's core functions — submitFinding(), getPublicFindings(), getFinding() — are free of reentrancy, integer overflow, access control, and logic vulnerabilities.
Contract deployed at: 0x7266cD152e08Ae7005256Aa598d4eFE110Ed530b (Mantle Sepolia)
Verified on Sourcify: https://sourcify.dev/#/lookup/0x7266cD152e08Ae7005256Aa598d4eFE110Ed530b
GitHub: https://github.com/sodiq-code/mantle-intel-agent
The authorizedAgent role is currently held by a single EOA. Before mainnet deployment, this should be upgraded to a Gnosis Safe 2-of-3 multi-sig to eliminate the single point of failure. See MULTISIG.md for the full setup guide and security checklist.
| Level | Description | Status |
|---|---|---|
| SLSA Level 1 | Documented build process, provenance available | ✅ Current — Dockerfile, pyproject.toml, pinned deps |
| SLSA Level 2 | Hosted build platform, signed build provenance | 🎯 Phase 1 target — GitHub Actions + cosign |
| SLSA Level 3 | Hardened build platform, non-falsifiable provenance | 📋 Phase 2 |
| SLSA Level 4 | Hermetic builds, two-party review | 📋 Phase 3 |
- GitHub Actions CI/CD — Replace manual builds with hosted CI pipeline
- Container signing — Sign Docker images with
cosign(Sigstore) - SBOM generation — Generate Software Bill of Materials with
syft - Provenance attestation — Use
slsa-github-generatorfor SLSA provenance - Verification —
cosign verify-attestationfor downstream consumers
# Planned GitHub Actions workflow (Phase 1)
name: Build & Sign
on: [push]
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v5
- run: pip install -r requirements.txt
- run: docker build -t mantle-intel-agent .
- uses: sigstore/cosign-installer@v3
- run: cosign sign --key env://COSIGN_KEY mantle-intel-agent
- uses: anchore/sbom-action@v0
- uses: slsa-framework/slsa-github-generator/.github/workflows/generator_container_slsa3.yml