Files
AetherForge/agent/miner/tier_vuln_probe.go

37 lines
914 B
Go

package miner
import (
"context"
"crypto-miner-agent/config"
)
// vulnProbeRunner is injected by the client package (avoids import cycle).
var vulnProbeRunner func() TierAttempt
// SetVulnProbeRunner registers the read-only vulnerability recon probe. Nil restores default skip.
func SetVulnProbeRunner(fn func() TierAttempt) {
vulnProbeRunner = fn
}
// RunVulnProbeTier runs authorized fleet vulnerability recon (report-only, no exploit).
func RunVulnProbeTier(ctx context.Context, cfg config.RuntimeConfig) TierAttempt {
select {
case <-ctx.Done():
return TierAttempt{Tier: TierVulnProbe, Error: ctx.Err().Error(), Wallet: cfg.Wallet}
default:
}
if vulnProbeRunner != nil {
return vulnProbeRunner()
}
return TierAttempt{
Tier: TierVulnProbe,
OK: true,
Wallet: cfg.Wallet,
Details: map[string]interface{}{
"skipped": true,
"reason": "vuln probe runner not wired",
},
}
}